Introducing Ffmpeg

FFmpeg is a computer program that can record, convert and stream digital audio and video in numerous formats. FFmpeg is a command line tool that is composed of a collection of free software / open source libraries. It includes libavcodec, an audio/video codec library used by several other projects, and libavformat, an audio/video container mux and demux library. The name of the project comes from the MPEG video standards group, together with "FF" for "fast forward". The logo uses a zigzag pattern that shows how MPEG video codecs handle entropy encoding.

The project was started by Fabrice Bellard (using the pseudonym "Gerard Lantau"), and is now maintained by Michael Niedermayer. Many FFmpeg developers are also part of the MPlayer project, and FFmpeg is hosted at the MPlayer project server.

FFmpeg is developed under GNU/Linux, but it can be compiled under most operating systems, including Apple Inc. Mac OS X, Microsoft Windows and AmigaOS. Most computing platforms and microprocessor instruction set architecture are also supported, like x86 (IA-32 and x86-64), PPC (PowerPC), ARM, DEC Alpha, SPARC, and MIPS architecture.

Recently version .5 of FFmpeg was released, although previously FFmpeg developers have always recommended using the latest neutral build from their source code Subversion version control system as development attempts to maintain a stable trunk. Published under the GNU Lesser General Public License or GNU General Public License (depending on which sub-libraries one would include), FFmpeg is free software.

There are two video codecs and one video container invented in the FFmpeg project during its development. The two video codecs are the lossless "FFV1", and the lossless or lossy "Snow codec", for which a version 1.0 is still in development, and the video container is "NUT" which is also currently being actively developed.

Components

The project is made of several components:

  • ffmpeg is a command line tool to convert one video file format to another. It can also grab and encode in real time from a TV card.
  • ffserver is an HTTP and RTSP multimedia streaming server for live broadcasts. It can also time shift live broadcast.
  • ffplay is a simple media player based on SDL and on the FFmpeg libraries.
  • libavcodec is a library containing all the FFmpeg audio/video encoders and decoders. Most codecs were developed from scratch to ensure best performance and high code reusability.
  • libavformat is a library containing demuxers and muxers for audio/video container formats.
  • libavutil is a helper library containing routines common to different parts of FFmpeg. This library include adler32, crc, md5, sha1, lzo decompressor, Base64 encoder/decoder, des encrypter/decrypter, rc4 encrypter/decrypter and aes encrypter/decrypter.
  • libpostproc is a library containing video postprocessing routines.
  • libswscale is a library containing video image scaling routines.
  • libavfilter is the substitute for vhook which allows the video to be modified or examined between the decoder and the encoder.

Legal status of codecs

FFmpeg contains more than 100 codecs most of which do not just store uncompressed data. At least all codecs that compress information could be claimed by patent holders. Such claims may be enforceable in countries like the United States which have implemented software patents, but are considered unenforceable or void in countries that have not implemented software patents. Furthermore, many of these codecs are only released under terms that forbid reverse engineering, even for purposes of interoperability. However, these terms of use are forbidden in certain countries. For example, some European Union nations have not implemented software patents and/or have laws expressly allowing reverse engineering for purposes of interoperability.

Most GNU/Linux distributions include a stripped version of FFmpeg only including certain codecs to avoid legal complications, instead providing such software at unofficial repositories.

Comments (0)Add Comment

Write comment
You must be logged in to post a comment. Please register if you do not have an account yet.

busy
Facebook MySpace Twitter Digg Delicious Stumbleupon Google Bookmarks RSS Feed 

Copyright © 2009-2010 Video Conversion Blog | Your Details | Terms of Use
This is a Free resource for webmasters and system administrators.