Monday, August 20, 2007

What just happened to video on the web?

That's a question you should ask with the announcement we made tonight. I think a lot will change. This is probably one of my longest and information packed posts ever, but I think it is important we put down all cards on the table. Lets summarize what new functionality Flash Player 9 Update 3 Beta 2 contains (for the impatient: It will be available on labs.adobe.com this afternoon):
  • An file format parser implementing parts of ISO 14496-12. In terms you might understand this means a very limited sub set of MPEG-4, 3GP and QuickTime movie support.

  • Support for the 3GPP timed text specification 3GPP TS 26.245. Essentially this is a standardized subtitle format within 3GP files.

  • Partial parsing support for the 'ilst' atom which is the ID3 equivalent iTunes uses to store meta data. This really more a de-facto standard which came through the ubiquity of iTunes, there is no official documentation on the format. Look here for an incomplete list of supported tags iTunes does use.

  • A software based H.264 codec with the ability to decode Base, Mainline and High profiles. This is also an ISO standard with the identifier being ISO 14496-10.

  • An AAC decoder supporting AAC Main, AAC LC and SBR (also known as HE-AAC). The corresponding ISO specification is ISO 14496-3.

That's pretty much what we say publicly. Truth is that these specifications are so complex that no one supports 100% of it. I realize that it will be important for Adobe to communicate exactly what is and what is not supported. We are working on this and will be trying to help novices and experts alike. For those who scream murder and accuse us of going with incomplete standards support let me tell you that ISO 14496-12 specifically allows for the definition of sub sets. 3GP is one of those. We did not extend or add proprietary extensions whatsoever to the mentioned standards above, it is a pure sub set.

Why now? Short answer: Because you wanted it. Long answer: We've been working on this for a while and this was planned to be part of the next major revision of the Flash Player. What was unexpected was how impatient a lot of our customers are :-) It seems many are trying to make choices when it comes to video technologies right now. We wanted to make sure that we would offer the best possible choices to them and set a signal that we are willing to embrace industry standards. No one believed that we would make this happen.

Unfortunately, and we realized while working on this: along with adopting industry standards also comes completely new terminology which seems designed to confuse non-insiders. This makes it difficult to pin down exactly what it is what we did and how you might benefit from it. It took me several months to just understand the basics in the ISO specifications. By now I might have lost the ability to boil it down into simple terms everyone can understand. But I'll try anyway. :-)

Lets talk about actual functionality you can leverage in the Flash Player. Now I am getting really technical:

  • 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, though renaming the files to use the .flv file extension might help your component. The Flash Player itself does not care about file extensions, you can feed it .txt files for all it matters. The Flash Player always looks inside the file to determine what type of file it is.

  • A new version of FMS is upcoming and will support the new file format. This is powerful stuff. Simply drop video files you might have encoded using one of the countless tools out there onto the server and it'll stream. Even if the moov atom is at the end of the file. Ah, that is something I have to mention as you are 100% likely to fall into this trap:

  • 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.

  • The Flash Player will display the first supported video and audio track it finds in a file. Subsequent audio and video tracks are ignored and not selectable right now. This covers the majority of files out there on the web, only in rare instances do you have additional audio tracks f.ex. But I believe that for the web you would rather create several versions of a file anyway to save bandwidth. One of next major revisions of the Flash Player will add new APIs to enhance this most likely. Our goal was not to add any new APIs for this release.

  • Video needs to be in H.264 format only. MPEG-4 Part 2 (Xvid, DivX etc.) video is not supported, H.263 video is not supported, Sorenson Video is not supported. Keep in mind that a lot of pod casts are still using MPEG-4 Part 2. So do not be surprised if you do not see any video. We should be close to 100% compliant to the H.264 standard, all Base, Main, High and High 10 bit streams should play. Extended, High 4:2:2 and High 4:4:4 profiles are not officially supported at this time. They might or might not work depending on what features are used. We have no artificial lower limit on B-frames or any problems with B-pyramids like other players do. We also decode field coded streams, although this beta displays the images progressively using the weave method. The final release will be blending the two fields. There are still a couple of bugs with frame ordering/timing I need to fix in the Flash Player itself for the final release. And there is also a problem with files using the loop filter on dual core machines which causes horizontal artifacts along slice boundaries, which is my bad. The fix for this did not make it into this beta. Overall though and leaving out the bugs I listed here which are my fault, the H.264 decoder is a remarkable piece of engineering, it is provided to us by MainConcept. It weights in at less than 100KB of compressed code which is quite an achievement for such a complicated standard.

  • Audio can be either AAC Main, AAC LC or SBR, corresponding to audio object types 0, 1 and 2. We also support the '.mp3' sample type meaning tracks with mp3 audio. MP3inMP4 which intends to do multi-channel mp3 playback within mp4 files is not supported. Also, the old QuickTime specific style of embedding AAC and MP3 data is not supported. It is unlikely though that you will run into these kind of files.

  • 3gp timed text tracks. Any number of text tracks are supported and all the information, including esoteric stuff like karaoke meta data is dumped in 'onMetaData' and a new 'onTextData' NetStream callback. Language information in the individual tracks is also reported. That means you can have sub titles in several languages. Study the 3GPP TS 26.245 specification to see what information is available. Note that you have to take care of the formatting and placement of the text yourself, the Flash Player will do nothing here. Time for you to start working on one of those components which do that. You can use MP4Box to inject text data into existing files.

  • Meta data stored in the 'ilst' atom. This is usually present in iTunes files. It contains ID3 like information and is reported in the onMetaData callback as key/value pairs in a mixed array with the name 'tags'. ID3V2 is not supported right now. An incomplete list and link to tools which can edit these tags is available here.

  • Since these files contain an index unlike old FLV files, we can provide a list of save seek points, e.g. times you can seek to without having the play head jump around. You'll get this information through the onMetaData callback in an array with the name 'seekpoints'. On the downside, some files are missing this information which also means that these files are not seekable at all! This is very different from the traditional FLV file format which is rather based on the notion of key frames to determine the seek points.

  • Unencrypted audio book files contain chapter information. We expose this in the onMetaData callback as an array of objects with name 'chapters'.

  • Image tracks encoded in JPEG, GIF and PNG are accessible. Unfortunately only in AS3 as I pass this information as a byte arrays through a new callback 'onImageData'. You can simply take that byte array and use the Loader class to display the images. Most often these images represent cover artwork for audio files. TIFF image tracks are not supported, you might come across files using this. Also note that we support the 'covr' meta data stored in iTunes files, these are also accessible as byte arrays.

  • Will it be possible to place H.264 streams into the traditional FLV file structure? It will, but we strongly encourage everyone to embrace the new standard file format. There are functional limits with the FLV structure when streaming H.264 which we could not overcome without a redesign of the file format. This is one reason we are moving away from the traditional FLV file structure. Specifically dealing with sequence headers and enders is tricky with FLV streams.

  • Will it be possible to place AAC streams into an FLV file structure? Yes, though the same limitations as for H.264 apply.

  • Will the Flash Player play back multi channel AAC files? It will play them, though the sound is mixed down to two channels and resampled to 44.1Khz. We are targeting multi channel playback for one of the next major revisions of the Flash Player. This requires complete redesign of the sound engine in the Flash Player which dates from circa 1996 and has not been improved since.

  • Will the Flash Player be limited to 11Khz, 22Khz and 44.1Khz sampling rates like for MP3? No, we support all sampling rates from 8Khz to 96Khz. I implemented a 32 tap Kaiser Bessel based FIR filter which resamples the sound to 44.1Khz, retaining high quality. The most common sample rate combinations have a hard coded number of phases. In case of a 48000 to 44100 Hz conversion the filter has 147 phases f.ex. Even better: Flash Player Update 3 Beta 2 now can play back any MP3 sampling rate leveraging the same code I implemented for AAC. No more chipmunks. Ever. Err, this is actually kind of major as I have seen complaints about this bug for years :-) I fixed this problem in the AS3 Sound class, though it was using very low quality resampling. This change I made this time will fix it even for AS2 and sound in FLV files while retaining excellent quality.

  • Will it be possible to place On2 VP6 streams into the new file format? Not right now, we are still trying to figure out if it is possible for us to support this.

  • Can you play files protected by FairPlay? No.

  • Do we support MPEG-4 BIFS or other esoteric stuff (scripting, VRML etc.) from the MPEG-4 Systems specification? No. Whatever is not listed above we do not support.

  • Do we support SMIL? No. You can easily write your own SMIL parser in ActionScript though.

  • Can you use the Sound class to play back AAC/.mp4a files? No, you have to use the NetStream class. We are now getting into a situation where there is not much difference between audio and video files anymore. They are the same essentially. Hence we figured we should not further add confusion and allow to do things ten different ways which would also increase the Flash Player binary size. My guess is that we will enhance the Sound class in the future but it might go into a different direction and will not be dedicated to pure playback of static files anymore.

  • Here is a list of data which is reported in onMetaData:

    duration - Obvious. But unlike for FLV files this field will always be present.

    videocodecid - For H.264 we report 'avc1'.

    audiocodecid - For AAC we report 'mp4a', for MP3 we report '.mp3'.

    avcprofile - 66, 77, 88, 100, 110, 122 or 144 which corresponds to the H.264 profiles.

    avclevel - A number between 10 and 51. Consult this list to find out more.

    aottype - Either 0, 1 or 2. This corresponds to AAC Main, AAC LC and SBR audio types.

    moovposition - The offset in bytes of the moov atom in a file.

    trackinfo - An array of objects containing various infomation about all the tracks in a file.

    chapters - As mentioned above information about chapters in audiobooks.

    seekpoints - As mentioned above times you can directly feed into NetStream.seek();

    videoframerate - The frame rate of the video if a monotone frame rate is used. Most videos will have a monotone frame rate.

    audiosamplerate - The original sampling rate of the audio track.

    audiochannels - The original number of channels of the audio track.

    tags - As mentioned above ID3 like tag information.
Here are some good links to get an understanding of what MPEG-4, H.264 and AAC are:

http://forum.doom9.org/showthread.php?s&threadid=62723
http://forum.doom9.org/showthread.php?t=96059
http://en.wikipedia.org/wiki/H264
http://en.wikipedia.org/wiki/Advanced_Audio_Coding
http://daringfireball.net/2007/04/some_facts_about_aac

Let's put together some thought up scenarios I would imagine are important:
  • You created a pod cast for iTunes and happily distribute over this channel. Now you want to add value to it and easily make it accessible over the web without special plug-ins, reaching an audience which does not have QuickTime installed. Well, this new feature will allow you to do this. You can take your existing podcast in .m4a format and present it on any web page through the Flash Player. Add more value by adding interactivity and branding if you want to. The possibilities are endless.

  • Your media company has made or is about to make a significant investment into web video or video archiving. You are wondering what format you should choose. Video for Flash reaches everyone now, but the format is not an 'industry standard' so you have the fear that content you will create will become obsolete and unsupported at some point. Flash Player 9 Update 3 comes to the rescue: MPEG-4 is an extremely well documented ISO standard and completely vendor independent. And by using the Flash Player now you get instant gratification for viewers.

  • You want to get best the possible quality out of your video and do not want to be tied to a particular encoding solution. You also like open source software to do all of the work you need to do to encode video. A combination of libfaad, x264 and MP4Box which are all licensed under the GPL will do exactly that, albeit with little usability and requiring lots of expertise. But it will now play just fine through the most distributed run time in the world, the Adobe Flash Player.

Those are immediate benefits, there are plenty more when we look ahead. Let me mention a few of them:

  • H.264 will be supported natively by most new graphics cards. NVidia, ATI and Intel have made a commitments to have full support for it. This means better than HD video on your PC will become possible in the not so distant future.

  • There are hardware based H.264 encoders which encode at better than real time. This is important if you need to be quick to market like f.ex news organisations.

  • Digital TV, especially in Europe is quickly adopting H.264. The interoperability with the web will open new doors for a lot of media companies.

  • AAC SBR offers demonstrable advantages over plain MP3, think 5.1 channel surround sound f.ex. While the Flash Player does only support 2 channels output at this time, there is opportunity to go beyond that.

And last but not least here are some things I will not give a complete answer to since they are begging for controversy:
  • Comparing H.264 against other video codecs, might it be performance or quality. I've looked at the comparisons out there, they are at best subjective, most of the times outright marketing bull and almost always completely biased. My take is: Take a good and well accepted encoder and compare the results yourself. Your mileage will vary. And that is fine. Quality is not the main reason Flash Player 9 Update 3 has H.264 support.

  • Tell you if On2 VP6 is better or worse than H.264. Truth is that they have different strengths, not only performance and quality wise. It totally depends on your individual situation of what fits best. The Adobe Flash Player now offers more choice which is more important than anything else.

  • I am not in a position able to explain to you why we will not allow 3rd party streaming servers to stream H.264 video or AAC audio into the Flash Player. What I can tell you is that we do not allow this without proper licensing. Refer to Adobe's friendly Flash Media Server sales staff for more information.

  • I can also not help you with anything regarding broadcast fees for commerical use of H.264 and AAC streams. Please refer to the FAQ Adobe provides which usually point to contacts at MPEG-LA and Via Licensing. A summary of licencing terms for H.264 is available here.

173 Comments:

Blogger stef said...

thanks for the great post tinic. cheers! stef

Monday, August 20, 2007 9:45:00 PM  
Anonymous Aran said...

Wow... flash video changes everything. Again.

I wonder how on2 feeling about all this?

Monday, August 20, 2007 9:57:00 PM  
Anonymous German Bauer said...

An earthquake just registered in the bay area. You guys seriously rock.

Monday, August 20, 2007 10:25:00 PM  
Blogger Al Iguana said...

Seriously awesome. Now video/cellphone upload websites won't necessarily need to transcode to FLV before delivering the content.

One question/thought: does this mean Adobe is moving away from FLV as the main video standard? No complaints if you are, h.264 is the future.

Monday, August 20, 2007 11:10:00 PM  
Anonymous Anonymous said...

This post has been removed by a blog administrator.

Monday, August 20, 2007 11:14:00 PM  
Anonymous Anonymous said...

This post has been removed by a blog administrator.

Monday, August 20, 2007 11:51:00 PM  
Blogger PVK said...

I can see H264 support everywhere, and this is the only page were I see .mp4 which in my sense is the real revolution. So could you confirm that the new flash player will let us read any MPEG4 file ( .mp4 file format) using H264 for video and AAC for audio ? )

I can see than you do not want to talk to much about the server, but ... it doesn't cost to ask again : will Darwing Streaming Server be able to deliver .mp4 files to the new flash player ... :-)

That would be really awesome !

Tuesday, August 21, 2007 12:46:00 AM  
Anonymous Anonymous said...

Will we be able to stream these other formats via "progressive download"? Can you clarify what you meant about only being able to stream via FMS?

Tuesday, August 21, 2007 12:53:00 AM  
Anonymous Anonymous said...

Nice !

Has the possibility to add ogg (vorbis~theora) support been evocated or is not planned at all ?

Tuesday, August 21, 2007 1:04:00 AM  
Anonymous Anonymous said...

What about encoding?

Will ever the Flash Player support encoding video in these format?

Or we are still stuck with Sorenson?

Tuesday, August 21, 2007 1:48:00 AM  
Blogger cleoag said...

Amazing news! Thanx to Flash Player Team for this great update. I Really love this new stuff.

Any chance to see VoiceIP stuff in next updates? ))

Tuesday, August 21, 2007 1:51:00 AM  
Anonymous Martijn de Visser said...

I was wondering if this new player also improves FLV playback in any way, or is this a completely separate engine and is FLV playback not affected at all?

Thanks!

Tuesday, August 21, 2007 1:55:00 AM  
Anonymous aYo Binitie II said...

absolutely fantastic.
I am puzzled about this though
"Sorenson Video is not supported."
Does this mean that Sorenson Spark encoded video will not work?
[a/]

Tuesday, August 21, 2007 2:44:00 AM  
Anonymous spender said...

Tinic, you mention that the audio engine of the flash player is due for an upgrade... there are a few hacks out on the web (including my own) for pouring PCM wave data into the Flash sound system. Can you reveal whether the anticipated sound upgrade will provide this natively?

cheers

Tuesday, August 21, 2007 2:51:00 AM  
Blogger julien said...

Very interesting post, thanks for all this info :)

Tuesday, August 21, 2007 3:23:00 AM  
Blogger Daniel said...

H264 support is an amazing feature. Unfortunately I think that these licensing costs are going to kill off 90% of the potential usage for this.

Maybe I'm reading this wrong... but even companies that already have a license to stream flash need to pay an EXTRA license fee to use H264?

Tuesday, August 21, 2007 4:09:00 AM  
Blogger Matthew said...

Hi Tinic - thanks for the wonderfully informative blog post. Out of interest, any idea if Adobe are happy currently for 3rd party servers to stream realtime Sorenson H.263 and ASAO to Flash players? (as you say above that streaming H.264 to AAC from 3rd party servers isn't going to be allowed...)

Tuesday, August 21, 2007 4:41:00 AM  
Anonymous Anonymous said...

Awesome stuff, thanks for letting us know!

Tuesday, August 21, 2007 4:54:00 AM  
Blogger Abdul said...

Tinic,

Thanks for information, it's very useful...

I am waiting for beta-update and wanna test it :)

Thanks for all hard work you guys put to make our lives simpler...

regards

-abdul

Tuesday, August 21, 2007 5:03:00 AM  
Anonymous Christoph said...

This is a really big deal for Flash video and the online video market. Thanks for the solid breakdown, this will make it much easier to make smart decisions on projects (Sharing this kind of information is almost as important as actually building the technology, since otherwise this research has to be done internally, which might or might not happen).

Tuesday, August 21, 2007 5:21:00 AM  
Anonymous Anonymous said...

I second the ogg request...

Great to see you guys doing this.

Tuesday, August 21, 2007 5:27:00 AM  
Blogger Poland Family said...

Fantastic! How long do you estimate it will take before this version is out there and actualy influencing us to start encoding in H.264?

Tuesday, August 21, 2007 5:40:00 AM  
Anonymous Anonymous said...

All great, but:

Denying third parties to stream MPEG-4 into Flash is absurd and also a violation of MPEG-4 agreements!

MPEG-4 is an open standard, meaning that any MPEG-4 device/tool should work with any other MPEG-4 device/tool. We should be able to use for instance QuickTime to encode a file, upload it to Darwin Streaming Server and use it to stream to Flash Player.

I expect Adobe to be fully MPEG-4 compliant indeed, except for the transportation protocol. So H.264 yes, AAC yes, MPEG-4 containers yes, but RTSP no, but will be RTMP instead... Shame on you Adobe!

Tuesday, August 21, 2007 6:00:00 AM  
Blogger Todd said...

Very useful indeed. I literally just coded something the other day where I was sniffing out ".flv" in url strings. Guess I'll be adding a few more suffixes now. :)

Tuesday, August 21, 2007 6:10:00 AM  
Blogger Sam said...

Tinic, you rock \m/

Tuesday, August 21, 2007 6:18:00 AM  
Blogger Kurt said...

Thanks for the info. Good detail.

One question. Does the Flash Player support add in demuxers for proprietary file formats containing H.264 video?

Tuesday, August 21, 2007 6:18:00 AM  
Anonymous Anonymous said...

Will the Linux player be updated at the same time, or will we Linux users be left waiting as usual ?

Tuesday, August 21, 2007 6:26:00 AM  
Anonymous Anonymous said...

Hey i don'T care about h264, wheres the option to turn off sound globally for flash? THAT would be something to get exited about.

Tuesday, August 21, 2007 6:39:00 AM  
Anonymous Rick Curran said...

Hi, excellent post, it's a great move to see Adobe adopting open standards here. As someone who uses Darwin Streaming Server to publish streaming video I would like to see the ability for Flash to support streaming files from a server other than FMS. The licensing costs are just too much to consider using FMS for me. Support for Darwin / Quicktime streaming server would be the icing on the cake!

Tuesday, August 21, 2007 6:43:00 AM  
Anonymous Lisa said...

Thanks for the comprehensive post, Tinic. I'm sure there will be more commentary and lots of questions about the specifics, so I'll be watching this space. Sharing information and open dialog is key. This truly is amazing news -- Adobe is listening! :)

Tuesday, August 21, 2007 6:51:00 AM  
Anonymous Anonymous said...

ACC will be nice, but why ignore Vorbis? It's a codec proven to provide outstanding quality.

Tuesday, August 21, 2007 7:06:00 AM  
Anonymous Anonymous said...

Will this be rolling out for all platforms?

Tuesday, August 21, 2007 7:18:00 AM  
Blogger freechelmi said...

third for Ogg/theora/vorbis

Happy that you go for standard H264/aac instead of crappy VP7 , but H264 has huge licensing costs ...

Anyway this will help easy streaming on the web

Tuesday, August 21, 2007 7:29:00 AM  
Blogger Takis said...

Great! :)


... You also like open source software to do all of the work you need to do to encode video. A combination of libfaad, x264 and MP4Box which are all licensed under the GPL will do exactly that, ...

Just a minor remark regarding a typo though:
libfaad contains the AAC decoder, libfaac is the tool one would need to encode AAC audio.

Tuesday, August 21, 2007 7:29:00 AM  
Anonymous Jbus said...

You knew this question was coming... What about a Linux version? Are we to expect a timely release of this version of Flash Player for Linux?

Tuesday, August 21, 2007 7:37:00 AM  
Anonymous Zeh said...

People asking about encoding: see the doom9 link Tinic posted, question 3:

http://forum.doom9.org/showthread.php?s&threadid=62723

In short, you'll be able to use A LOT of encoders, including several free solutions. You won't be restricted to Flash encoder, or Sorenson, or whatever. Just use whatever's your real video encoding software of choice.

Tuesday, August 21, 2007 7:39:00 AM  
Blogger Otto said...

great posting, depp insights, valuable links: thank you!
we here at National Public Radio in Austria are really into MULTICHANNEL AUDIO, so any progress on this is highly welcome. Will the format only be AAC multichannel or also e.g. WAVextensible or RF64?

Tuesday, August 21, 2007 7:41:00 AM  
Anonymous Anonymous said...

What about Flash audio ? As AS3 is evolving while complex multimedia is being delivered, why is it that Flash can only play sounds, and change panning/volume? It might be a fantastic idea if Flash could support something more than just that. Adobe has the right people to implement this, take Logic for example. It would be really nice if Flash could support some filters, delays like reverb, and other things like time-stretching and pitch shifting, simple synthesis at best. Since computers are 'multimedia', users don't really experience 'multimedia' when on the net. Yes this post is a bit of a complaint and a feature request at the same time, not taking into account the wonderful progress Flash is already making. But still, I care more about being able to do something with audio than another movie format being implemented. It's the only reason I can't use Flash for real multimedia experiences, and I would really.. really like to! :-)

Tuesday, August 21, 2007 7:47:00 AM  
Anonymous Anonymous said...

how about hardware acceleration? I thought the Adobe release mentioned that specifically. Any details on what that entails, and what platforms are supported?

Tuesday, August 21, 2007 7:50:00 AM  
Anonymous Anonymous said...

That's nice and all, but when are we getting 64-BIT!?!?

sheesh. ya'll're really missing the boat here!

Tuesday, August 21, 2007 7:51:00 AM  
Anonymous Anonymous said...

There is statement in article that vp6 and h.264 looks different. There were a lot of testing that show superiority of H.264 over on2 vp6.2/vp7.0.10 codecs.

Also Nero HE-AAC is a winner of a blind public test.
http://www.hydrogenaudio.org/forums/index.php?s=35d8df6ca90aa83ea4638a65bd839aa7&showtopic=56851

Shortly, H.264 and HE-AAC are the best on compression of video/audio streams.

Tuesday, August 21, 2007 7:52:00 AM  
Blogger gandalf said...

This is AWESOME! Kudos!!

About the Ogg stuff, it would be cool, but there is absolutley no pressing need for it.

Tuesday, August 21, 2007 7:55:00 AM  
Anonymous Fr0C said...

This is obviously great new -- thanks!

I have prepared a 1080p trailer as mp4 to test and am eagerly awaiting the beta to appear.
To do this I had to convert from a Matroska container, which is becoming increasingly common these days. Any chance you will support mkv in the future? That would allow for a nice player for local files.

Tuesday, August 21, 2007 7:58:00 AM  
Anonymous Anonymous said...

Does this mean the installer for Flash will boat up like a typical Adobe product? Filled with Nagware and system tray madness?

Tuesday, August 21, 2007 8:07:00 AM  
Anonymous Alek said...

ok great. but what does all this mean for flash players on pocket pcs? It's woefully behind already... I still can't view simple youtube videos.. :(

Tuesday, August 21, 2007 8:13:00 AM  
Anonymous Anonymous said...

All these wonderful features... and yet it's been over three years and counting since Adobe first promised a release for the x64 architecture. So this release is just as useless to me as all the others... sigh

Tuesday, August 21, 2007 8:25:00 AM  
Anonymous Ray said...

this is great can't wait to have all Freecaster.tv channels viewable in a flash player, well done

Tuesday, August 21, 2007 9:02:00 AM  
Anonymous Anonymous said...

Hmm and what about the people who made serious investment on On2 Vp6,

Will Vp6 become obsolete

Is Vp7 on the roadmap?

Tuesday, August 21, 2007 9:05:00 AM  
Anonymous Jeremiah said...

Thank you so much Adobe! This was my only big issue with Flash Player. It didn't stop me from using H.264, but it did stop me from using Flash for video. This is a fantastic announcement. Thank you for the great documentation to kick it off!

Tuesday, August 21, 2007 9:08:00 AM  
Anonymous Anonymous said...

So finally the world get to see what QuickTime users have known for years... H.264 rocks.

Tuesday, August 21, 2007 9:08:00 AM  
Anonymous Leif said...

The FMS requirement is hilarious. We (the internet) will not forget about Adobe's despotism. H.264 is nice, but the cost is too high. And flash player DOES NOT reach "everyone". Millions cannot install the latest (or any) flash player. Single vendor BS is nice for the vendor's short-term profits, but the internet will overcome your broken model eventually.


(My internet tablet has flash9 but is unlikely to see this new release anytime soon; my desktop is linuxppc and has no flash ):

Tuesday, August 21, 2007 9:15:00 AM  
Blogger Vijay Chakravarthy said...

Hmm, seems like flash player - iphone edition.

I hope that is the case, would be wonderful!!

Tuesday, August 21, 2007 9:20:00 AM  
Blogger John said...

This is all well and good but the truly most important feature should be adding support for ENCODING audio using ANYTHING other than nellymoser. Why you can't support a simple ulaw/alaw or something freely available like gsm/speex is beyond me. Using flash for voip would open up huge doors but not with that piece of garbage codec you support now.

Tuesday, August 21, 2007 9:26:00 AM  
Anonymous Steve said...

Fantastic! I can't wait for the official release. Although, you may want to seriously think about supporting RTSP as a transport within the Flash player. That would give Flash both a standards-based codec and transport layer.

Also, I use the Mainconcept encoder and it is above anything else on the market. There is a little known company called Elecard that makes a simple encoding tool called Converter Studio. It's a lot more stable than Sorenson Squeeze and the output using the Mainconcept codec is amazing, especially for H.264 High Profile.

Tuesday, August 21, 2007 9:34:00 AM  
Anonymous Anonymous said...

Why will this catch on with the online sites like youtube when they didn't even upgrade to vp6 with flash 8 and stuck with sorenson from flash 6?
I still find it ridiculous of sites like youtube to state that they dont' use vp6 because flash player 8+ does not have the market penetration of flash player 6+. So I don't think this will be used by youtube for quite some time :-(.

Nice post though.

Tuesday, August 21, 2007 9:40:00 AM  
Blogger Curious said...

I'd really like to understand this part:
"I am not in a position able to explain to you why we will not allow 3rd party streaming servers to stream H.264 video or AAC audio into the Flash Player. What I can tell you is that we do not allow this without proper licensing. Refer to Adobe's friendly Flash Media Server sales staff for more information."

So in your example, if I create content for iTunes and "want to add value to it" I have to be uploading it to a Flash Media Server only? This sounded really good up until that point. Who IS in a position to talk about this part?

Tuesday, August 21, 2007 10:26:00 AM  
Anonymous Anonymous said...

Incredible information, thanks! Quick question (and apologies if it's been asked); does this mean that Flash Player will/can now play a QT-wrapped H.264 file, or will it require a FLV wrapper with H.264 content?

Thanks again!

Tuesday, August 21, 2007 10:31:00 AM  
Anonymous Anonymous said...

What about seeking progressive download without downloading the whole file? The MPEG4 container stsz and stts boxes provide the time-to-byteoffset mapping the player would need to use HTTP byte-range support to seek.

Tuesday, August 21, 2007 10:41:00 AM  
Blogger Help said...

Great. Think you could update the Embedded Devices version of Flash so that all this kickass stuff ACTUALLY WORKS on the Wii?

Tuesday, August 21, 2007 1:05:00 PM  
Anonymous Anonymous said...

next step: destroy DRM in all incarnations.

Tuesday, August 21, 2007 1:34:00 PM  
Anonymous Chris Allen said...

That is indeed unfortunate about Adobe closing this off to third party tools. I understand the need to sell FMS, but I don't believe this is the way to do it. Innovate rather than restrict. And as another poster mentioned, it looks like it might not be legal to do that anyway.

Of course I'm a bit biased being one of the leads on the Red5 Project, but I seriously think putting restrictive uses on your technology is going to make you loose more customers than you would gain.

This will be interesting though. Best of luck.

Tuesday, August 21, 2007 1:44:00 PM  
Anonymous Anonymous said...

This is, no doubt, VERY COOL! However, when will Flash support simple PDF viewing?
Video is all well and good, and based on everyones posts is something that alot of people really want to see, but as a printer I'd love to see PDF support out of the box.

Tuesday, August 21, 2007 2:09:00 PM  
Blogger Marcel said...

works good so far: http://marcelfahle.com/2007/08/21/first-h264-demo-in-flash-player-9/

does anybody know where the green bar on the right side is coming from? here's the mp4 file: http://marcelfahle.com/video/h264/bonifacio576/bonifacio-576.mp4

Tuesday, August 21, 2007 2:17:00 PM  
Anonymous Manuel Bua said...

Hi Tinic!
Great news from you on the video side!
I noticed that with this new r60.184 version the vertical bar went away, what was that?! I'm just curious...
Also, while trying to dig more with the problem i discovered another singularity here http://manuel.bit-fire.com/2007/08/20/noticeable-difference/
Is it a by-design behavior?

Tuesday, August 21, 2007 2:23:00 PM  
Blogger Marcos said...

Marcel,
That demo was amazing. The quality was incredible and the scene beautiful. Where was it filmed it? Btw, I get the green bar on the right of the video, too. No idea what the deal is there. This is on Firefox in Linux

Tuesday, August 21, 2007 2:35:00 PM  
Blogger Video Jack said...

Support for SMIL means executing the semantics of SMIL, not just parsing its syntax. To execute SMIL, we depend on the player understanding its semantics. Bottom line..SMIL? NO NO NO SUPPORT.

Tuesday, August 21, 2007 2:36:00 PM  
Anonymous Anonymous said...

"This is, no doubt, VERY COOL! However, when will Flash support simple PDF viewing?"

Lets hope it never does. There already is a bloated Acrobat Reader you can use for this. Keep Flash for sound/video/Actionscript etc. Keep it small!

BTW, frigging cool announcement. :) This really opens the door for Flash developers to dive into the world of media. (Not just the web any more)

Tuesday, August 21, 2007 2:45:00 PM  
Blogger Zel said...

Are you going to support HE-AAC with PS (parametric stereo) - aka HE-AAC v2 - in this release?

Tuesday, August 21, 2007 2:54:00 PM  
Anonymous Brennan Young said...

to ayo bintiie :

'Sorenson' refers not to 'Spark' but to Sorenson 3, which was Apple's favorite QuickTime codec before H.264 (and before Sorenson got into bed with Macromedia). I fully expect support for 'Spark' to continue. (Adobe would be nuts to drop it).

Also, it's vaguely implied that Flash will play 'any' .MOV files, which would be misleading. Clearly only .MOV files with tracks encoded with supported codecs will play.

I also seriously doubt whether a multitrack .MOV will be supported (for example a .MOV with multiple language alternate audio tracks).

Tuesday, August 21, 2007 2:55:00 PM  
Blogger Zel said...

Are you also supporting parametric stereo (PS) feature in HE-AAC (aka HE-AAC V2)?

Tuesday, August 21, 2007 2:57:00 PM  
Blogger Miika said...

Wow, this is really great piece of news! This means we can take full advantage of all the advanced encoding settings of x264 (like RDO, loop filter etc.) to squeeze video to even smaller bandwidth than before (or get just a lot better quality with same bandwidth). Addition of HE-AAC/AAC+ aka SBR is also a great thing, to me 56 kbits AAC SBR made by Nero's latest encoder sounds normally better than 128 kbits mp3.

Tuesday, August 21, 2007 3:07:00 PM  
Blogger Miika said...

This is really great piece of news! Since Flash will support High Profile, we can take full advantage of x264's advanced encoding settings like RDO, loop filter, cabac etc. right?
Addition of HE-AAC/AAC+ aka SBR is also a great thing, to me 56 kbits HE-AAC sounds normally better than 128 kbits mp3.

Tuesday, August 21, 2007 3:10:00 PM  
Anonymous Scott Barnes said...

Probably one of the best posts i've read online in a quite some time..

Awesome response to the new toys dude :)

-
Scott Barnes
Developer Evangelist
Microsoft.

Tuesday, August 21, 2007 3:29:00 PM  
Anonymous Anonymous said...

So, is there any word of a FreeBSD build in our future? I know teh BSD world would be tickled shitless to see this, and Adobe would be expanding their customer base. A win/win for all, and for only a minor effort to tweak the linux sources and a box to build on (can even get around that with a VM).

Tuesday, August 21, 2007 4:11:00 PM  
Anonymous Kent Bye said...

"Do we support SMIL? No. You can easily write your own SMIL parser in ActionScript though."

Ugh.

It's pretty disappointing that you're not supporting this open standard -- especially with clipBegin & clipEnd functionality.

Tuesday, August 21, 2007 4:14:00 PM  
Blogger Marcel said...

Marcos,

thanks, the video was filmed in Bonifacio, southern Corsica, earlier this year.. I think the quality could be really better. What I did there was ultra-fast "fire and forget" encoding.. I try to bring some more and better looking stuff online soon :)

Tuesday, August 21, 2007 4:35:00 PM  
Blogger Mubashir Cheema said...

Thanks for releasing the Linux version at the same time as Windows and Mac!

Tuesday, August 21, 2007 4:41:00 PM  
Anonymous Anonymous said...

And while you are releasing things, perhaps a 64 bit linux version of the existing player could be done? (I know that would be pushing an envelope, since the processors and OS have only been available for a few years now.)

Tuesday, August 21, 2007 5:18:00 PM  
Blogger Florent Thiery said...

Just my 2 cents:

From http://www.mpegla.com/avc/AVC_TermsSummary.pdf
* 0,02$ per VOD user
* first 12 minutes for free
* no licensing fees for internet broadcasters, as long as users don't pay for viewing

Yay. If only FMS wasn't a requirement for live broadcasting :(

Tuesday, August 21, 2007 5:55:00 PM  
Blogger Avi said...

Thanks for the great info!

One question, you said: A software based H.264 codec. Does this mean that if a system has a hardware H.264 decoder, the Flash Player won't take advantage of it?

Tuesday, August 21, 2007 6:19:00 PM  
Anonymous Jos said...

The "lossless" h264 mode from ffdshow (tryouts) doesn't seem to work correctly. It's a shame really, since that one would be the perfect choice for screencasts. It's smaller and it also looks better (no banding and crisp edges).

Example mp4:
http://kaioa.com/k/flashissue.mp4 (1mb)

The screenshare codec is pretty bad in comparison. It's about 3 times bigger and the improved quality is basically invisible.

Speex would have been nice for narration, but HE-AAC offers pretty similar results. Mono/16khz/12Kbits is already good enough if you remove the static noise beforehand.

Tuesday, August 21, 2007 9:42:00 PM  
Blogger Raphael said...

Thank you for those new features but what about the memory leak ?

Reboot computers each day because of a huge usage of flash player is boring...

But congratulations for H264, it was really urgent !

Wednesday, August 22, 2007 1:20:00 AM  
Anonymous Anonymous said...

I tried one of the examples and shoved it in blend app eg:
Frame Source="http://marcelfahle.com/2007/08/21/first-h264-demo-in-flash-player-9/"/
and it seems to work fine, but this would need a user to install the beta player. Frame with web pages is a bit heavy just to have flash movie in your desktop app, so my question is; In regard to the beta players that have been released for testing - is there a better/alternative way to use them in C#, did you release an OCX and do you have the wrappers for it to work with latest C# studio, let me stress I am only interested in desktop not web use if it make a difference. Many thanks

Wednesday, August 22, 2007 2:58:00 AM  
Anonymous Anonymous said...

Flash can play videos, I *cannot* believe it.
Hey guys, lets do some barrel rolls!

Wednesday, August 22, 2007 3:12:00 AM  
Anonymous Anonymous said...

Keep up the good work. Now I wear my 'end-user hat'. I have one wish: Add Save video as... option to right click menu.

Wednesday, August 22, 2007 8:22:00 AM  
Anonymous Anonymous said...

HE-AAC is far better in quality terms than Speex codec on 12 kbit/s

compare for yourself.
http://rapidshare.com/files/50569763/SPEECH.zip.html

I played the files by foobar player www.foobar2000.org

Wednesday, August 22, 2007 8:31:00 AM  
Anonymous Anonymous said...

Jeez, guys. It's a beta. If something does not work, file a bug.

Wednesday, August 22, 2007 8:34:00 AM  
Blogger Andra said...

From http://www.mpegla.com/avc/AVC_TermsSummary.pdf
* no licensing fees for internet broadcasters, as long as users don't pay for viewing

Yay. If only FMS wasn't a requirement for live broadcasting :(


Uhm, what about this part:
...there will be no royalty during the first term of the License (ending December 31, 2010),
and after the first term the royalty shall be no more than the economic equivalent of
royalties payable during the same time for free television.


Does this mean we'll be paying through the nose in about 3 years?

Wednesday, August 22, 2007 9:03:00 AM  
Blogger buteskin said...

Hi Tinic,

I hope you have some time to answer some questions from the replies of your article.

I also have a question, here I do..

Will the Sound object memory leak be resolved in upcoming updates?

Currently when loading a shoutcast stream, the stream gets loaded into memory, but never released, so the memory fills up until computer freezes.

Some people tried to make workarounds, like Minicaster, but those workarounds don't work properly (hearable gaps).

I have had email contact with Emmy about this, and she adviced me to send a bug report, wich I did. But i did not hear any responses yet.

Also currently shoutcast support is limited, although the player supports it, (wich means that is implemented by sending the ici headers), there is no way to get the song titles, wich are available withing the byte stream.

Well, hope to hear from you.

Bart

Wednesday, August 22, 2007 10:30:00 AM  
Blogger Allan White said...

Very excited - our offline video libraries are H.264, so this will be very cool for us.

A few commenters mentioned "H.264 licensing costs". What costs are these, and for whom? I was under the impression it was an open standard. How has H.264 ever required licensing fees to encode to?

Do you mean, "costs for software developers to add H.264 export to their software", or "costs for content producers to create/use H.264 in their videos"?

Who has to pay licensing fees? No one's ever asked me.

Wednesday, August 22, 2007 10:45:00 AM  
Blogger Scott said...

When will they add support for divx and ogg vorbis and theora... HAH just kidding?

Wednesday, August 22, 2007 11:40:00 AM  
Anonymous Anonymous said...

Allan, "Open Standard" != "No cost licensing"

It would've helped to have read Florent's comment upstream before posting.

Wednesday, August 22, 2007 11:59:00 AM  
Anonymous Steve Elbows said...

Ive been experimenting with this stuff using a 960x540 h264 at about 200kbits 25fps.

I have noticed that CPU use is lower when playing the adobe sample in fullscreen, than it is in normal mode. It is also using a lot less CPU to play these 960x540 files fullscreen, than current youtube, blip.tv etc players are using in fullscreen with much smaller videos.

So, I am wondering what the optimal settings to use in actionscript coe are for fullscreen playback? eg If i take th excellent JW player, it uses a lot more CPU than the adobe sample, with both pl