Every once in a while I decide to install the latest FFmpeg/FFmbc on my machine. Despite all the recent upheaval in the FFmpeg camp, it is still a fabulous open source file transcoding tool. However, I am much more interested in these tools from a professional level, and thus now use FFmbc. FFMedia Broadcast supports a number of high end formats that FFmpeg doesn’t, or at least doesn’t very well – XDCAM HD and IMX/D10 for example. The latest FFmbc-0.6-rc3 has introduced some interesting transcoding preset options to make things even easier.
FFmbc isn’t packaged. It needs to be installed manually. I’ve covered doing this for FFmpeg in the past, but options and switches are always changing, plus some of these in FFmbc are quite different. Here’s how I achieved it today…..
My build system is a fresh install of Linux Mint Debian (LMDE). It’s based on Debian Testing.
First, we need to update the sources list. Depending on your distribution, you may not need to do this. LMDE already has this repository added. I use pico as my text editor. Feel free to use nano, vi or emacs if you prefer.
Go to the Debian Multimedia repository site and download the keyring package. Follow the instructions for unpackaging it about half-way down the front page. Now update your sources list:
>sudo pico /etc/apt/sources.list
Add “deb http://www.debian-multimedia.org testing main” on a new line and save the file.
>sudo apt-get update
>sudo apt-get upgrade
Now you’re using the latest sources and packages.
I used to build x264 direct from source. I’ve found that the Debian Multimedia repository has a packaged version from February 12th, 2011 available. That’s new enough, so I just installed the library package.
Next, install all the additional libraries we’ll need:
>sudo apt-get install build-essential yasm libgpac-dev libdirac-dev libgsm1-dev libschroedinger-dev libspeex-dev libvorbis-dev libopenjpeg-dev libdc1394-22-dev libsdl1.2-dev zlib1g-dev texi2html libfaac-dev libmp3lame-dev libtheora-dev libxvidcore4-dev libopencore-amrnb-dev libopencore-amrwb-dev frei0r-plugins-dev libcv-dev libvpx-dev libgavl1 libx264-dev
Now to configure FFmbc. There’s so many options, it’s sometimes hard to know which ones to choose. The list below is my personal preference, but do try ./configure –help to assist in choosing your own.
>./configure –enable-gpl –enable-version3 –enable-nonfree –enable-shared –enable-postproc –enable-runtime-cpudetect –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-frei0r –enable-libdc1394 –enable-libdirac –enable-libfaac –enable-libgsm –enable-libmp3lame –enable-libopenjpeg –enable-libschroedinger –enable-libspeex –enable-libtheora –enable-libvorbis –enable-libvpx –enable-libx264 –enable-pthreads –enable-libxvid –enable-zlib
After a successful configuration, all the enabled decoders, encoders and muxers will be displayed. There are some configuration dependencies here. If you don’t –enable-gpl things like postproc will fail at build time. Next….
>sudo make install
“Make” will probably take quite a long time. Hopefully it will all proceed without any fatal errors.
In the past, I recommended manually building qt-faststart. A little utility that moved header atoms in mpeg4 files to allow for progressive downloads. This is not required for FFmbc as -faststart is now a switch within the mp4 muxer.
Finally, it would still seem that simply typing “ffmbc” on the command line will throw an error regarding shared libraries (we did build FFmbc with –enable-shared). To fix this we do the following:
>sudo pico /etc/ld.so.conf
Add the line “/usr/local/lib” (without quotes) to this file and then save it. Read more about dynamically linked libraries here, specifically the fourth paragraph to explain what we just did. Then:
We’re finished! Next thing for you to do is learn how to use it…… Most FFmpeg tutorials will be valid, as FFmbc is regularly synchronised on FFmpeg, but also read the information on the FFmbc project pages about how to use the XDCAM HD and IMX/D10 presets.
It has been announced as available for a while now, but only recently was the download made publically available again for FFmbc 0.5. Lead developer Baptiste is doing a super job moving this project forward, but really needs the support from more media professionals to fully realise the early promise of this open source, broadcast media focused, transcoding solution.
FFmbc 0.5 download available here.
FFmbc 0.5 feature updates include:
- Sync on FFmpeg svn r25202.
- Yadif video deinterlacing filter.
- Overlay video filter.
- Fade video filter.
- HQDn3d video filter.
- Rename ffmpeg binary to ffmbc.
- FFmbc is now GPL only.
- Disable shared libraries.
- Remove -s resizing output cli option, use -vf scale.
- 23.98 and 24 fps support in MXF muxer.
- Mpeg-2 aspect ratio bitstream filter, to change aspect ratio without reencoding.
- Fix an issue with -async and audiomerge.
- Fix an issue with the fade filter.
- Write interlacing information in mov files, fix deinterlacing with quicktime player.
- Correctly support interlaced in yuv4mpeg and quicktime.
- Display interlacing when printing information.
- Fix an issue with resampling and audiomerge.
A little over one month since the release candidate was made available, FFMBC has officially rolled our version 0.4. Lots of useful and interesting updates for our favourite open source video transcoding tool:
Just days after I first wrote about FFmbc (FFMedia Broadcast) the team have released a new version, marked as 0.3.
- Sync on FFmpeg svn r20539.
- Write Quicktime timecode track.
- Set closed gop flag for first gop when encoding with b frames.
- Search relative path when opening Quicktime reference files.
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:
• Creating XDCAM HD422 files in .mov or .mxf
• Creating XDCAM IMX/D-10 files in .mov or .mxf
• Creating AVID DNxHD files in .mov
• ID3v2 complete support.
• Itunes complete support.