Flash H.264

From Bjoern Hassler's website
Jump to: navigation, search

Part of this series Multiformat Media Delivery - Flash H.264 - HTML 5 video tag and Ogg.

News (4th Dec 2007): Flash Player 9 Update 3 released!

Previous Article (22nd Nov 2007)

A new Flash Player http://labs.adobe.com/technologies/flashplayer9/ beta release brings H.264 to flash. This is highly relevant for straight flash video delivery, and indeed changes the online video landscape very significantly. H.264 has won the day. Some news stories and links:

Quoting from http://www.kaourantin.net/2007/08/what-just-happened-to-video-on-web_20.html: "You can load and play .mp4,.m4v,.m4a,.mov and .3gp files using the same NetStream API you use to load FLV files now. We did not add any sort of new API in the Flash Player. All your existing video playback front ends will work as they are. As long as they do not look at the file extension that is, ... If you use progressive download instead of FMS make sure that the moov atom ... is at the beginning of the file. ... The Flash Player will display the first supported video and audio track it finds in a file. ... Video needs to be in H.264 format only. ... all Base, Main, High and High 10 bit streams should play. ... Audio can be either AAC Main, AAC LC or SBR, corresponding to audio object types 0, 1 and 2."

This has obvious ramifications for online video delivery: Before there were Flash Video (in flv container), QuickTime/H264, RealVideo, Windows Media. All had their strengths and their relative uses, but the plurality of formats was a major pain. Even with their respective uses and market share, one could have argued that RealVideo and WindowsMedia were being squeezed out by Flash for online video on the one hand, and QuickTime/mp4 for podcasting on the other. Now the pinch is complete, with H.264 playing in Flash, H.264 has become the online video codec. Or nearly, because the new Flash player is still in beta (Nov 2007). (Flash Player 9 Update 3 released Dec 2007.)

Some consequences for online video delivery:

  • We'll pay less: On2 VP6 and On2 VP7 do play in the Flash Player and are good codecs. If you have Flash 8 or CS3, then you know that On2 VP6 comes with it, and perhaps On2 VP7 will be available as an encoding option in a future say Flash CS4. However, if you don't have this, but use other encoders like Telestream Episode Pro on Mac, you'll be paying extra for getting the On2 encoding option. Hence you either pay up, or you would have resorted to using flv/Soerenson, or you would not have offered flash. Now, we can just encode to H264/AAC and get this to play in flash, without having to resort to the older Flash Soerenson codec (with mp3 audio), and without having to pay for On2 VP6.
  • We can use more encoders: Any encoder that offers H.264/AAC can now be used to create flash video content. So without plugins etc you can use Quicktime Pro or apple's compressor to produce flash video content.
  • We'll encode into less formats: Moreover, we no longer have to create one file for prog download into say FlowPlayer (flv), and another format for podcasting (mp4): Now we can use the same H.264/AAC file. (But not right now, as the flash player release is only in beta.)
  • Better quality over modem: Flash video (up to now) only had an mp3 audio soundtrack. This is fine for high bandwidth applications, but for low bandwidth/modem, it meant that a large part of the bandwidth was taken with the audio. Now with H.264/AAC we should be able to create much better looking files for delivering flash video over modem. (Really what we'd need is a a comparison of flv/Soerenson, flv/VP6, mp4/H264, and RealVideo for modem applications. Particularly the comparison of H.264 to RealVideo will be interesting, as small bitrate has been a strength of RealVideo.)

When to switch: Because the new flash player release will take a little while to catch on, we should still provide an alternative for older flash player installations, so we'll provide H.264, with flv/Soerenson as legacy alternative.

These notes are written from my perspective of online video delivery. If you're using flash for authoring flash applications (rather than using flash to deliver straight video), the impact will be less, as you'll have the On2 encoder anyway, and the people using your flash application wouldn't even know what format the video was.

More links: