Mpeg4 Videos in Adobe Flash Player
By Cliff Etzel • Jun 20th, 2008 • Category: Post Production
I recently became aware of the ability of Adobe’s Flash Player having the capability of playing mpeg4 video’s.Why, when there has been such great success with On2’s VP6 codec would Adobe make this feature available?
My conclusion is because mpeg4 is a superior format to native flv at the cost of slightly larger file sizes.
I’ve made it quite clear that I exclusively use SONY’s Vegas Pro 8 for editing my video content. It is from my experience, the best NLE available for the solo video journalist paradigm for quickly and efficiently editing video and audio.
One of the great features of Vegas Pro 8 is it’s ability to encode to numerous file formats without having to jump through a bunch of hoops, as was plainly proven to me by a colleague who uses Premiere Pro - he’s limited to a handful of file formats when he wants to render out his timeline.
But I digress - back to the meat of this article.
I found a straightforward way to take an HDV timeline in Vegas, and encode that timeline to a web ready mpeg4 video file to play back in Adobe’s Flash Player.
The Procedure:
- First off, under your general project settings, make sure your audio bit rate is set to 44,kHz - I have experience anomalous audio problems when down converting 48kHz to 44kHz
- Once you have your project ready to encode out, Select File->Render As->Then select the Mainconcept AVC/AAC (*.mp4) option. Now, select the custom button, and let’s modify our video properties.
- Under Project settings, I select either Good or Best.
- Next, under Video, I drop down the Frame Size option and select (Custom frame size) - I then enter in a value of either 480×270, or 640×360 - these are standard wide screen dimensions for the web.
Next, I select Frame Order as None (progressive scan) with a pixel aspect ratio of 1.000. I then opt for Variable bit rate with the Max (bps) setting at 2,000,000 and the average set to 1,000,000.
- Under Audio options, I select 44,000 Hz for my sample rate and a bit rate of 96,000 bps.
- At this point you may want to save this as a new template - I would make the appropriate changes in the description of your new template and give it a name of your choice.
- Now render out your video file.
Once you have your encoded Mpeg4 video file, you still have some additional post processing to perform on the video file.
Adobe released an application platform called AIR, which is based around their Flex application platform. Adobe’s Media Player is devleoped using AIR, and one of the free tools needed requires having Adobe Air installed first. You can download AIR from Adobe’s website.
Next, you need to download a post processing utility called QTIndexSwapper. With the release of the Flash Player 9 Update that which now supports H.264, we now have the ability to play a subset of H.264 movie files. The problem is most of the H.264 files have the index at the end of the file which, for progressive download, means you have to download the whole file before you can start watching any of the video.
QTIndexSwapper basically moves the index file from the back of the file to the front - thus allowing the mp4 file to begin playing within the flash video player as it’s being downloaded. The application is straight forward to install and use.
Now the last part is getting the actual file to play within the Flash Video Player. This is going to depend on your mehtod of web page construction. I use Wordpress, so it’s a simple matter of utilizing the Embed FLV plugin and specifying the path statement to the mp4 file on my websites. Click on the thumbnails below to see the process for adding an mp4 video with the embedded flv player in Wordpress.
For those creating web static web pages, the process is a little more involved. It requires using the free JW FLV MEDIA PLAYER v3.16 and following the tutorial on the site on how to embed a flash video into a webpage. The only difference is instead of specifying an FLV file, you use the mp4 file you encoded and converted. There is even a discussion thread that talks about the detailed procedure for using mpeg4 files with the player.
My own testing has shown that the mp4 video files look much better at the expense of file sizes being slightly larger compared to native FLV files - but that is something I’m willing to give up for better image quality. I’mn sure there are other NLE users out there wondering if they can do the same thing - Read the details surrounding how to embed the flash video player in a web page - there is a wealth of down to earth information surrounding how to do this.
As the jack of all trades mater of them all, we as solo video journalists need to keep abreast of the latest technologies that provide avenues of content distribution. By utilizing this method, those who utilize the web for distributing their content online, have the ability to utilize technology to their advantage - and with higher quality results.
**Note - since publishing this article, Vegas Pro 8.0c has been released as well as Vegas Pro 8.1 64bit. It appears that 8.0c introduced some sort of update to the Mainconcept MP4 encoder and it mangles the MP4 so that QTIndexSwapper can’t process the file correctly, although Vegas Pro 8.1 does produce an MP4 file correctly for QTIndexSwapper. I have now found a way to fix this for those needing to work with Vegas Pro 8.0c - extract the files from the mcmp4plug.cab file from Vegas Pro 8.0b and after backing up the files, replace them with the files from the mcmp4plug.cab file from Vegas Pro 8.0b. I have successfully rendered out an MP4 file with these files and QTIndexSwapper processes the file with no error messages.**
Cliff Etzel is a regional award winning photojournalist from the Pacific Northwest who has been a visual content creator since 15 years of age. In his past still work, he specialized in photo documentary and slice of life stories. Since discovering the new paradigm of self contained video journalism, he now focus his energies in the Solo VJ paradigm with an emphasis on people-based stories, environmental, social justice, travel and documentary work through his company, bluprojekt
All posts by Cliff Etzel



















Thanks for this, Cliff.
I got up to the QTIndexSwapper (v1.42) step, then get the following error:
File.size: 195393916
Reading Atom Metadata: [code: ftyp,size: 24,offset: 0]
Reading Atom Metadata: [code: mdat,size: 194733721,offset: 24]
Reading Atom Metadata: [code: moov,size: 659601,offset: 194733745]
Reading Atom Metadata: [code: uuid,size: 570,offset: 195393346]
ACTION: Parsing Bytes for Information 195393916
ERROR: encountered non-QT top-level atom (is this a Quicktime file?)
Completed Time: 3.633s
Any suggestions?
Brian - something happened from when I wrote the original article (which used Vegas 8.0b) that somehow has mangled how the MP4 files are written with 8.0c - I’ve all but given up on doing the mp4 thing now since I can just frame serve to On2 Flix Pro (don’t go past version 8.500 - later version doesn’t work with frame serving) to create flv files. I’ve also tried frameserving out to Quicktime pro to render an h.264 mp4 and that locks it up solid.
Only other option is to render out an uncompressed mov file and then open Quicktime pro, export it out as an h.264 mp4 file, then run QtIndexSwapper on it.
I’ve posted a question to the developer of QtIndex Swapper asking if he knows what might be the issue.
Seems like Vegas users keep getting the raw end of the deal trying to work with it efficiently.
I have discovered a workaround to get MP4 files rendered from Vegas Pro to work with QTIndexSwapper.
First off, I discovered that Vegas Pro 8.1 does render out a proper MP4 file and QTIndexSwapper will convert the file with no errors. So if you’re using 64 bit Vegas Pro, you’re good to go.
Playing a hunch, I was able to extract the files from the mcmp4plug.cab file from Vegas Pro 8.0b. I replaced them after backing up that folder to my desktop and rendered an MP4 file from 8.0c with no issues. QTIndexSwapper does read the MP4 file correctly and does process it.
If you have any questions, give me a shout and I’ll try to help.