I've struggled with this over the past few years because no matter what format I use, at least one of my students would always complain that they couldn't watch the video. And then of course someone would always try to use that as an excuse for needing more time, another chance to do the assignment, etc., etc., ad nauseam.
Recently, thanks to Justin's Generico filter, I make a video in mp4, convert it to ogg and webm, and add all three videos using one Generico filter. The files are all stored in a video-on-demand folder on my server. The filter points to that folder and loads the videos named when inserting the filter in the location I want it to appear in a course. Students only see one video on the page and it is whichever is the first one their device will play, in the order they are listed in the filter. So far, this has worked with every OS, smart phone, computer, tablet, and any other device my students and I have tried it with.