Working with Flash H.264 Video – Getting to know moof atoms

I have been involved with several webcasts where we chose to use the H.264 codec within the Flash Live Media Encoder software. From what I have been told, and have to believe is true, is that H.264 yields better quality than the standard VP6. This past Saturday I did a webcast for a fairly high-profile client here in Atlanta, and decided to go with the H.264 option to maximize quality.

The webcast itself went fine. No word from anyone watching that there were any issues – which is to be expected. The problem came when I posted the archive file – produced by FLME when the “Save to File” option is selected – for on-demand viewing after the program. The file extension is F4V, as opposed to FLV with standard VP6 file. I couldn’t get the file to play within my OVP (online video platform). Seemed to be “broken” or something.

So, I did a little checking around with the engineers here and found a few issues that are “known”. First, and most disappointing, is an issue with the F4V format that won’t allow you to play it as a progressive download until it is run through the Adobe Post Processor ( You can stream it, using RTMP, but can’t open it locally or play it using HTTP. So, I downloaded the Adobe F4V Post Processor, unzipped it, and got to work on “flattening” this file into a format I can use. So, the post processor is a command-line program. Now, I’m not afraid of typing commands into a black screen – reminiscent of the computers I used back in the 80s. Instructions like “f4vpp -i myvideo.f4v -o myvideo_flat.f4v”. I’m OK with that. After several attemps – and “you can’t do that” type messages, I finally received the “processing file…” response and was in business. The file was converted successfully.

From the Adobe F4V Post Processor PDF file that accompanies the software:

Adobe® Flash® Media Server versions 3.5 and later and Adobe Flash Media Live Encoder 3 can record content in MPEG-4 (F4V) format. The MPEG-4 standard is complex. Video editing tools and video players support different features of the MPEG-4 standard. MPEG-4 (F4V) files recorded on Flash Media Server use an industry-standard recording technology known as fragments or moof atoms. F4V files store information about the video in multiple moof atoms throughout the file. This practice guarantees that even if the server crashes there is always a valid file on disk. This practice also prevents memory from bloating on the server during recording.

Some MPEG-4 compatible tools and players do not support moof atoms, they support a single moov atom. These tools and players cannot recognize files recorded by Flash Media Server. The F4V Post Processor aggregates the information from all the moof atoms into a single moov atom and outputs a new file. The new file contains all the metadata of the original file.

Whew – thank goodness. As my client was anxiously awaiting the VOD version of the live broadcast, I was very happy with success and the relatively short turnaround.

So, I posted my post-processed file and sent out a link. As I was discussing this issue with another colleague, he asked if I had experienced any out-of-synch issues. From what he said, all of the F4V files he had worked with had “drifted” out of synch. The longer he watched (the deeper he got into the clip), the more out-of-synch the file became. So, I pulled up the link to the VOD program – posted on my client’s website, and took a look. File started fine, looked good, and the audio and video were in perfect synchronization. Then I clicked a spot on the scrub bar about half way through the video. Looked good. Then I clicked on spot towards the end – and there it was. The synch issue. The closer I got to the end of the clip the worse the issue became.

So, I did a little digging around the Internet looking for blogs on this topic. Easy to find. Lots of posts on this topic.

At the moment I am capturing all the video from the multi-camera shoot to try and re-edit the video – which is extremely time consuming. I won’t get into all the dirty details, but – dog gone it – this is why I “saved to file” in the first place.

My advice is simple. If you are depending on the archive from a live Flash stream using FLME, DON’T USE H.264 / F4V unless you enjoy a challenge and have a ton of time on your hands with nothing to do. I’m sure this will be improved upon – or fixed might be a better term – in the future. For today, stick with VP6.

Posted by Chuck Ebbets   @   25 May 2010

Like this post? Share it!

RSS Digg Twitter StumbleUpon Delicious Technorati Facebook


No comments yet. Be the first to leave a comment !
Leave a Comment




Previous Post
Next Post