FFmpeg : record, convert and stream audio and video

Last update : August 29, 2013

ffmpeg

FFmpeg Command Line Tool

FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec – the leading audio/video codec library.

The latest version is 2.0.1 released August 11, 2013. Version 0.6.x released in 2010 featured a lot of improvements that are relevant for HTML5 video. The H.264 and Theora decoders were significantly faster, the vorbis decoder has seen important updates and the release supported Google’s newly released libvpx library for the VP8 codec and WEBM container.

FFmpeg is free software licensed under the LGPL or GPL depending on the configuration options. Companies that violate the license terms are tracked and listed on the Hall of Shame and eventually sued.

ffdshow wrapper for Windows DirectShow

FFmpeg is developed under GNU/Linux, but it can be compiled under most operating systems. Windows distributions are available at the website ffmpeg.zeranoe.com. On Windows there are however some limitations, for instance up to now it’s not possible to capture audio in realtime.

To make the libavcodec decoders available to DirectShow-based applications (a proprietary Windows technology), you can use ffdshow. This DirectShow filter is a DirectShow-wrapper around the libavcodec (ffmpeg) decoders. Non DirectShow-based applications like Avidemux use libavcodec/ffmpeg through it’s native interface. There exist a fork of the original ffdshow project called ffdshow tryouts.

Paul Glagla developed a utility Filmerit (version 3.0.8 published on May 14, 2007) to show DirectShow filters and diagnose errors. Another similar tool called InstalledCodec (version 1.30) which allows to enable/disable codec drivers and DirectShow filters is available on the NirSoft website.

FFmpeg is a command-line based tool. There are however several graphical user interfaces (GUI) available :

  • SUPER from eRigthSoft
  • Avanti, a dedicated “workbench” for FFmpeg/Avisynth
  • HandBrake, an open-source, GPL-licensed, multiplatform, multithreaded video transcoder; I upgraded to version 0.9.5 in june 2011
  • WinFF, a free tool published under the GNU public license for Windows and Ubuntu

SUPER from eRigthSoft

Avanti GUI

HandBrake

FFmpeg or the libraries are also used by other video frameworks :

  • VLC from Videolan

A full list of all projects using FFmpeg is available on the official website.

A similar project as FFmpeg, using several components of this project, is MEncoder.

The following list provides some useful links about FFmpeg :

The WebM Project

last update : January 16, 2011
The WebM project is dedicated to developing a high-quality, open video format for the web that is freely available to everyone.

The WebM launch is supported by Mozilla, Opera, Adobe, Google and more than forty other publishers, software and hardware vendors.

WebM defines the file container structure, video and audio formats. WebM files consist of video streams compressed with the VP8 video codec and audio streams compressed with the Vorbis audio codec. The WebM file structure is based on the Matroska container.

VP8 is a highly efficient video compression technology that was developed by On2 Technologies.

A detailed description about the WebM Project is available at the FAQ section of the website.

A first WebM encoder is available from Miro, another one from PolySoft Solutions.

Some specialists are not convinced that WebM will be a success, as stated by Devon Govett on his blog. Others, like Jason Garrett-Glaser, the current primary x264 developer and ffmpeg developer, even thinks that the performance of the V8 codec is lower than the heavenly patented H.264 codec and that there will be patent issues in the future, because V8 copied too much from H.264.

How to encode to WebM is the title of a contribution posted by Jan Ozer in the Streaming Media Magazine in january 2011.