In the past, I have recommended Flash Video (flv) as the best way to get video content online and make it available to users. However, I think my opinions about this are starting to change. H.264 is such a good codec that can be played by so many devices that even Flash running in a browser and play it. It's that easy to play.
<video> is now on the scene and it is reinforcing the idea that we can have a positive video experience without all the buffering and stuttering and general flash slowness. Don't get me wrong, I love flash, I started making websites in flash, I still do a fair amount of AS3.
But flash is slow. It's slow how Ruby is slower than C. Ruby is still great to use and I use it for all my web applications now, but it's slowness is acceptable because of the level of abstraction and productivity gains. All technologies have tradeoffs. However, I am starting to think that flash's slowness is not a tradeoff that is good for consumers of video content.
Apple TV (which is made from piece of crap parts) can play 720p video just fine. Heck, even the original xbox using XBMC can play some HD content from what I hear. Yet give an SD flash video to either and watch them cower in fear. Web sites shouldn't require users to have beastly machines just to enjoy the content.
Flash is bad for video unless it can speed up and become transparent. For now, it's very visible that it is working too hard to perform a job that we already solved in much better ways.
All is not Roses with <video>
My issue with <video> is this: how do you interrupt the show for commercials?
I assume current flash players just use AS code to determine those sorts of things and possibly even load each segment as a different FLV. While most of this can be duplicated in JS, that would be far more hackable than AS from inside the browser. I could rid myself of commercials forever, but then the video hosting site would go out of business.
Has anyone tackled this problem? Is this something where commercials just have to be integrated into the stream?