FFmpeg
Encyclopedia
FFmpeg is a free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 project that produces libraries and programs
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...

 for handling multimedia
Multimedia
Multimedia is media and content that uses a combination of different content forms. The term can be used as a noun or as an adjective describing a medium as having multiple content forms. The term is used in contrast to media which use only rudimentary computer display such as text-only, or...

 data. The most notable parts of FFmpeg are libavcodec
Libavcodec
libavcodec is a free software/open source LGPL-licensed library of codecs for encoding and decoding video and audio data. Same name but incompatible libraries are provided from both FFmpeg project and Libav project....

, an audio/video codec
Codec
A codec is a device or computer program capable of encoding or decoding a digital data stream or signal. The word codec is a portmanteau of "compressor-decompressor" or, more commonly, "coder-decoder"...

 library used by several other projects, libavformat, an audio/video container mux and demux
Multiplexing
The multiplexed signal is transmitted over a communication channel, which may be a physical transmission medium. The multiplexing divides the capacity of the low-level communication channel into several higher-level logical channels, one for each message signal or data stream to be transferred...

 library, and the ffmpeg command line program for transcoding multimedia files.
FFmpeg is published under the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

 2.1+ or GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 2+ (depending on which options are enabled).

History

The project was started by Fabrice Bellard
Fabrice Bellard
Fabrice Bellard is a computer programmer who is best known as the creator of the FFmpeg and QEMU software projects. He has also developed a number of other programs, including the Tiny C Compiler....

 (using the pseudonym
Pseudonym
A pseudonym is a name that a person assumes for a particular purpose and that differs from his or her original orthonym...

 “Gerard Lantau"), and has been maintained by Michael Niedermayer since 2004. Many FFmpeg developers are also part of the MPlayer
MPlayer
MPlayer is a free and open source media player. The program is available for all major operating systems, including Linux and other Unix-like systems, Microsoft Windows and Mac OS X. Versions for OS/2, Syllable, AmigaOS and MorphOS are also available. The Windows version works, with some minor...

 project. The name of the project comes from the MPEG video standards group, together with "FF" for "fast forward". The logo uses a zigzag
Zigzag
A zigzag is a pattern made up of small corners at variable angles, though constant within the zigzag, tracing a path between two parallel lines; it can be described as both jagged and fairly regular....

 pattern that shows how MPEG video codecs handle entropy encoding
Entropy encoding
In information theory an entropy encoding is a lossless data compression scheme that is independent of the specific characteristics of the medium....

.

FFmpeg is developed under GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...

/Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, but it can be compiled under most operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s, including Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, AmigaOS
AmigaOS
AmigaOS is the default native operating system of the Amiga personal computer. It was developed first by Commodore International, and initially introduced in 1985 with the Amiga 1000...

 and its heir MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...

. Most computing platforms and microprocessor
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...

 instruction set architectures are also supported, like x86 (IA-32
IA-32
IA-32 , also known as x86-32, i386 or x86, is the CISC instruction-set architecture of Intel's most commercially successful microprocessors, and was first implemented in the Intel 80386 as a 32-bit extension of x86 architecture...

 and x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...

), PPC (PowerPC)
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...

, ARM, DEC Alpha
DEC Alpha
Alpha, originally known as Alpha AXP, is a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations. Alpha was implemented in microprocessors...

, SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....

, and MIPS architecture
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...

.

FFmpeg version 0.5 appeared after a long time without formal releases. FFmpeg developers still always recommend using the latest neutral build
Neutral build
In software development, a neutral build is a build that reflects the current state of the source code checked into the source code version control system by the developers and done in a neutral environment, that is in an environment not used for development....

 from their source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 Git
Git (software)
Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...

 version control system.

There are two video codec
Video codec
A video codec is a device or software that enables video compression and/or decompression for digital video. The compression usually employs lossy data compression. Historically, video was stored as an analog signal on magnetic tape...

s and one video container invented in the FFmpeg project during its development. The two video codecs are the lossless "FFV1
FFV1
FFV1, which stands for "FF video codec 1", is a lossless intra-frame video codec. It can use either variable length coding or arithmetic coding for entropy coding...

", and the lossless and lossy "Snow codec", the development of which has stalled, while its bitstream format hasn't been finalized yet, making it experimental for now (February 2011), and the multimedia container is "NUT" which is also not being actively developed anymore, but is still maintained.

On June 17, 2010, with version 0.6 FFmpeg also supports WebM
WebM
WebM is an audio-video format designed to provide a royalty-free, open video compression format for use with HTML5 video. The project's development is sponsored by Google....

 and VP8
VP8
VP8 is an open video compression format released by Google, originally created by On2 Technologies.After purchasing On2 Technologies in early 2010, Google has provided an irrevocable patent promise for underlying patents for the VP8 format, and released a bitstream format specification under a...

.

On July 23, 2010 Jason Garrett-Glaser, Ronald Bultje, and David Conrad of the FFmpeg Team announced the ffvp8 decoder. Through testing they determined that ffvp8 was faster than Google's own libvpx decoder.

On March 13, 2011 a group of FFmpeg developers decided to fork the project under the name Libav. The event seems related to a recent issue in project management. Since then, the maintainer of Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...

 and Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...

 packages has switched them to the fork.

Components

The project is made of several components:
  • FFmpeg
    • 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
      Hypertext Transfer Protocol
      The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....

       and RTSP
      Real Time Streaming Protocol
      The Real Time Streaming Protocol is a network control protocol designed for use in entertainment and communications systems to control streaming media servers. The protocol is used for establishing and controlling media sessions between end points...

       multimedia streaming server for live broadcasts. It can also time shift live broadcast.
    • ffplay is a simple media player based on SDL
      Simple DirectMedia Layer
      Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....

       and on the FFmpeg libraries.
    • ffprobe is a command line tool to show media information.
  • Libav
    • avconv is based on ffmpeg command line tool, but has api differences
    • avserver is a renamed ffserver
    • avplay is a renamed ffplay
    • avprobe is a renamed ffprobe
  • libavcodec
    Libavcodec
    libavcodec is a free software/open source LGPL-licensed library of codecs for encoding and decoding video and audio data. Same name but incompatible libraries are provided from both FFmpeg project and Libav project....

    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 includes adler32
    Adler-32
    Adler-32 is a checksum algorithm which was invented by Mark Adler in 1995, and is a modification of the Fletcher checksum. Compared to a cyclic redundancy check of the same length, it trades reliability for speed. Adler-32 is more reliable than Fletcher-16, and slightly less reliable than Fletcher-32...

    , crc
    Cyclic redundancy check
    A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data...

    , md5
    MD5
    The MD5 Message-Digest Algorithm is a widely used cryptographic hash function that produces a 128-bit hash value. Specified in RFC 1321, MD5 has been employed in a wide variety of security applications, and is also commonly used to check data integrity...

    , sha1, lzo decompressor, Base64
    Base64
    Base64 is a group of similar encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation...

     encoder/decoder, des
    Data Encryption Standard
    The Data Encryption Standard is a block cipher that uses shared secret encryption. It was selected by the National Bureau of Standards as an official Federal Information Processing Standard for the United States in 1976 and which has subsequently enjoyed widespread use internationally. It is...

     encrypter/decrypter, rc4
    RC4
    In cryptography, RC4 is the most widely used software stream cipher and is used in popular protocols such as Secure Sockets Layer and WEP...

     encrypter/decrypter and aes
    Advanced Encryption Standard
    Advanced Encryption Standard is a specification for the encryption of electronic data. It has been adopted by the U.S. government and is now used worldwide. It supersedes DES...

     encrypter/decrypter.
  • libpostproc is a library containing video postprocessing routines.
  • libswscale is a library containing video image scaling
    Image scaling
    In computer graphics, image scaling is the process of resizing a digital image. Scaling is a non-trivial process that involves a trade-off between efficiency, smoothness and sharpness. As the size of an image is increased, so the pixels which comprise the image become increasingly visible, making...

     and colorspace
    Color space
    A color model is an abstract mathematical model describing the way colors can be represented as tuples of numbers, typically as three or four values or color components...

    /pixelformat conversion routines.
  • libavfilter is the substitute for vhook which allows the video/audio to be modified or examined between the decoder and the encoder.
  • libswresample is a library containing audio resampling
    Resampling (audio)
    Resampling is synonymous with several processes commonly used in manipulating audio, through which a segment of sampled audio is manipulated before being stored back to a sampled format....

     routines.

Codecs

Codecs which originated from within the FFmpeg project:
  • Snow
  • FFV1
    FFV1
    FFV1, which stands for "FF video codec 1", is a lossless intra-frame video codec. It can use either variable length coding or arithmetic coding for entropy coding...



The FFmpeg developers have implemented among others:
  • ITU-T video standards: H.261
    H.261
    H.261 is a ITU-T video coding standard, ratified in November 1988. It is the first member of the H.26x family of video coding standards in the domain of the ITU-T Video Coding Experts Group , and was the first video codec that was useful in practical terms.H.261 was originally designed for...

    , H.262/MPEG-2 Part 2
    H.262/MPEG-2 Part 2
    H.262 or MPEG-2 Part 2 is a digital video compression and encoding standard developed and maintained jointly by ITU-T Video Coding Experts Group and ISO/IEC Moving Picture Experts Group . It is the second part of the ISO/IEC MPEG-2 standard...

    , H.263
    H.263
    H.263 is a video compression standard originally designed as a low-bitrate compressed format for videoconferencing. It was developed by the ITU-T Video Coding Experts Group in a project ending in 1995/1996 as one member of the H.26x family of video coding standards in the domain of the ITU-T.H.263...

     and H.264/MPEG-4 AVC
    H.264/MPEG-4 AVC
    H.264/MPEG-4 Part 10 or AVC is a standard for video compression, and is currently one of the most commonly used formats for the recording, compression, and distribution of high definition video...

  • ITU-T vocoder standards: G.711
    G.711
    G.711 is an ITU-T standard for audio companding. It is primarily used in telephony. The standard was released for usage in 1972. Its formal name is Pulse code modulation of voice frequencies. It is required standard in many technologies, for example in H.320 and H.323 specifications. It can also...

     µ-law, G.711
    G.711
    G.711 is an ITU-T standard for audio companding. It is primarily used in telephony. The standard was released for usage in 1972. Its formal name is Pulse code modulation of voice frequencies. It is required standard in many technologies, for example in H.320 and H.323 specifications. It can also...

     A-law, G.721 (aka G.726
    G.726
    G.726 is an ITU-T ADPCM speech codec standard covering the transmission of voice at rates of 16, 24, 32, and 40 kbit/s. It was introduced to supersede both G.721, which covered ADPCM at 32 kbit/s, and G.723, which described ADPCM for 24 and 40 kbit/s. G.726 also introduced a new...

     32k), G.722
    G.722
    G.722 is a ITU-T standard 7 kHz wideband speech codec operating at 48, 56 and 64 kbit/s. It was approved by ITU-T in November 1988. Technology of the codec is based on sub-band ADPCM ....

    , G.722.2 (aka AMR-WB), G.723
    G.723
    G.723 is a ITU-T standard speech codec using extensions of G.721 providing voice quality covering 300 Hz to 3400 Hz using Adaptive Differential Pulse Code Modulation to 24 and 40 kbit/s for digital circuit multiplication equipment applications...

     (aka G.726
    G.726
    G.726 is an ITU-T ADPCM speech codec standard covering the transmission of voice at rates of 16, 24, 32, and 40 kbit/s. It was introduced to supersede both G.721, which covered ADPCM at 32 kbit/s, and G.723, which described ADPCM for 24 and 40 kbit/s. G.726 also introduced a new...

     24k and 40k), G.723.1
    G.723.1
    G.723.1 is an audio codec for voice that compresses voice audio in 30 ms frames. An algorithmic look-ahead of 7.5 ms duration means that total algorithmic delay is 37.5 ms...

    , G.726
    G.726
    G.726 is an ITU-T ADPCM speech codec standard covering the transmission of voice at rates of 16, 24, 32, and 40 kbit/s. It was introduced to supersede both G.721, which covered ADPCM at 32 kbit/s, and G.723, which described ADPCM for 24 and 40 kbit/s. G.726 also introduced a new...

    , G.729
    G.729
    G.729 is an audio data compression algorithm for voice that compresses digital voice in packets of 10 milliseconds duration. It is officially described as Coding of speech at 8 kbit/s using conjugate-structure algebraic code-excited linear prediction .Because of its low bandwidth requirements,...

     and G.729D
  • ISO
    International Organization for Standardization
    The International Organization for Standardization , widely known as ISO, is an international standard-setting body composed of representatives from various national standards organizations. Founded on February 23, 1947, the organization promulgates worldwide proprietary, industrial and commercial...

    /IEC
    International Electrotechnical Commission
    The International Electrotechnical Commission is a non-profit, non-governmental international standards organization that prepares and publishes International Standards for all electrical, electronic and related technologies – collectively known as "electrotechnology"...

     MPEG
    Moving Picture Experts Group
    The Moving Picture Experts Group is a working group of experts that was formed by ISO and IEC to set standards for audio and video compression and transmission. It was established in 1988 by the initiative of Hiroshi Yasuda and Leonardo Chiariglione, who has been from the beginning the Chairman...

     video standards: MPEG-1 Part 2, H.262/MPEG-2 Part 2
    H.262/MPEG-2 Part 2
    H.262 or MPEG-2 Part 2 is a digital video compression and encoding standard developed and maintained jointly by ITU-T Video Coding Experts Group and ISO/IEC Moving Picture Experts Group . It is the second part of the ISO/IEC MPEG-2 standard...

    , MPEG-4 Part 2
    MPEG-4 Part 2
    MPEG-4 Part 2, MPEG-4 Visual is a video compression technology developed by MPEG. It belongs to the MPEG-4 ISO/IEC standards. It is a discrete cosine transform compression standard, similar to previous standards such as MPEG-1 and MPEG-2...

     and H.264/MPEG-4 AVC
    H.264/MPEG-4 AVC
    H.264/MPEG-4 Part 10 or AVC is a standard for video compression, and is currently one of the most commonly used formats for the recording, compression, and distribution of high definition video...

  • ISO/IEC MPEG audio standards: MP1
    MPEG-1 Audio Layer I
    MPEG-1 Audio Layer I, commonly abbreviated to MP1, is one of three audio formats included in the MPEG-1 standard. While supported by most media players, the codec is considered largely outdated, and replaced by MP2 or MP3....

    , MP2
    MPEG-1 Audio Layer II
    MPEG-1 Audio Layer II or MPEG-2 Audio Layer II is a lossy audio compression format defined by ISO/IEC 11172-3 alongside MPEG-1 Audio Layer I and MPEG-1 Audio Layer III...

    , MP3
    MP3
    MPEG-1 or MPEG-2 Audio Layer III, more commonly referred to as MP3, is a patented digital audio encoding format using a form of lossy data compression...

    , AAC
    Advanced Audio Coding
    Advanced Audio Coding is a standardized, lossy compression and encoding scheme for digital audio. Designed to be the successor of the MP3 format, AAC generally achieves better sound quality than MP3 at similar bit rates....

    , HE-AAC and MPEG-4 ALS
  • ISO/IEC/ITU-T JPEG
    Joint Photographic Experts Group
    The Joint Photographic Experts Group is the joint committee between ISO/IEC JTC1 and ITU-T that created the JPEG, JPEG 2000, and JPEG XR standards. It is one of two sub-groups of ISO/IEC Joint Technical Committee 1, Subcommittee 29, Working Group 1 - titled as Coding of still pictures...

     image standards: JPEG
    JPEG
    In computing, JPEG . The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and image quality. JPEG typically achieves 10:1 compression with little perceptible loss in image quality....

    , JPEG-LS
    JPEG-LS
    Lossless JPEG refers to a 1993 addition to JPEG standard by the Joint Photographic Experts Group to enable lossless compression. However, it might be used as an umbrella term to refer to all lossless compression schemes developed by the Joint Photographic Expert group...

     and JPEG 2000
    JPEG 2000
    JPEG 2000 is an image compression standard and coding system. It was created by the Joint Photographic Experts Group committee in 2000 with the intention of superseding their original discrete cosine transform-based JPEG standard with a newly designed, wavelet-based method...

  • SMPTE
    Society of Motion Picture and Television Engineers
    The Society of Motion Picture and Television Engineers The Society of Motion Picture and Television Engineers The Society of Motion Picture and Television Engineers (SMPTE , founded in 1916 as the Society of Motion Picture Engineers or SMPE, is an international professional association, based in...

     video standards: VC-1
    VC-1
    VC-1 is the informal name of the SMPTE 421M video codec standard, which was initially developed as a proprietary video format by Microsoft before it was released as a formal SMPTE standard video format on April 3, 2006...

     (aka WMV3), VC-2 (aka Dirac), VC-3 (aka AVID DNxHD) and DPX image
  • SMPTE audio standards: SMPTE 302M
  • DVD Forum
    DVD Forum
    The DVD Forum is an international organization composed of hardware, software, media and content companies that use and develop the DVD and formerly HD DVD formats...

     standards related / Dolby audio codecs: MLP
    Meridian Lossless Packing
    Meridian Lossless Packing, also known as Packed PCM , is a proprietary lossless compression technique for compressing PCM audio data developed by Meridian Audio, Ltd. MLP is the standard lossless compression method for DVD-Audio content and typically provides about 1.5:1 compression on most music...

     (aka TrueHD) and AC-3
    Dolby Digital
    Dolby Digital is the name for audio compression technologies developed by Dolby Laboratories. It was originally called Dolby Stereo Digital until 1994. Except for Dolby TrueHD, the audio compression is lossy. The first use of Dolby Digital was to provide digital sound in cinemas from 35mm film prints...

  • 3GPP
    3GPP
    The 3rd Generation Partnership Project is a collaboration between groups of telecommunications associations, known as the Organizational Partners...

     vocoder standards: AMR-NB, AMR-WB
    AMR-WB
    Adaptive Multi-Rate Wideband is a patented speech coding standard developed based on Adaptive Multi-Rate encoding, using similar methodology as Algebraic Code Excited Linear Prediction...

     (aka G.722.2)
  • GSM related voice codecs: Full Rate
    Full Rate
    Full Rate or FR or GSM-FR or GSM 06.10 was the first digital speech coding standard used in the GSM digital mobile phone system. The bit rate of the codec is 13 kbit/s, or 1.625 bits/audio sample...

  • Windows Media Player
    Windows Media Player
    Windows Media Player is a media player and media library application developed by Microsoft that is used for playing audio, video and viewing images on personal computers running the Microsoft Windows operating system, as well as on Pocket PC and Windows Mobile-based devices...

     related video codecs: Microsoft RLE, Microsoft Video 1, Cinepak
    Cinepak
    Cinepak is a video codec developed by Peter Barrett at SuperMac Technologies, and released in 1991 with the Video Spigot, and then in 1992 as part of Apple Computer's QuickTime video suite. It was designed to encode 320x240 resolution video at 1x CD-ROM transfer rates. The codec was ported to the...

    , Indeo
    Indeo
    Indeo Video is a video codec developed by Intel in 1992. It was sold to Ligos Corporation in 2000. While its original version was related to Intel's DVI video stream format, a hardware-only codec for the compression of television-quality video onto compact disks, Indeo was distinguished by being...

     2, 3 and 5, Motion JPEG, Microsoft MPEG-4 v1, v2 and v3, WMV
    Windows Media Video
    'Windows Media Video is a video compression format for several proprietary codecs developed by Microsoft. The original video format, known as WMV, was originally designed for Internet streaming applications, as a competitor to RealVideo. The other formats, such as WMV Screen and WMV Image, cater...

    1, WMV2 and WMV3 (aka VC-1)
  • Windows Media Player
    Windows Media Player
    Windows Media Player is a media player and media library application developed by Microsoft that is used for playing audio, video and viewing images on personal computers running the Microsoft Windows operating system, as well as on Pocket PC and Windows Mobile-based devices...

     related audio codecs: WMA
    Windows Media Audio
    Windows Media Audio is an audio data compression technology developed by Microsoft. The name can be used to refer to its audio file format or its audio codecs. It is a proprietary technology that forms part of the Windows Media framework. WMA consists of four distinct codecs...

    1, WMA2 and WMA Pro
  • Windows Media Player
    Windows Media Player
    Windows Media Player is a media player and media library application developed by Microsoft that is used for playing audio, video and viewing images on personal computers running the Microsoft Windows operating system, as well as on Pocket PC and Windows Mobile-based devices...

     related voice codecs: WMA Voice and MS-GSM
  • RealPlayer
    RealPlayer
    RealPlayer is a cross-platform media player by RealNetworks that plays a number of multimedia formats including MP3, MPEG-4, QuickTime, Windows Media, and multiple versions of proprietary RealAudio and RealVideo formats.-History:...

     related video codecs: RealVideo
    RealVideo
    RealVideo is a suite of proprietary video compression formats developed by RealNetworks – the specific format changes with the version. It was first released in 1997 and is at version 10. RealVideo is supported on many platforms, including Windows, Mac, Linux, Solaris, and several mobile...

     1, 2, 3 and 4
  • RealPlayer
    RealPlayer
    RealPlayer is a cross-platform media player by RealNetworks that plays a number of multimedia formats including MP3, MPEG-4, QuickTime, Windows Media, and multiple versions of proprietary RealAudio and RealVideo formats.-History:...

     related audio codecs: RealAudio
    RealAudio
    RealAudio is a proprietary audio format developed by RealNetworks and first released in April 1995. It uses a variety of audio codecs, ranging from low-bitrate formats that can be used over dialup modems, to high-fidelity formats for music. It can also be used as a streaming audio format, that is...

     3, 6, 7, 8, 9 and 10
  • RealPlayer
    RealPlayer
    RealPlayer is a cross-platform media player by RealNetworks that plays a number of multimedia formats including MP3, MPEG-4, QuickTime, Windows Media, and multiple versions of proprietary RealAudio and RealVideo formats.-History:...

     related voice codecs: RealAudio
    RealAudio
    RealAudio is a proprietary audio format developed by RealNetworks and first released in April 1995. It uses a variety of audio codecs, ranging from low-bitrate formats that can be used over dialup modems, to high-fidelity formats for music. It can also be used as a streaming audio format, that is...

     1, 2 (variant of G.728
    G.728
    G.728 is an ITU-T standard for speech coding operating at 16 kbit/s. It is officially described as Coding of speech at 16 kbit/s using low-delay code excited linear prediction....

    ), 4 and 5
  • QuickTime
    QuickTime
    QuickTime is an extensible proprietary multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. The classic version of QuickTime is available for Windows XP and later, as well as Mac OS X Leopard and...

     related video codecs: Cinepak
    Cinepak
    Cinepak is a video codec developed by Peter Barrett at SuperMac Technologies, and released in 1991 with the Video Spigot, and then in 1992 as part of Apple Computer's QuickTime video suite. It was designed to encode 320x240 resolution video at 1x CD-ROM transfer rates. The codec was ported to the...

    , Motion JPEG, ProRes
    ProRes 422
    ProRes 422 is a standard-definition and high-definition lossy video compression format developed by Apple Inc. for use in post production. It was introduced in 2007 with Final Cut Studio 2 and is comparable to Avid's DNxHD codec which has the same purpose and uses similar bit rates...

    , Sorenson 3 Codec, Animation codec
    Animation codec
    The Animation codec is a fast and lossless Quicktime video codec created by Apple Computer to enable playback of RGB video in real time without expensive hardware. It supports color depths from 1 to 32 bits, and is one of the few video codecs that supports an alpha channel...

  • QuickTime
    QuickTime
    QuickTime is an extensible proprietary multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. The classic version of QuickTime is available for Windows XP and later, as well as Mac OS X Leopard and...

     related audio codecs: QDesign
    QDesign
    QDesign is a music codec, originally known as LBpack, by Dmitry Shmunk. QDesign corporation bought the codec and hired the developer to create what would become the official audio compression in Apple Computer's QuickTime v3....

     Music Codec 2 and ALAC
    Apple Lossless
    Apple Lossless Apple Lossless Apple Lossless (also known as ALAC (Apple Lossless Audio Codec), or ALE (Apple Lossless Encoder) is an audio codec developed by Apple Inc. for lossless data compression of digital music. After initially being proprietary for many years, in late 2011 Apple open sourced...

  • Adobe Flash Player
    Adobe Flash Player
    The Adobe Flash Player is software for viewing multimedia, Rich Internet Applications and streaming video and audio, on a computer web browser or on supported mobile devices. Flash Player runs SWF files that can be created by the Adobe Flash authoring tool, by Adobe Flex or by a number of other...

     related video codecs: Screen video, Screen video 2, Sorenson 3 Codec, VP6
    VP6
    On2 TrueMotion VP6 is a proprietary lossy video compression format and video codec. It is an incarnation of the TrueMotion video codec, a series of video codecs developed by On2 Technologies. This codec is commonly used by Adobe Flash, Flash Video, and JavaFX media files.- Overview :The VP6 codec...

     and Flash Video (FLV)
    Sorenson codec
    Sorenson codec may refer to either of three proprietary video codecs: Sorenson Video, Sorenson Video 3 or Sorenson Spark. Sorenson Video is also known as Sorenson Video Codec, Sorenson Video Quantizer or SVQ...

  • Adobe Flash Player
    Adobe Flash Player
    The Adobe Flash Player is software for viewing multimedia, Rich Internet Applications and streaming video and audio, on a computer web browser or on supported mobile devices. Flash Player runs SWF files that can be created by the Adobe Flash authoring tool, by Adobe Flex or by a number of other...

     related audio codecs: Adobe SWF ADPCM and Nellymoser Asao
    Nellymoser Asao Codec
    Asao is a proprietary single-channel codec and compression format optimized for low-bitrate transmission of audio, developed by Nellymoser Inc....

  • Xiph.Org: Theora
    Theora
    Theora is a free lossy video compression format. It is developed by the Xiph.Org Foundation and distributed without licensing fees alongside their other free and open media projects, including the Vorbis audio format and the Ogg container....

    , Speex
    Speex
    Speex is a patent-free audio compression format designed for speech and also a free software speech codec that may be used on VoIP applications and podcasts. It is based on the CELP speech coding algorithm. Speex claims to be free of any patent restrictions and is licensed under the revised BSD...

     (via libspeex), Vorbis
    Vorbis
    Vorbis is a free software / open source project headed by the Xiph.Org Foundation . The project produces an audio format specification and software implementation for lossy audio compression...

     and FLAC
    FLAC
    FLAC is a codec which allows digital audio to be losslessly compressed such that file size is reduced without any information being lost...

  • Sony
    Sony
    , commonly referred to as Sony, is a Japanese multinational conglomerate corporation headquartered in Minato, Tokyo, Japan and the world's fifth largest media conglomerate measured by revenues....

    : ATRAC1 and ATRAC3
  • NTT
    Nippon Telegraph and Telephone
    , commonly known as NTT, is a Japanese telecommunications company headquartered in Tokyo, Japan. Ranked the 31st in Fortune Global 500, NTT is the largest telecommunications company in Asia, and the second-largest in the world in terms of revenue....

    : TwinVQ
    TwinVQ
    TwinVQ is an audio compression technique developed by Nippon Telegraph and Telephone Corporation Human Interface Laboratories in 1994...

  • On2: Duck TrueMotion 1, Duck TrueMotion 2, VP3
    VP3
    On2 TrueMotion VP3 is a lossy video compression format and video codec. It is an incarnation of the TrueMotion video codec, a series of video codecs developed by On2 Technologies....

    , VP5
    VP5
    On2 TrueMotion VP5 is a proprietary lossy video compression format and video codec. It is an incarnation of the TrueMotion video codec, a series of video codecs developed by On2 Technologies.It was announced by On2 Technologies in February 2002...

    , VP6
    VP6
    On2 TrueMotion VP6 is a proprietary lossy video compression format and video codec. It is an incarnation of the TrueMotion video codec, a series of video codecs developed by On2 Technologies. This codec is commonly used by Adobe Flash, Flash Video, and JavaFX media files.- Overview :The VP6 codec...

     and VP8
    VP8
    VP8 is an open video compression format released by Google, originally created by On2 Technologies.After purchasing On2 Technologies in early 2010, Google has provided an irrevocable patent promise for underlying patents for the VP8 format, and released a bitstream format specification under a...

  • RAD Game Tools
    RAD Game Tools
    RAD Game Tools is privately held company owned by Jeff Roberts and Mitch Soule based in Kirkland, Washington that develops video and computer game software technologies which are licensed primarily by video game companies. RAD Game Tools is somewhat unusual among middleware companies as they...

    : Smacker video
    Smacker video
    Smacker video is a video file format developed by RAD Game Tools and has been used in computer games. Smacker video supports 256 colors, and includes transparency support...

     and Bink video
    Bink video
    Bink is a proprietary video file format developed by RAD Game Tools and used primarily in computer games. It has been used in many games for Windows, Mac OS, Xbox 360, Xbox, GameCube, Wii, PlayStation 3, PlayStation 2, Nintendo DS, and Sony PSP...

  • Truespeech
    Truespeech
    Truespeech is a proprietary audio codec produced by the DSP Group. It is designed for encoding voice data at low bitrates, and to be embedded into DSP chips....

  • RenderWare
    RenderWare
    RenderWare is a computer and video game middleware from British games developer Criterion Software.-Overview:RenderWare is a 3D API and graphics rendering engine used in video games, Active Worlds, and some VRML browsers...

    : TXD


The default MPEG-4
MPEG-4
MPEG-4 is a method of defining compression of audio and visual digital data. It was introduced in late 1998 and designated a standard for a group of audio and video coding formats and related technology agreed upon by the ISO/IEC Moving Picture Experts Group under the formal standard ISO/IEC...

 codec used by FFmpeg for encoding has the FourCC
FourCC
A FourCC is a sequence of four bytes used to uniquely identify data formats.The concept originated in the OSType scheme used in the Macintosh system software and was adopted for the Amiga/Electronic Arts Interchange File Format and derivatives...

 of FMP4.

Formats

  • ASF
    Advanced Systems Format
    Advanced Systems Format is Microsoft's proprietary digital audio/digital video container format, especially meant for streaming media...

  • AVI
    Audio Video Interleave
    Audio Video Interleave , known by its acronym AVI, is a multimedia container format introduced by Microsoft in November 1992 as part of its Video for Windows technology. AVI files can contain both audio and video data in a file container that allows synchronous audio-with-video playback...

     and also input from AviSynth
    AviSynth
    AviSynth is a frameserver program for Microsoft Windows developed by Ben Rudiak-Gould, Edwin van Eggelen, Klaus Post, Richard Berg, Ian Brabham and others. It is free software under GNU GPL license.-Scripting video editor:...

  • BFI
  • CAF
    Core Audio Format
    The Core Audio Format is a container for storing audio, developed by Apple Inc.. It is compatible with Mac OS X 10.4 and higher; Mac OS X 10.3 needs QuickTime 7 to be installed....

  • FLV
    FLV
    Flash Video is a container file format used to deliver video over the Internet using Adobe Flash Player versions 6–11. Flash Video content may also be embedded within SWF files. There are two different video file formats known as Flash Video: FLV and F4V. The audio and video data within FLV files...

  • GXF, General eXchange Format, SMPTE 360M
  • IFF
    Interchange File Format
    Interchange File Format , is a generic container file format originally introduced by the Electronic Arts company in 1985 in order to ease transfer of data between software produced by different companies....

  • RL2
    Voyeur (video game)
    Voyeur and Voyeur II were full motion video games released in 1993 and 1996 respectively. The first game was originally released as the "flagship" product for the short lived Philips CD-i multimedia system/video game console...

  • ISO base media file format
    ISO base media file format
    ISO base media file format defines a general structure for time-based multimedia files such as video and audio. It is used as the basis for other media file formats...

     (including QuickTime
    QuickTime File Format
    QuickTime File Format is a computer file format used natively by the QuickTime framework.- Design :The format specifies a multimedia container file that contains one or more tracks, each of which stores a particular type of data: audio, video, effects, or text...

    , 3GP and MP4
    MPEG-4 Part 14
    MPEG-4 Part 14 or MP4 is a multimedia container format standard specified as a part of MPEG-4. It is most commonly used to store digital video and digital audio streams, especially those defined by MPEG, but can also be used to store other data such as subtitles and still images...

    )
  • Matroska
    Matroska
    The Matroska Multimedia Container is an open standard free container format, a file format that can hold an unlimited number of video, audio, picture or subtitle tracks in one file. It is intended to serve as a universal format for storing common multimedia content, like movies or TV shows...

     (including WebM
    WebM
    WebM is an audio-video format designed to provide a royalty-free, open video compression format for use with HTML5 video. The project's development is sponsored by Google....

    )
  • Maxis XA
    SimCity 3000
    SimCity 3000 is a city building simulation personal computer game and the third major installment in the SimCity series. It was published by Electronic Arts and developed by series creator Maxis, a wholly owned subsidiary of EA...

  • MPEG program stream
  • MPEG transport stream (including AVCHD
    AVCHD
    AVCHD is a file-based format for the digital recording and playback of high-definition video....

    )
  • MXF
    MXF
    Material eXchange Format is a container format for professional digital video and audio media defined by a set of SMPTE standards.- A brief summary of MXF :...

    , Material eXchange Format, SMPTE 377M
  • MSN Webcam stream
  • Ogg
    Ogg
    Ogg is a free, open container format maintained by the Xiph.Org Foundation. The creators of the Ogg format state that it is unrestricted by software patents and is designed to provide for efficient streaming and manipulation of high quality digital multimedia.The Ogg container format can multiplex...

  • OMA
  • TXD
  • WTV
    Windows Media Center
    Windows Media Center is a digital video recorder and media player developed by Microsoft. It is an application that allows users to view and record live television, as well as organize and play music and videos...


Protocols

  • IETF standards: TCP
    Transmission Control Protocol
    The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...

    , UDP
    User Datagram Protocol
    The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...

    , Gopher, HTTP, RTP
    Real-time Transport Protocol
    The Real-time Transport Protocol defines a standardized packet format for delivering audio and video over IP networks. RTP is used extensively in communication and entertainment systems that involve streaming media, such as telephony, video teleconference applications, television services and...

    , RTSP
    Real Time Streaming Protocol
    The Real Time Streaming Protocol is a network control protocol designed for use in entertainment and communications systems to control streaming media servers. The protocol is used for establishing and controlling media sessions between end points...

     and SDP
    Session Description Protocol
    The Session Description Protocol is a format for describing streaming media initialization parameters. The IETF published the original specification as an IETF Proposed Standard in April 1998, and subsequently published a revised specification as an IETF Proposed Standard as RFC 4566 in July...

  • Apple related protocols: HTTP Live Streaming
    HTTP Live Streaming
    HTTP Live Streaming is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of their QuickTime X and iPhone software systems. It works by breaking the overall stream into a sequence of small HTTP-based file downloads, each download loading one short chunk of an...

  • RealMedia related protocols: RealMedia RTSP/RDT
  • Adobe related protocols: RTMP
    Real Time Messaging Protocol
    Real Time Messaging Protocol was initially a proprietary protocol developed by Macromedia for streaming audio, video and data over the Internet, between a Flash player and a server...

    , RTMPT (via librtmp), RTMPE (via librtmp), RTMPTE (via librtmp) and RTMPS (via librtmp)
  • Microsoft related protocols: MMS over TCP and MMS over HTTP

Projects using FFmpeg

FFmpeg is used by many open source (and proprietary) projects, including ffmpeg2theora, VLC
VLC media player
VLC media player is a free and open source media player and multimedia framework written by the VideoLAN project.VLC is a portable multimedia player, encoder, and streamer supporting many audio and video codecs and file formats as well as DVDs, VCDs, and various streaming protocols. It is able to...

, MPlayer
MPlayer
MPlayer is a free and open source media player. The program is available for all major operating systems, including Linux and other Unix-like systems, Microsoft Windows and Mac OS X. Versions for OS/2, Syllable, AmigaOS and MorphOS are also available. The Windows version works, with some minor...

, HandBrake
HandBrake
HandBrake is a general-purpose, open-source, cross-platform, multithreaded video transcoder software application. HandBrake was originally developed by titer in 2003 as a general-purpose video transcoder to make ripping a film from a DVD to a data storage device easier...

, Blender
Blender (software)
Blender is a free and open-source 3D computer graphics software product used for creating animated films, visual effects, interactive 3D applications or video games. The current release version is 2.60, and was released on October 19, 2011...

, Google Chrome
Google Chrome
Google Chrome is a web browser developed by Google that uses the WebKit layout engine. It was first released as a beta version for Microsoft Windows on September 2, 2008, and the public stable release was on December 11, 2008. The name is derived from the graphical user interface frame, or...

, and others.

FFmpeg handles the HTML5 Video and Audio media content in the Origyn Web Browser
Origyn Web Browser
Origyn Web Browser is a web browser that is synchronized with WebKit and sponsored by web enabler Pleyo. OWB provides a meta-port to an abstract platform with the aim of making porting to embedded or lightweight systems quicker and easier...

 for MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...

 Operating System.

A number of graphical user interfaces for FFmpeg have been developed, including Avanti, Winff, and the Miro Video Converter.

Multimedia frameworks using FFmpeg

  • DirectShow
    DirectShow
    DirectShow , codename Quartz, is a multimedia framework and API produced by Microsoft for software developers to perform various operations with media files or streams. It is the replacement for Microsoft's earlier Video for Windows technology...

    /VFW
    Video for Windows
    Video for Windows was a multimedia framework developed by Microsoft that allowed Microsoft Windows to play digital video.-Overview:...

    • ffdshow
      Ffdshow
      ffdshow is a media decoder and encoder mainly used for the fast and high-quality decoding of video in the MPEG-4 ASP and AVC formats, but it supports numerous other video and audio formats as well...

       (external project)
  • QuickTime
    QuickTime
    QuickTime is an extensible proprietary multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. The classic version of QuickTime is available for Windows XP and later, as well as Mac OS X Leopard and...

    • Perian
      Perian
      Perian is an open source QuickTime component that enables Apple Inc.’s QuickTime to play several popular video formats not supported natively by QuickTime on Mac OS X...

       (external project)
  • GStreamer
    GStreamer
    GStreamer is a pipeline-based multimedia framework written in the C programming language with the type system based on GObject.GStreamer allows a programmer to create a variety of media-handling components, including simple audio playback, audio and video playback, recording, streaming and editing...

    • GStreamer FFmpeg plug-in (external project)
  • OpenMAX
    OpenMAX
    OpenMAX is a royalty-free, cross-platform set of C-language programming interfaces that provides abstractions for routines especially useful for audio, video, and still images...


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 patent
Software patent
Software patent does not have a universally accepted definition. One definition suggested by the Foundation for a Free Information Infrastructure is that a software patent is a "patent on any performance of a computer realised by means of a computer program".In 2005, the European Patent Office...

s, 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. These terms of use are forbidden in certain countries. For example, some European Union
European Union
The European Union is an economic and political union of 27 independent member states which are located primarily in Europe. The EU traces its origins from the European Coal and Steel Community and the European Economic Community , formed by six countries in 1958...

 nations have not implemented software patents and have laws expressly allowing reverse engineering
Reverse engineering
Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation...

 for purposes of interoperability.

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

See also

  • MPlayer
    MPlayer
    MPlayer is a free and open source media player. The program is available for all major operating systems, including Linux and other Unix-like systems, Microsoft Windows and Mac OS X. Versions for OS/2, Syllable, AmigaOS and MorphOS are also available. The Windows version works, with some minor...

    , the media player that takes much of its source code
    Source code
    In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

     from FFmpeg
  • MEncoder
    MEncoder
    MEncoder is a free command line video decoding, encoding and filtering tool released under the GNU General Public License. It is a close sibling to MPlayer and can convert all the formats that MPlayer understands into a variety of compressed and uncompressed formats using different codecs.MEncoder...

    , the encoder variant of MPlayer, which is similar to FFmpeg
  • MediaCoder
    MediaCoder
    MediaCoder is a transcoding program for Microsoft Windows. It has been developed by Stanley Huang since 2005.MediaCoder uses various open source audio and video codecs, among several proprietary codecs and tools to transcode different audio/video formats and has many extra features...

    , a media transcoding application for Windows OSs, also related to MPlayer
  • Plex (software), a media player for Mac OS that incorporates the source code and codecs
  • VLC media player
    VLC media player
    VLC media player is a free and open source media player and multimedia framework written by the VideoLAN project.VLC is a portable multimedia player, encoder, and streamer supporting many audio and video codecs and file formats as well as DVDs, VCDs, and various streaming protocols. It is able to...

     uses FFmpeg as its codec base, adds other codecs, cross platform
  • RetroCode
    RetroCode
    RetroCode is a universal mobile content converter originally created by Retro Ringtones LLC. RetroCode is able to read and write most common sample based ringtone formats including meta-data.- Overview :...

    , an open source encoder/decoder for proprietary mobile content formats, based in parts on FFmpeg
  • Open source codecs and containers
    Open source codecs and containers
    This is a listing of open-source implementations of media formats—usually called codecs. Many of the codecs listed implement media formats that are restricted by patents and are henceforth not open formats. For example, x264 is a widely used open source implementation of the heavily patent...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK