What AVC/H.264 Means for the Future of Flash Video

By: Robert Reinhardt

Page 1 of 2

Set for printing


During the week of August 20th, Adobe announced its plans to support the AVC/H.264 video standard in the final release of Flash Player 9 update 3. You can currently download beta 2 of Flash Player 9 update 3 on the Adobe Labs site. This beta contains the AVC/H.264 codec, which enables you to test MPEG-4 files using the H.264 codec right now! I won't recap the information already provided by Adobe, but I'll provide a context for this announcement with existing Flash Video codecs and the world of Internet-delivered video. The details of AVC/H.264 support in Flash Player 9 update 3 are already discussed at the following URLs:

Why add the AVC/H.264 codec to the Flash Player?

The history of the MPEG codec (and format) is long, detailed, and complex. I talked about MPEG-1 and MPEG-2 codecs in a previous tutorial, and the MPEG-4 codec is much more complicated than MPEG-1 and MPEG-2. (By the way, there is no MPEG-3 video codec. A draft specification of MPEG-3 was started to update MPEG-2 for High Definition video delivery, but was later scrapped when it was found that tweaks to the MPEG-2 codec could deliver HD quality video without a hitch.) MPEG-1 and MPEG-2 codecs were developed before the Internet and low-bitrate network connection speeds were available. As such, MPEG-1 and MPEG-2 don't do a great job with retaining video quality at lower bitrates. And when I say "low bitrate", I mean bitrates slower than 1 Mbps. Even an old 1x CD-ROM drive can deliver video at 150KB/sec (or 1.2 Mbps), and MPEG-1 was the codec used for the original Video CD (or VCD) disc format. For more detailed historical information on MPEG-4 and AVC/H.264, check out this excellent overview on drunkenblog.com.

MPEG-4, however, involves much more computation from the processor, and can retain high-quality over a wide range of bitrates. Various incarnations of MPEG-4 exist—too many, in fact, to enumerate and describe in this article. There are numerous standards, or "parts", for the MPEG-4 format. AVC/H.264 is technically called MPEG-4 Part 10. Each standard is further complicated by supporting various profiles which determine the exact capabilities of the codec. Adobe's implementation of AVC/H.264 will support the Base, Mainline and High profiles. Video encoders such as Sorenson Squeeze Compression Suite enable you to choose a profile within the MPEG-4 codec settings. (I should mention that these three profiles are among the most commonly used profiles for AVC/H.264.) Sorenson Squeeze's MPEG-4 presets also enable you to choose Sorenson MPEG4 Pro, Sorenson AVC Pro, and Apple AVC codecs for MPEG-4 file output. While I'm still in the middle of conducting a battery of tests, I suspect that either Sorenson AVC Pro or Apple AVC codecs will work just fine in Flash Player 9 update 3, but I have a feeling Sorenson MPEG4 Pro is MPEG-4 Part 2, which would not be supported by player update. (I'm waiting for confirmation from Sorenson, and will update this article when I have the answer.)

Ok, so that's a brief rundown of MPEG-4, but why did Adobe choose this particular codec? According to Tinic's post, it was chosen because this is what users have been requesting the most, and that seems to make the most sense to me. I also think that the fact that it's a codec specification not controlled by a third-party company like Sorenson, On2, or Microsoft, helps out a great deal. (AVC/H.264 is not necessarily a "free" codec by any means, a topic I'll pick up later in this article.) Just about every video encoding system can churn out AVC/H.264 content, which is why it's a popular format for video podcasts. I'll talk more about the codec's implications in the remaining sections of this article.

Will this feature change the way video is used in the Flash Player?

Most certainly, this new capability will change the way that most video is utilized with the desktop version of the Flash Player, or any Flash platform running on the desktop such as AIR (Adobe Integrated Runtime, code named Apollo). The FLV format utilizing On2 VP6 or Sorenson Spark will still have its advantages:

  • Special effects: Video with transparency (that is, an alpha channel) is still only supported with the On2 VP6 codec and the FLV format
  • Wide range of processor speeds: The AVC/H.264 codec requires more CPU power than the Sorenson Spark codec. For Flash Video content that needs to run on slower processors and devices, Sorenson Spark will likely remain a viable option for a few more years.
  • Adoption rate of latest Flash Player: In order to play AVC/H.264 MPEG-4 files, you must have Flash Player 9 update 3 installed. Any previous version of the Flash Player will still be restricted to the FLV format, the On2 VP6 codec, and the Sorenson Spark codec. Once Flash Player 9 update 3 is officially released (which will most likely be in the fall of 2007), it will take at least 6 to 8 months for users around the world to upgrade their installed version of the plug-in. Flash Video used in SWF banner ads will need much more time—most likely several years—before Flash Player 9 update 3 is accepted as a minimum requirement for playback.

It remains to be seen how "data-enabled" video encoded with AVC/H.264 will be in the Flash Player, and if we can expect features like cue points (which are specific to the FLV format) can be created with MPEG-4 files. Perhaps we will be able to create chapter markers in a tool like Sorenson Squeeze for MPEG-4 files and use these as we would FLV cue points in ActionScript.

NOTE: While I'm still in the middle of testing a variety of AVC/H.264 files with the current beta 2 release of Flash Player 9 update 3, I've already tested the MP4 files I've included with my new Flash Video book's DVD-ROM and the beta player can play them quite nicely without any alterations or changes. I'll write a follow-up article based on the results of my tests.

Page 1 of 2 1 2 Next

Download Support Files

Downloads are disabled during your trial period.

Flash Video, AVC/H.264, Flash Player 9 update 3, MPEG-4