Open source transcoding – mplayer and ffmpeg – part 1
So I've been playing with open source encoding tools as of late. It's tempting to attempt to use these tools for video work because they seem so powerful and flexible, not to mention free.
The biggest problem is just figuring out how to use the tools to accomplish what you want. So, I'll be recording some of my experiences here.
The defacto standards in this area are as follows:
- ffmpeg – this is the core codec library that provides support for encoding/decoding video in mpeg, wmv, quicktime, flv and many other formats. Basically all the other tools use this library for encode/decode.
- mplayer/mencoder – these utilities build on ffmpeg, but also include a host of other codecs and filters.
- vlan – again, I believe this guy relies on ffmpeg for any non-standard codecs.
Generally speaking ffmpeg is a video file manipulation library and app, while mplayer/vlan are end-user video player application, and mencoder is an end-user encoding application.
These tools overlap in their capabilities, and yet have wildly different usage options. Some of the core challenges with these tools are:
- Getting a build for your platform. Mplayer has some pre-built binaries, but generally these tools expect you to build them from source. Especially on non-Linux platforms this can be an incredible pain in the ass.
- Figuring out the command line options! These apps are wonderfully powerful, and wolefully documented.
I'll be adding posts on my experiences using these and other tools, with the hope of aggregating some common wisdom on using these tools to produce video for the web.