So in case you have not heard yet Adobe announced an exciting new updated to the Flash video capabilities. What does this really mean? Well how about clean crisp HD quality video (even 1080p) now able to stream right from the Flash Player either via Progressive Download or the illustrious Flash Media Server and other such fine video streaming solutions. This update also includes AAC and AAC+ (HE-AAC) audio support.
We recently have had the the special privilege to work with Adobe on the integration of this exciting new capability into the already very impressive Flash Player. Now before we go any further I just want to say that H2.64 is NOT a meant to displace On2 VP6, it should be seen as another option with generally different use cases. The VP6 still has some awesome capabilities that H.264 has such as the still always eye popping 8bit alpha channel support – oooh that is still sooo sexy.
Anyways back to the point – H.264 – well what is it? In basic terms its a compression format that has become VERY widespread as a reliable standard for high quality, and most often large scale/dimension video. Some of the more common file types that MAY be encoded using H.264 and AAC/AAC+ are .MP4, .M4V, .MP4V, .3GP, and .M4A (audio file). If you want to know a good place to look at some H.264 content just jump on over to www.quicktime.com and watch some movie trailers. Those are pretty much all H.264 compliant and being so can now be played right in the Flash Player. So a good question would be what size does the new format support? Well actually it can handle just about any size. There are standard such as 480p/i (720×480), 720p/i (1280×720), and 1080p/i (1920×1080) but you are not restricted to those.
You always need to consider performance implications and bandwidth when deciding the size of your video. However there are some truly impressive new performance improvements in the new Flash Player update such as some multi-thread support for certain instances, and some very exciting new hardware acceleration for full screen video playback. I will be sure to post some code samples and such in the coming days/weeks.
So one of the really good points about Adobe implementing H.264 & AAC is these are industry standardized formats that many existing service providers and tools work with. Pair that with the current features and possible future updates to the CS3 suite and you trully have a integrated work-flow for end to end video creation and delivery with whatever tool-set fits you best.
Another great move by Adobe, the implementation and the code is the same. There are some great new events for information similar to meta data for H.264 (such as cover art and such) and the normal meta data in H.264 that is exposed to developers is excellent. The basic approaches of using NetConnections and NetStreams is the same and still golden for the more advanced users. If you prefer to use the pre-built Adobe video player components than until Adobe is able to release an update you might have a couple problems. The biggest issue is those components are pretty much hard coded to only work with .FLV files. One monkey hack solution is just change the file extension of your H.264 video to .FLV – then they should work just fine – dont worry this is only temporary
So 1 point thats pretty important to cover before you go off and try this fun stuff out: Here is a excerpt from Tinic Uro’s blog that describes the issue:
“If you use progressive download instead of FMS make sure that the moov
atom (which is the index information in MPEG-4 files) is at the
beginning of the file. Otherwise you have to wait until the file is
completely downloaded before it is played back. You can use tools like qt-faststart.c written by our own Mike Melanson
to fix your files so that the index is at the beginning of the file.
Unfortunately our tools (Premiere and AfterEffects etc.) currently
place the index at the end of the file so this tool might become
essential for you, at least for now. We are working hard to fix this in
our video tools. There is nothing we can do in the Flash Player and
iTunes/QuickTime does behave the same way.”
Now I also stumbled across this spiffy AIR that would also take care of adjusting the moov atom to enable streaming of the H.264 content for you. You can find that here: QTIndexSwapper – http://renaun.com/blog/2007/08/22/234/
//———————————–
Need more technical details:
Tinic Uro (The man behind some of the best parts of the Flash Player) – http://www.kaourantin.net/
//——————————
Technical Reference Material:
A couple of recent comparison studies of video codecs by StreamingMedia.com and Moscow State University’s Graphics/Media lab touted the H.264 codec’s superiority over other video codecs for quality. You can find those studies here http://www.streamingmedia.com/article.asp?id=9659&page=1&c=8 and here compression.ru
Some basics on H.264 encoding & quality: http://www.apple.com/quicktime/technologies/h264/
//———————————–
Encoding Resources:
• AnyStream – http://www.anystream.com/
• Digital Rapids – http://www.digital-rapids.com/
• Kulabyte – http://www.kulabyte.com/
• On2 – http://www.on2.com/
• Rhozett – http://www.rhozet.com/
• Sorenson – http://www.sorensonmedia.com/
• TeleStream – http://www.telestream.net/
• X264 Encoder – http://www.videolan.org/developers/x264.html

