First of all, to clear some terms:
- FFmpeg is a software project with a lot of people involved, a Wiki, an error tracker, some funding, etc.
ffmpeg is one of the tools they offer (e.g. other ffplay and qt-faststart ).- Libav is the fork of the FFmpeg project, which provides the
avconv binary. They both develop independently, but FFmpeg usually merges with Libau, and not vice versa. (Some may say that Libav suffers from NIH ). Some distributions decided to send Libav instead of FFmpeg programs, in particular Ubuntu, which caused some confusion during the transition period when the Libav team was still called ffmpeg . Now Ubuntu is again using the "real" ffmpeg .
The ffmpeg tool, as you said, is a command-line shell for a number of libraries designed to handle multimedia content. These include:
While FFmpeg developers often provide their own encoders and decoders, you can include third-party libraries that have wrappers in libavcodec to glue together FFmpeg and, say, x264 , which is the most popular H.264 encoder. This is often done when there is simply no reason to โreinvent the wheelโ, which would be if someone decided to write a new H.264 encoder with the goal of being better than x264. In other cases, some libraries may not ship with the ffmpeg construct for licensing reasons, such as libfaac. In this case, ffmpeg offers its own AAC encoder.
Common external encoders include:
- libx264
- libvpx (for VP8 and VP9 video)
- libfaac, libfdk-aac, libvo-aacenc for AAC audio
- libmp3lame
- libvorbis
- libxvid
For all of them, you will find wrappers under libavcodec, for example. for libx264, the libx264.c file contains the necessary code to output the video from the internal FFmpeg format to the x264 encoder, and then transfer it to libavformat to write it to the file. Actual coding is done through libx264.
As mentioned earlier, other encoders, such as for MPEG-4 , are native to FFmpeg and generally do not rely on external libraries.
Finally, there are several programs that use the FFmpeg tools and libraries, whether using the ffmpeg executable or by selecting parts of libavcodec and the libavformat library. This is licensed and makes FFmpeg the most popular collection of multimedia tools today.
slhck source share