Saturday, November 14, 2009

FFmbc - A Broadcast Media Alternative to FFmpeg

FFmbc (FFMedia Broadcast) is an off-shoot of the FFmpeg project that is targeted squarely at the broadcast media world.

The project while still in its infancy, but available for around 6 months already, is currently at release version 0.2.

Launched and managed by Baptiste Coudurier, well known for his work on the FFmpeg project, FFmbc rolls out the following enhancements:
Import your files in Final Cut Pro or AVID Media Composer by
Creating XDCAM HD422 files in .mov or .mxf
Creating XDCAM IMX/D-10 files in .mov or .mxf
Creating AVID DNxHD files in .mov
Transcode your MPEG-2 4:2:2 Tranport stream files containing S302M audio.
Transcode your AVCHD Camera files correctly.
Merge and split your audio tracks.
Create Quicktime files containing time code tracks.
Advanced Metadata support.
ID3v2 complete support.
Itunes complete support.

We've been meaning to test some of FFmbc's functionality for a while now and after a couple of false starts, we've been successfully able to convert a generic MPEG2 50i (50Mbps all Intra-Frame) 4:2:2 Transport Stream to IMX D-10 in a .mov container.

This file contained PCM audio, which version 0.1 of FFmbc baulked at, but the latest version handled perfectly.

The output IMX D10 file was imported without error directly into Final Cut Pro for editing. FFmbc has not yet renamed any FFmpeg libraries, so the same conversion syntax and commands can be used across both. 

Although, be careful as this may create some library conflicts if you try to have both FFmbc and FFmpeg installed at the same time.

Why would we want to use an Open Source transcoding tool in a predominantly proprietary video production environment?

The answer is simple. Every commercial product we've investigated (Telestream's Episode Engine and Flip Factory, Rhozet's Carbon Coder, Digital Rapid's Streamz) wanted to transcode our MPEG2 source file to IMX, rather than simply re-wrap the essence into IMX.

Transcoding takes a considerable amount of time and will always lower the quality of the final output, no matter how minutely.

FFmbc instead took our video and audio essence, extracted it from the MPEG2 Transport Stream and re-wrapped it all to IMX D10. 

Our 30 minute test file was around 16GB in size. Our test machine was a puny eeePC, with an Intel Atom N280 1.66Ghx processor, running Ubuntu Karmic Koala Netbook remix (hardly ideal for transcoding video).

The entire conversion process took a little over 7 minutes, at a rate of approximately 110fps (frames per second). Pretty impressive!

There are a couple of caveats to mention with regards to FFmbc. The software is very new and Baptiste is very busy.

I'm sure more developers would be a welcome addition to the project. We used the earlier Stream#0 tutorial for installing FFmpeg to achieve the same for FFmbc.

However, FFmbc v0.2 didn't like the latest SVN of x264, which is a bug that won't be fixed until the next FFmbc release.

Instead, we used the packaged libx264 from the Ubuntu repository. FFmbc then compiled and installed without error.

Checking out the latest FFmbc from GIT also caused some issues The source compilation complained and failed regarding the absence of swscale.

However, working around these small issues, we've achieved our goal - a quick conversion of a generic MPEG2 file to something that can be edited using Final Cut Pro.

FFmbc is an exciting prospect, targeted directly at the broadcast media world. If you're looking for an open source file transcoding solution, to integrate with your Avid or Final Cut Pro editing environment, give FFmbc a chance to prove itself.

No comments:

Post a Comment