FFmpeg

History and Licence
The project was started by Fabrice Bellard (using the pseudonym "Gerard Lantau"). Bellard was the brilliant programmer behind TCC, a tiny 'C' compiler that is nine times faster than GCC. FFmpeg 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.

Two video codecs were invented during the development of the FFmpeg project. These are the lossless FFV1 and the only nearly complete lossless or lossy working Snow codec based on wavelet transformations and an intelligent version of range encoding.

FFmpeg is released under the GNU Lesser General Public License or GNU General Public License (depending on which sub-libraries one would include).

Downloading and compiling FFmpeg
FFmpeg is developed under Linux and there are no binaries, but it can be compiled under most operating systems, including Apple Mac OS X, Microsoft Windows and Amiga Workbench. There are no releases. Instead, FFmpeg developers recommend using the latest subversion snapshot - the developers attempt to maintain a stable trunk.

Components

 * ffmpeg is a command line tool to convert one video file format to another. It also supports grabbing and encoding in real time from a TV card.
 * ffserver is an HTTP (RTSP is being developed) multimedia streaming server for live broadcasts. Time shifting of live broadcast is also supported.
 * 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. Other projects than FFmpeg also use the libavcodec library.
 * libavformat is a library containing muxers and demuxers for audio/video container formats.
 * libavutil is a helper library containing routines common to different parts of FFmpeg.
 * libpostproc is a library containing video postprocessing routines.
 * libswscale is a library containing video image scaling routines.

File formats (from ffmpeg)
E 3g2            3gp2 format E 3gp            3gp format D 4xm             4X Technologies format D MTV             MTV format DE RoQ            Id RoQ format D aac             ADTS AAC DE ac3            raw ac3 E adts           ADTS AAC DE aiff           Audio IFF DE alaw           pcm A law format DE amr            3gpp amr file format D apc             CRYO APC format D ape             Monkey's Audio DE asf            asf format E asf_stream     asf format DE au             SUN AU Format DE avi            avi format D avs             AVISynth D bethsoftvid     Bethesda Softworks 'Daggerfall' VID format D c93             Interplay C93 E crc            crc testing format D daud            D-Cinema audio format D dsicin          Delphine Software International CIN format D dts             raw dts DE dv             DV video format E dvd            MPEG2 PS format (DVD VOB) D dxa             dxa D ea              Electronic Arts Multimedia Format D ea_cdata        Electronic Arts cdata DE ffm            ffm format D film_cpk        Sega FILM/CPK format DE flac           raw flac D flic            FLI/FLC/FLX animation format DE flv            flv format E framecrc       framecrc testing format DE gif            GIF Animation DE gxf            GXF format DE h261           raw h261 DE h263           raw h263 DE h264           raw H264 video format D idcin           Id CIN format DE image2         image2 sequence DE image2pipe     piped image2 sequence D ingenient       Ingenient MJPEG D ipmovie         Interplay MVE format DE libnut         nut format DE m4v            raw MPEG4 video format DE matroska       Matroska File Format DE mjpeg          MJPEG video D mm              American Laser Games MM format DE mmf            mmf format E mov            mov format D mov,mp4,m4a,3gp,3g2,mj2 QuickTime/MPEG4/Motion JPEG 2000 format E mp2            MPEG audio layer 2 DE mp3            MPEG audio layer 3 E mp4            mp4 format D mpc             musepack D mpc8            musepack8 DE mpeg           MPEG1 System format E mpeg1video     MPEG video E mpeg2video     MPEG2 video DE mpegts         MPEG2 transport stream format D mpegtsraw       MPEG2 raw transport stream format D mpegvideo       MPEG video E mpjpeg         Mime multipart JPEG format DE mulaw          pcm mu law format D mxf             MXF format D nsv             NullSoft Video format E null           null video format DE nut            nut format D nuv             NuppelVideo format DE ogg            Ogg format E psp            psp mp4 format D psxstr          Sony Playstation STR format DE rawvideo       raw video format D redir           Redirector format DE rm             rm format E rtp            RTP output format D rtsp            RTSP input format DE s16be          pcm signed 16 bit big endian format DE s16le          pcm signed 16 bit little endian format DE s8             pcm signed 8 bit format D sdp             SDP D shn             raw shorten D siff            Beam Software SIFF D smk             Smacker Video D sol             Sierra SOL Format E svcd           MPEG2 PS format (VOB) DE swf            Flash format D thp             THP D tiertexseq      Tiertex Limited SEQ format D tta             true-audio D txd             txd format DE u16be          pcm unsigned 16 bit big endian format DE u16le          pcm unsigned 16 bit little endian format DE u8             pcm unsigned 8 bit format D vc1             raw vc1 E vcd            MPEG1 System format (VCD) D vmd             Sierra VMD format E vob            MPEG2 PS format (VOB) DE voc            Creative Voice File format DE wav            wav format D wc3movie        Wing Commander III movie format D wsaud           Westwood Studios audio format D wsvqa           Westwood Studios VQA format D wv              WavPack DE yuv4mpegpipe   YUV4MPEG pipe format

Note, the names of encoders and decoders do not always match, so there are several cases where the above table shows encoder only or decoder only entries even though both encoding and decoding are supported. For example, the h263 decoder corresponds to the h263 and h263p encoders, for file formats it is even worse.

Audio codecs (from ffmpeg)
EA   ac3 D A   adpcm_4xm DEA   adpcm_adx D A   adpcm_ct D A   adpcm_ea D A   adpcm_ea_r1 D A   adpcm_ea_r2 D A   adpcm_ea_r3 D A   adpcm_ea_xas D A   adpcm_ima_amv D A   adpcm_ima_dk3 D A   adpcm_ima_dk4 D A   adpcm_ima_ea_eacs D A   adpcm_ima_ea_sead D A   adpcm_ima_qt D A   adpcm_ima_smjpeg DEA   adpcm_ima_wav D A   adpcm_ima_ws DEA   adpcm_ms D A   adpcm_sbpro_2 D A   adpcm_sbpro_3 D A   adpcm_sbpro_4 DEA   adpcm_swf D A   adpcm_thp D A   adpcm_xa DEA   adpcm_yamaha D A   alac D A   ape D A   atrac 3 D A   cook D A   dca D A   dsicinaudio DEA   flac DEA   g726 D A   imc D A   interplay_dpcm D A   liba52 DEA   libamr_nb DEA   libamr_wb EA   libfaac D A   libfaad DEA   libgsm DEA   libgsm_ms EA   libmp3lame EA   libvorbis D A   mace3 D A   mace6 DEA   mp2 D A   mp3 D A   mp3adu D A   mp3on4 D A   mpc sv7 D A   mpc sv8 D A   mpeg4aac D A   nellymoser DEA   pcm_alaw DEA   pcm_mulaw DEA   pcm_s16be DEA   pcm_s16le D A   pcm_s16le_planar DEA   pcm_s24be DEA   pcm_s24daud DEA   pcm_s24le DEA   pcm_s32be DEA   pcm_s32le DEA   pcm_s8 DEA   pcm_u16be DEA   pcm_u16le DEA   pcm_u24be DEA   pcm_u24le DEA   pcm_u32be DEA   pcm_u32le DEA   pcm_u8 DEA   pcm_zork D A   qdm2 D A   real_144 D A   real_288 DEA   roq_dpcm D A   shorten D A   smackaud D A   sol_dpcm DEA   sonic EA   sonicls D A   truespeech D A   tta D A   vmdaudio DEA   vorbis D A   wavpack DEA   wmav1 DEA   wmav2 D A   ws_snd1 D A   xan_dpcm

Legal issues
FFmpeg's legal status varies by country. Some included codecs, (such as Sorenson 3), are 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. In any case, many Linux distributions do not include FFmpeg to avoid legal complications.