FFmpeg MPEG-4
   HOME

TheInfoList



OR:

FFmpeg is a
free and open-source software Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
project consisting of a suite of
libraries A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
and programs for handling video, audio, and other
multimedia Multimedia is a form of communication that uses a combination of different content forms, such as Text (literary theory), writing, Sound, audio, images, animations, or video, into a single presentation. T ...
files and streams. At its core is the
command-line A command-line interface (CLI) is a means of interacting with software via commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user-friendly alternativ ...
ffmpeg tool itself, designed for processing video and audio files. It is widely used for format
transcoding Transcoding is the direct digital-to-digital conversion of one encoding to another, such as for video data files, audio files (e.g., MP3, WAV), or character encoding (e.g., UTF-8, ISO/IEC 8859). This is usually done in cases where a target ...
, basic editing (trimming and
concatenation In formal language theory and computer programming, string concatenation is the operation of joining character strings end-to-end. For example, the concatenation of "snow" and "ball" is "snowball". In certain formalizations of concatenati ...
), video scaling, video
post-production Post-production, also known simply as post, is part of the process of filmmaking, video production, audio production, and photography. Post-production includes all stages of production occurring after principal photography or recording indivi ...
effects, and standards compliance (
SMPTE The Society of Motion Picture and Television Engineers (SMPTE) (, rarely ), founded by Charles Francis Jenkins in 1916 as the Society of Motion Picture Engineers or SMPE, is a global professional association of engineers, technologists, and e ...
,
ITU The International Telecommunication Union (ITU)In the other common languages of the ITU: * * is a specialized agency of the United Nations responsible for many matters related to information and communication technologies. It was established ...
). FFmpeg also includes other tools: ffplay, a simple media player, and ffprobe, a command-line tool to display media information. Among included libraries are
libavcodec libavcodec is a free and open-source library of codecs for encoding and decoding video and audio data. libavcodec is an integral part of many open-source multimedia applications and frameworks. The popular MPV, xine and VLC media players use ...
, an audio/video
codec A codec is a computer hardware or software component that encodes or decodes a data stream or signal. ''Codec'' is a portmanteau of coder/decoder. In electronic communications, an endec is a device that acts as both an encoder and a decoder o ...
library used by many commercial and free software products, libavformat (Lavf), an audio/video
container A container is any receptacle or enclosure for holding a product used in storage, packaging, and transportation, including shipping. Things kept inside of a container are protected on several sides by being inside of its structure. The term ...
mux and demux library, and libavfilter, a library for enhancing and editing filters through a
GStreamer GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
-like filtergraph. FFmpeg is part of the workflow of many other software projects, and its libraries are a core part of software media players such as VLC, and has been included in core processing for
YouTube YouTube is an American social media and online video sharing platform owned by Google. YouTube was founded on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim who were three former employees of PayPal. Headquartered in ...
and
Bilibili Bilibili (stylized in all lowercase), nicknamed B Site, is a Chinese online video sharing website based in Shanghai where users can submit, view, and add overlaid commentary on videos. Bilibili hosts videos on various themes, including ...
. Encoders and decoders for many audio and video file formats are included, making it highly useful for the transcoding of common and uncommon media files. FFmpeg is published under the LGPL-2.1-or-later or GPL-2.0-or-later, depending on which options are enabled.


History

The project was started by
Fabrice Bellard Fabrice Bellard (; born 1972) is a French computer programmer known for writing FFmpeg, QEMU, and the Tiny C Compiler. He developed Bellard's formula for calculating single digits of pi. In 2012, Bellard co-founded Amarisoft, a telecommunica ...
(using the
pseudonym A pseudonym (; ) or alias () is a fictitious name that a person assumes for a particular purpose, which differs from their original or true meaning ( orthonym). This also differs from a new name that entirely or legally replaces an individual's o ...
"Gérard Lantau") in 2000, and was led by Michael Niedermayer from 2004 until 2015. Some FFmpeg developers were also part of the
MPlayer MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
project. The "FF" in FFmpeg stands for "fast forward" The logo represents a
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. In geometry, this pattern is described as a ...
scan pattern that shows how MPEG video codecs handle
entropy encoding In information theory, an entropy coding (or entropy encoding) is any lossless data compression method that attempts to approach the lower bound declared by Shannon's source coding theorem, which states that any lossless data compression method ...
. On March 13, 2011, a group of FFmpeg developers decided to
fork In cutlery or kitchenware, a fork (from 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods either to h ...
the project under the name Libav. The group decided to fork the project due to a disagreement with the leadership of FFmpeg. Despite an initial push in Debian and derived distributions, Libav was considered inferior to FFmpeg in both technical merit and popularity, prompting Debian and Gentoo to switch back to FFmpeg in 2015. Libav was declared abandoned in 2020. On January 10, 2014, two Google employees announced that over 1000 bugs had been fixed in FFmpeg during the previous two years by means of
fuzz testing In programming and software development, fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptio ...
. In January 2018, the ''ffserver'' command-line program – a long-time component of FFmpeg – was removed. The developers had previously deprecated the program citing high maintenance efforts due to its use of internal
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
s. The project publishes a new release every three months on average. While release versions are available from the website for download, FFmpeg developers recommend that users compile the software from source using the latest build from their
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
, using the
Git Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively. Design goals of Git include speed, data integrity, and suppor ...
version control system Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code ...
.


Codec history

Two
video coding format A video coding format (or sometimes video compression format) is a content representation format of digital video content, such as in a data file or bitstream. It typically uses a standardized video compression algorithm, most commonly based on ...
s with corresponding codecs and one
container format A container format (informally, sometimes called a wrapper) or metafile is a file format that allows multiple data streams to be embedded into a single file, usually along with metadata for identifying and further detailing those streams. Nota ...
have been created within the FFmpeg project so far. The two video codecs are the lossless FFV1, and the lossless and lossy Snow codec. Development of Snow has stalled, while its bit-stream format has not been finalized yet, making it experimental since 2011. The multimedia container format called NUT is no longer being actively developed, but still maintained. In summer 2010, FFmpeg developers Fiona Glaser, Ronald Bultje, and David Conrad, announced the ffvp8 decoder. Through testing, they determined that ffvp8 was faster than Google's own
libvpx libvpx is a free software video codec library from Google and the Alliance for Open Media (AOMedia). It serves as the reference software implementation for the VP8 and VP9 video coding formats, and for AV1 a special fork named libaom that ...
decoder. Starting with version 0.6, FFmpeg also supported
WebM WebM is an audiovisual media file format. It is primarily intended to offer a royalty-free alternative to use in the HTML video and the HTML audio elements. It has a sister project, WebP, for images. The development of the format is sponsored by ...
and
VP8 VP8 is an open format, open and royalty-free Video coding format, video compression format released by On2 Technologies in 2008. Initially released as a Proprietary software, proprietary successor to On2's previous VP7 format, VP8 was released a ...
. In October 2013, a native VP9 decoder and OpenHEVC, an open source
High Efficiency Video Coding High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2, is a video compression standard designed as part of the MPEG-H project as a successor to the widely used Advanced Video Coding (AVC, H.264, or MPEG-4 Part 10). In compa ...
(HEVC) decoder, were added to FFmpeg. In 2016 the native
AAC AAC may refer to: Aviation * Advanced Aircraft, a company from Carlsbad, California * Airborne aircraft carrier, a type of aircraft * Alaskan Air Command, a radar network * American Aeronautical Corporation, a company from Port Washington, New ...
encoder was considered stable, removing support for the two external AAC encoders from
VisualOn __NOTOC__ Nero AAC Codec is a set of software tools for codec, encoding and decoding Advanced Audio Coding (AAC) format audio, and editing MPEG-4 metadata. It was developed and distributed by Nero AG, and is available at no cost for Windows and ...
and
FAAC FAAC (Freeware Advanced Audio Coder) is a software project which includes the Advanced Audio Coding, AAC data compression, encoder FAAC and Audio decoder, decoder FAAD2. It supports MPEG-2 AAC as well as MPEG-4 AAC. It supports several MPEG-4 Au ...
. FFmpeg 3.0 (nicknamed ''"Einstein"'') retained build support for the
Fraunhofer FDK AAC Fraunhofer FDK AAC is an open-source library for encoding and decoding digital audio in the Advanced Audio Coding (AAC) format. Fraunhofer IIS developed this library for Android 4.1. It supports several Audio Object Types including MPEG-2 an ...
encoder. Since version 3.4 ''"Cantor"'' FFmpeg supported the
FITS Flexible Image Transport System (FITS) is an open standard defining a digital file format used for storage, transmission and processing of data: formatted as multi-dimensional arrays (for example a 2D image), or tables. FITS is the most commonl ...
image format. Since November 2018 in version 4.1 ''"al-Khwarizmi"''
AV1 AOMedia Video 1 (AV1) is an open, royalty-free video coding format initially designed for video transmissions over the Internet. It was developed as a successor to VP9 by the Alliance for Open Media (AOMedia), a consortium founded in 2015 tha ...
can be muxed in MP4 and
Matroska Matroska (styled Matroška) is a project to create a container format that can hold an unlimited number of video, audio, picture, or subtitle tracks in one file. The Matroska Multimedia Container is similar in concept to other containers like ...
, including
WebM WebM is an audiovisual media file format. It is primarily intended to offer a royalty-free alternative to use in the HTML video and the HTML audio elements. It has a sister project, WebP, for images. The development of the format is sponsored by ...
.


Components


Command-line tools

* ''ffmpeg'' is a command-line tool that converts audio or video formats. It can also capture and encode in real-time from various hardware and software sources such as a TV capture card. * ''ffplay'' is a simple media player utilizing SDL and the FFmpeg libraries. * ''ffprobe'' is a command-line tool to display media information (text, CSV,
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
,
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
), see also
MediaInfo MediaInfo is a free software, free, cross-platform and open-source software, open-source program that displays technical information about media files, as well as tag information for many audio and video files. It is used in many programs such as ...
.


Libraries

* ''libswresample'' is a library containing audio resampling routines. * ''libavresample'' is a library containing audio resampling routines from the Libav project, similar to ''libswresample'' from ''ffmpeg''. * ''
libavcodec libavcodec is a free and open-source library of codecs for encoding and decoding video and audio data. libavcodec is an integral part of many open-source multimedia applications and frameworks. The popular MPV, xine and VLC media players use ...
'' is a library containing all of the native FFmpeg audio/video encoders and decoders. Most codecs were developed from scratch to ensure best performance and high code reusability. * ''libavformat'' (Lavf) 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 hash functions, ciphers, LZO decompressor and
Base64 In computer programming, Base64 is a group of binary-to-text encoding schemes that transforms binary data into a sequence of printable characters, limited to a set of 64 unique characters. More specifically, the source binary data is taken 6 bits ...
encoder/decoder. * ''libpostproc'' is a library containing older
H.263 H.263 is a video compression standard originally designed as a low-bit-rate compressed format for videotelephony. It was standardized by the ITU-T Video Coding Experts Group (VCEG) in a project ending in 1995/1996. It is a member of the H.26x fa ...
based video postprocessing routines. * ''libswscale'' is a library containing video
image scaling In computer graphics and digital imaging, image scaling refers to the resizing of a digital image. In video technology, the magnification of digital material is known as upscaling or resolution enhancement. When scaling a vector graphic image ...
and
colorspace A color space is a specific organization of colors. In combination with color profiling supported by various physical devices, it supports reproducible representations of colorwhether such representation entails an analog or a digital represen ...
/pixelformat conversion routines. * ''libavfilter'' is the substitute for vhook which allows the video/audio to be modified or examined (for debugging) between the decoder and the encoder. Filters have been ported from many projects including
MPlayer MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
and
avisynth AviSynth is a frameserver program for Microsoft Windows, Linux and macOS initially developed by Ben Rudiak-Gould, Edwin van Eggelen, Klaus Post, Richard Berg and Ian Brabham in May 2000 and later picked up and maintained by the open source commu ...
. * ''libavdevice'' is a library containing audio/video io through internal and external devices.


Supported hardware


CPUs

FFmpeg encompasses software implementations of video and audio compressing and decompressing algorithms. These can be compiled and run on many different instruction sets, including
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
(
IA-32 IA-32 (short for "Intel Architecture, 32-bit", commonly called ''i386'') is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the i386, 80386 microprocessor in 1985. IA-32 is the first incarn ...
and
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
), PPC (
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
),
ARM In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between ...
,
DEC Alpha Alpha (original name Alpha AXP) is a 64-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC). Alpha was designed to replace 32-bit VAX complex instruction set computers ( ...
, SPARC, and MIPS.


Special purpose hardware

There are a variety of application-specific integrated circuits (ASICs) for audio/video compression and decompression. These ASICs can partially or completely offload the computation from the host CPU. Instead of a complete implementation of an algorithm, only the
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
is required to use such an ASIC. The following APIs are also supported:
DirectX Video Acceleration DirectX Video Acceleration (DXVA) is a Microsoft API specification for the Microsoft Windows and Xbox 360 platforms that allows video decoding to be hardware-accelerated. The pipeline allows certain CPU-intensive operations such as iDCT, motio ...
(DXVA2, Windows),
Direct3D 11 Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware a ...
(D3D11VA, Windows),
Media Foundation Media Foundation (MF) is a COM-based multimedia framework pipeline and infrastructure platform for digital media in Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, and Windows 11. It is the intended replacement for Microsoft Direc ...
(Windows),
Vulkan Vulkan is a cross-platform API and open standard for 3D graphics and computing. It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and o ...
(VKVA), VideoToolbox (iOS, iPadOS, macOS), RockChip MPP,
OpenCL OpenCL (Open Computing Language) is a software framework, framework for writing programs that execute across heterogeneous computing, heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), di ...
, OpenMAX, MMAL (Raspberry Pi), MediaCodec (
Android OS Android is an operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen-based mobile devices such as smartphones and tablets. Android has historically been developed b ...
), V4L2 (Linux). Depending on the environment, these APIs may lead to specific ASICs, to
GPGPU General-purpose computing on graphics processing units (GPGPU, or less often GPGP) is the use of a graphics processing unit (GPU), which typically handles computation only for computer graphics, to perform computation in applications traditiona ...
routines, or to
SIMD Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
CPU code.


Supported codecs and formats


Image formats

FFmpeg supports many common and some uncommon image formats. The PGMYUV image format is a homebrew variant of the binary (P5) PGM
Netpbm format Netpbm (formerly Pbmplus) is an open-source software, open-source package of graphics programs and a programming library. It is used primarily in Unix, where it is found in all major open-source operating system distributions, but also works on M ...
. FFmpeg also supports 16-bit depths of the PGM and PPM formats, and the binary (P7) PAM format with or without alpha channel, depth 8 bit or 16 bit for pix_fmts ''monob, gray, gray16be, rgb24, rgb48be, ya8, rgba, rgb64be''.


Supported formats

In addition to FFV1 and Snow formats, which were created and developed from within FFmpeg, the project also supports the following formats:


Muxers

Output formats (container formats and other ways of creating output streams) in FFmpeg are called "muxers". FFmpeg supports, among others, the following: *
AIFF AIFF may refer to: * Audio Interchange File Format * All India Football Federation, the national governing body of Association football in India Film festivals * Addis International Film Festival, Addis Ababa, Ethiopia * Alexandria Internation ...
* ASF *
AVI Avi is a given name, usually masculine, often a diminutive of Avram (given name), Avram, Avraham, etc. It is sometimes feminine and a diminutive of the Hebrew spelling of Abigail (name), Abigail. People with the given name include: * Avi (author ...
and also input from
AviSynth AviSynth is a frameserver program for Microsoft Windows, Linux and macOS initially developed by Ben Rudiak-Gould, Edwin van Eggelen, Klaus Post, Richard Berg and Ian Brabham in May 2000 and later picked up and maintained by the open source commu ...
* BFI * CAF * FLV *
GIF The Graphics Interchange Format (GIF; or , ) is a Raster graphics, bitmap Image file formats, image format that was developed by a team at the online services provider CompuServe led by American computer scientist Steve Wilhite and released ...
* GXF, General eXchange Format, SMPTE 360M * HLS, HTTP Live Streaming *
IFF In logic and related fields such as mathematics and philosophy, "if and only if" (often shortened as "iff") is paraphrased by the biconditional, a logical connective between statements. The biconditional is true in two cases, where either both ...
*
ISO base media file format The ISO base media file format (ISOBMFF) is a container file format that defines a general structure for files that contain time-based multimedia data such as video and audio. It is standardized in ISO/ IEC 14496-12, a.k.a. MPEG-4 Part 12, and w ...
(including
QuickTime QuickTime (or QuickTime Player) is an extensible multimedia architecture created by Apple, which supports playing, streaming, encoding, and transcoding a variety of digital media formats. The term ''QuickTime'' also refers to the QuickTime Pla ...
,
3GP 3GP (3GPP file format) is a digital multimedia container format defined by the Third Generation Partnership Project (3GPP) for 3G UMTS multimedia services, largely based on MPEG-4 Part 12. A 3GP container may consist of H.263 or H.264 video ...
and MP4) *
Matroska Matroska (styled Matroška) is a project to create a container format that can hold an unlimited number of video, audio, picture, or subtitle tracks in one file. The Matroska Multimedia Container is similar in concept to other containers like ...
(including
WebM WebM is an audiovisual media file format. It is primarily intended to offer a royalty-free alternative to use in the HTML video and the HTML audio elements. It has a sister project, WebP, for images. The development of the format is sponsored by ...
) * Maxis XA *
MPEG-DASH Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers. Similar to Appl ...
*
MPEG program stream Program stream (PS or MPEG-PS) is a container format (digital), container format for multiplexing digital audio, video and more. The PS format is specified in MPEG-1 Part 1 (ISO/IEC 11172-1) and MPEG-2 Part 1, Systems (ISO/IEC standard 13818-1/ITU ...
*
MPEG transport stream MPEG transport stream (MPEG-TS, MTS) or simply transport stream (TS) is a standard digital container format for transmission and storage of audio, video, and Program and System Information Protocol (PSIP) data. It is used in broadcast syst ...
(including
AVCHD AVCHD (Advanced Video Coding High Definition) is a file-based format for the digital recording and playback of high-definition video. It is H.264 and Dolby AC-3 packaged into the MPEG transport stream, with a set of constraints designed around cam ...
) * MXF, Material eXchange Format, SMPTE 377M * MSN Webcam stream * NUT *
Ogg Ogg is a digital multimedia container format designed to provide for efficient streaming and manipulation of digital multimedia. It is maintained by the Xiph.Org Foundation and is free and open, unrestricted by software patents. Its name is ...
* OMA * RL2 * Segment, for creating segmented video streams * Smooth Streaming * TXD * WTV


Pixel formats

FFmpeg does not support IMC1-IMC4, AI44, CYMK, RGBE, Log RGB and other formats. It also does not yet support ARGB 1:5:5:5, 2:10:10:10, or other BMP bitfield formats that are not commonly used.


Supported protocols


Open standards

*IETF RFCs: **
FTP The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and dat ...
**
Gopher Pocket gophers, commonly referred to simply as gophers, are burrowing rodents of the family Geomyidae. The roughly 41 speciesSearch results for "Geomyidae" on thASM Mammal Diversity Database are all endemic to North and Central America. They ar ...
** HLS **
HTTP HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
**
HTTPS Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP). It uses encryption for secure communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protoc ...
** RTP **
RTSP The Real-Time Streaming Protocol (RTSP) is an application-level network protocol designed for multiplexing and packetizing multimedia transport streams (such as interactive media, video and audio) over a suitable transport protocol. RTSP is ...
**
SCTP The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol in the transport layer of the Internet protocol suite. Originally intended for Signaling System 7 (SS7) message transport in telecommunication, the ...
** SDP ** SRTP ** TCP ** TLS ** UDP ** UDP-Lite * IETF I-Ds: ** SFTP (via libssh) * Microsoft OSP: ** CIFS/SMB (via libsmbclient) ** MMS over TCP (MS-MMSP) **MMS over HTTP (MS-WMSP) *
CENELEC CENELEC (; ) is responsible for European standardization in the area of electrical engineering. Together with ETSI (telecommunications) and CEN (other technical areas), it forms the European system for technical standardization. Standards harmon ...
** SAT>IP *
OASIS In ecology, an oasis (; : oases ) is a fertile area of a desert or semi-desert environmentAMQP The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for message-oriented middleware. The defining features of AMQP are message orientation, queuing, routing (including point-to-point and publish-and-subs ...
0-9-1 (via librabbitmq) * SRT Alliance standard: ** SRT (via libsrt)


De facto standard A ''de facto'' standard is a custom or convention that is commonly used even though its use is not required. is a Latin phrase (literally " of fact"), here meaning "in practice but not necessarily ordained by law" or "in practice or actuality, ...
s

* RTSP over TLS *
Icecast Icecast is a streaming media project released as free software maintained by the Xiph.Org Foundation. It also refers specifically to the Server (computing), server program which is part of the project. Icecast was created in December 1998/Janua ...
protocol * Adobe
RTMP RTMP may refer to: * Real-Time Messaging Protocol, a multimedia streaming and remote procedure call protocol primarily used in Adobe Flash * Routing Table Maintenance Protocol, part of the AppleTalk network stack * Royal Tyrrell Museum of Palaeon ...
, RTMPT, RTMPE, RTMPTE and RTMPS * RealMedia RTSP/ RDT *
ZeroMQ ZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is an asynchronous messaging library, aimed at use in distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ZeroMQ system can run without a dedicated ...
(via libzmq) * RIST (librist)


Supported filters

FFmpeg supports, among others, the following filters.


Audio

* Resampling (aresample) * Pass/Stop filters **
Low-pass filter A low-pass filter is a filter that passes signals with a frequency lower than a selected cutoff frequency and attenuates signals with frequencies higher than the cutoff frequency. The exact frequency response of the filter depends on the filt ...
(lowpass) **
High-pass filter A high-pass filter (HPF) is an electronic filter that passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. The amount of attenuation for each frequency ...
(highpass) **
All-pass filter An all-pass filter is a signal processing filter that passes all frequencies equally in gain, but changes the phase relationship among various frequencies. Most types of filter reduce the amplitude (i.e. the magnitude) of the signal applied to it ...
(allpass) ** Butterworth
Band-pass filter A band-pass filter or bandpass filter (BPF) is a device that passes frequencies within a certain range and rejects ( attenuates) frequencies outside that range. It is the inverse of a '' band-stop filter''. Description In electronics and s ...
(bandpass) ** Butterworth
Band-stop filter In signal processing, a band-stop filter or band-rejection filter is a filter that passes most frequencies unaltered, but attenuates those in a specific range to very low levels. It is the inverse of a ''band-pass filter''. A notch filter is ...
(bandreject) * Arbitrary Finite Impulse Response Filter (afir) * Arbitrary Infinite Impulse Response Filter (aiir) * Equalizer ** Peak Equalizer (equalizer) ** Butterworth/ Chebyshev Type I/Type II Multiband Equalizer (anequalizer) ** Low Shelving filter (bass) ** High Shelving filter (treble) ** Xbox 360 equalizer ** FIR equalizer (firequalizer) ** Biquad filter (biquad) * Remove/Add
DC offset In signal processing, when describing a periodic function in the time domain, the DC bias, DC component, DC offset, or DC coefficient is the mean value of the waveform. A waveform with zero mean or no DC bias is known as a ''DC balanced'' or ''DC ...
(dcshift) *
Expression evaluation In mathematics, an expression is a written arrangement of symbols following the context-dependent, syntactic conventions of mathematical notation. Symbols can denote numbers, variables, operations, and functions. Other symbols include punctua ...
**
Time domain In mathematics and signal processing, the time domain is a representation of how a signal, function, or data set varies with time. It is used for the analysis of mathematical functions, physical signals or time series of economic or environmental ...
expression evaluation (aeval) **
Frequency domain In mathematics, physics, electronics, control systems engineering, and statistics, the frequency domain refers to the analysis of mathematical functions or signals with respect to frequency (and possibly phase), rather than time, as in time ser ...
expression evaluation (afftfilt) * Dynamics **
Limiter In electronics, a limiter is a circuit that allows signals below a specified input power or level to pass unaffected while attenuating (lowering) the peaks of stronger signals that exceed this threshold. Limiting is a type of dynamic range co ...
(alimiter) **
Compressor A compressor is a mechanical device that increases the pressure of a gas by reducing its volume. An air compressor is a specific type of gas compressor. Many compressors can be staged, that is, the gas is compressed several times in steps o ...
(acompressor) ** Dynamic range expander () ** Side-chain Compressor (sidechaincompress) **
Compander In telecommunications and signal processing, companding (occasionally called compansion) is a method of mitigating the detrimental effects of a channel with limited dynamic range. The name is a portmanteau of the words compressing and expandi ...
(compand) **
Noise gate A noise gate or simply gate is an electronic device or software that is used to control the amplitude, volume of an audio signal. Comparable to a limiter, which attenuates signals ''above'' a threshold, such as loud attacks from the start of mu ...
(agate) ** Side-chain Noise gate(sidechaingate) * Distortion ** Bitcrusher (acrusher) * Emphasis (aemphasis) * Amplify/Normalizer ** Volume (volume) ** Dynamic Audio Normalizer (dynaudnorm) **
EBU R 128 EBU R 128 is a recommendation for loudness normalisation and maximum level of audio signals. It is primarily followed during audio mixing of television and radio programmes and adopted by broadcasters to measure and control programme loudness. ...
loudness normalizer (loudnorm) * Modulation ** Sinusoidal Amplitude Modulation (tremolo) ** Sinusoidal Phase Modulation (vibrato) ** Phaser (aphaser) **
Chorus Chorus may refer to: Music * Chorus (song), the part of a song that is repeated several times, usually after each verse * Chorus effect, the perception of similar sounds from multiple sources as a single, richer sound * Chorus form, song in whic ...
(chorus) **
Flanger Flanging is an audio effect produced by mixing two identical signals together, one signal delayed by a small and (usually) gradually changing period, usually smaller than 20 milliseconds. This produces a swept comb filter effect: peaks and ...
(flanger) ** Pulsator (apulsator) * Echo/Reverb **
Echo In audio signal processing and acoustics, an echo is a reflection of sound that arrives at the listener with a delay after the direct sound. The delay is directly proportional to the distance of the reflecting surface from the source and the lis ...
(aecho) * Routing/
Panning Pan or PAN may refer to: Food * Pan (cooking), a piece of cooking equipment * Harina P.A.N., a pre-cooked corn meal * Pan or Paan, a North Indian term for betel Prefix * ''Pan-'', a prefix meaning "all", "of everything", or "involving all ...
** Stereo widening (stereowiden) ** Increase channel differences (extrastereo) ** M/S to L/R (stereotools) ** Channel mapping (channelmap) ** Channel splitting (channelsplit) ** Channel panning (pan) ** Channel merging (amerge) ** Channel joining (join) ** for
Headphones Headphones are a pair of small loudspeaker drivers worn on or around the head over a user's ears. They are electroacoustic transducers, which convert an electrical signal to a corresponding sound. Headphones let a single user listen to an ...
*** Stereo to Binaural (earwax, ported from SoX) *** Bauer Stereo to Binaural (bs2b, via libbs2b) ***
Crossfeed Crossfeed is the process of blending the left and right channels of a stereo audio recording. It is generally used to reduce the extreme channel separation often featured in early stereo recordings (e.g., where instruments are panned entirely on on ...
(crossfeed) *** Multi-channel to Binaural (sofalizer, requires libnetcdf) ** Delay *** Delay (adelay) *** Delay by distance (compensationdelay) * Fade ** Fader (afade) **
Crossfader In audio engineering, a fade is a gradual increase or decrease in the level of an audio signal. The term can also be used for film cinematography or theatre lighting in much the same way (see fade (filmmaking) and fade (lighting)). In sou ...
(acrossfade) *
Audio time stretching and pitch scaling Time stretching is the process of changing the speed or duration of an audio signal without affecting its pitch. Pitch scaling is the opposite: the process of changing the pitch without affecting the speed. Pitch shift is pitch scaling implement ...
** Time stretching (atempo) ** Time-stretching and Pitch-shifting (rubberband, via librubberband) * Editing ** Trim (atrim) ** Silence-padding (apad) ** Silence remover (silenceremove) * Show frame/channel information ** Show frame information (ashowinfo) ** Show channel information (astats) ** Show silence ranges (silencedetect) ** Show audio volumes (volumedetect) **
ReplayGain ReplayGain is a proposed technical standard published by David Robinson in 2001 to measure and normalize the perceived loudness of audio in computer audio formats such as MP3 and Ogg Vorbis. It allows media players to normalize loudness for in ...
scanner (replaygain) * Modify frame/channel information ** Set output format (aformat) ** Set number of sample (asetnsamples) ** Set sampling rate (asetrate) * Mixer (amix) *
Synchronization Synchronization is the coordination of events to operate a system in unison. For example, the Conductor (music), conductor of an orchestra keeps the orchestra synchronized or ''in time''. Systems that operate with all parts in synchrony are sa ...
(asyncts) *
HDCD High Definition Compatible Digital (HDCD) is a proprietary audio encode-decode process that claims to provide increased dynamic range over that of standard Compact Disc Digital Audio, while retaining backward compatibility with existing compact ...
data decoder (hdcd) * Plugins **
LADSPA The Linux Audio Developer's Simple Plugin API (LADSPA) is an application programming interface (API) standard for handling audio filters and audio signal processing effects, licensed under LGPL-2.1-or-later. Originally designed through consensus ...
(ladspa) ** LV2 (lv2) * Do nothing ()


Video

* Transformations ** Cropping (crop, cropdetect) **
Fading In wireless communications, fading is the variation of signal attenuation over variables like time, geographical position, and radio frequency. Fading is often modeled as a random process. In wireless systems, fading may either be due to mul ...
(fade) **
Scaling Scaling may refer to: Science and technology Mathematics and physics * Scaling (geometry), a linear transformation that enlarges or diminishes objects * Scale invariance, a feature of objects or laws that do not change if scales of length, energ ...
(scale) ** Padding (pad) ** Rotation (rotate) ** Transposition (transpose) ** Others: *** Lens correction (lenscorrection) ***
OpenCV OpenCV (Open Source Computer Vision Library) is a Library (computing), library of programming functions mainly for Real-time computing, real-time computer vision. Originally developed by Intel, it was later supported by Willow Garage, then Itseez ...
filtering (ocv) *** Perspective correction (perspective) * Temporal editing **
Framerate Frame rate, most commonly expressed in frame/s, or FPS, is typically the frequency (rate) at which consecutive images (frames) are captured or displayed. This definition applies to film and video cameras, computer animation, and motion capture s ...
(fps, framerate) ** Looping (loop) ** Trimming (trim) *
Deinterlacing Deinterlacing is the process of converting interlaced video into a non-interlaced or Progressive scan, progressive form. Interlaced video signals are commonly found in analog television, VHS, Laserdisc, digital television (HDTV) when in the 1080 ...
(bwdif, idet, kerndeint, nnedi, yadif, w3fdif) *
Inverse Telecine Telecine ( or ), or TK, is the process of transferring film into video and is performed in a color suite. The term is also used to refer to the equipment used in this post-production process. Telecine enables a motion picture, captured origi ...
* Filtering ** Blurring (boxblur, gblur, avgblur, sab, smartblur) **
Convolution In mathematics (in particular, functional analysis), convolution is a operation (mathematics), mathematical operation on two function (mathematics), functions f and g that produces a third function f*g, as the integral of the product of the two ...
filters *** Convolution (convolution) ***
Edge detection Edge or EDGE may refer to: Technology Computing * Edge computing, a network load-balancing system * Edge device, an entry point to a computer network * Adobe Edge, a graphical development application * Microsoft Edge, a web browser developed b ...
(edgedetect) *** Sobel Filter (sobel) *** Prewitt Filter (prewitt) ***
Unsharp masking Unsharp masking (USM) is an image sharpening technique, first implemented in darkroom photography, but now commonly used in digital image processing software. Its name derives from the fact that the technique uses a blurred, or "unsharp", negat ...
(unsharp) *
Denoising Noise reduction is the process of removing noise from a signal. Noise reduction techniques exist for audio and images. Noise reduction algorithms may distort the signal to some degree. Noise rejection is the ability of a circuit to isolate an u ...
(atadenoise, bitplanenoise, dctdnoiz, owdenoise, removegrain) * Logo removal (delogo, removelogo) *
Subtitles Subtitles are texts representing the contents of the audio in a film, television show, opera or other audiovisual media. Subtitles might provide a transcription or translation of spoken dialogue. Although naming conventions can vary, caption ...
(
ASS Ass most commonly refers to: * Buttocks (in informal American English) * Donkey or ass, ''Equus africanus asinus'' **any other member of the subgenus ''Asinus'' Ass or ASS may also refer to: Art and entertainment * Ass (album), ''Ass'' (albu ...
, subtitles) *
Alpha Alpha (uppercase , lowercase ) is the first letter of the Greek alphabet. In the system of Greek numerals, it has a value of one. Alpha is derived from the Phoenician letter ''aleph'' , whose name comes from the West Semitic word for ' ...
channel editing (alphaextract, alphamerge) * Keying (chromakey, colorkey, lumakey) * Frame detection ** Black frame detection (blackdetect, blackframe) ** Thumbnail selection (thumbnail) * Frame Blending (blend, tblend, overlay) *
Video stabilization Image stabilization (IS) is a family of techniques that reduce blurring associated with the motion of a camera or other imaging device during exposure. Generally, it compensates for pan and tilt (angular movement, equivalent to yaw and pi ...
(vidstabdetect, vidstabtransform) * Color and Level adjustments **
Balance Balance may refer to: Common meanings * Balance (ability) in biomechanics * Balance (accounting) * Balance or weighing scale * Balance, as in equality (mathematics) or equilibrium Arts and entertainment Film * Balance (1983 film), ''Balance'' ( ...
and levels (colorbalance, colorlevels) ** Channel mixing (colorchannelmixer) **
Color space A color space is a specific organization of colors. In combination with color profiling supported by various physical devices, it supports reproducible representations of colorwhether such representation entails an analog or a digital represe ...
(colorspace) ** Parametric adjustments (curves, eq) * Histograms and visualization ** CIE Scope (ciescope) **
Vectorscope A vectorscope is a special type of oscilloscope used in both audio and video applications. Whereas an oscilloscope or waveform monitor normally displays a plot of signal vs. time, a vectorscope displays an X-Y plot of two signals, which can ...
(vectorscope) **
Waveform monitor A waveform monitor is a special type of oscilloscope used in television production applications. It is typically used to measure and display the level, or voltage, of a video signal with respect to time. The level of a video signal usually corre ...
(waveform) **
Color histogram In image processing and photography, a color histogram is a representation of the distribution of colors in an image. For digital images, a color histogram represents the number of pixels that have colors in each of a fixed list of color ranges t ...
(histogram) * Drawing * OCR * Quality measures **
SSIM The structural similarity index measure (SSIM) is a method for predicting the perceived quality of digital television and cinematic pictures, as well as other kinds of digital images and videos. It is also used for measuring the similarity betwe ...
(ssim) **
PSNR Peak signal-to-noise ratio (PSNR) is an engineering term for the ratio between the maximum possible power of a signal and the power of corrupting noise that affects the fidelity of its representation. Because many signals have a very wide dynamic ...
(psnr) * Lookup Tables ** lut, lutrgb, lutyuv, lut2, lut3d, haldclut


Supported test patterns

*
SMPTE color bars SMPTE color bars are a television test pattern used where the NTSC, NTSC video standard is utilized, including countries in North America. The Society of Motion Picture and Television Engineers (SMPTE) refers to the pattern as Engineering Guide ...
(smptebars and smptehdbars) *
EBU color bars The European Broadcasting Union, EBU colour bars are a television test card used to check if a video signal has been altered by recording or transmission, and what adjustments must be made to bring it back to specification. It is also used ...
(pal75bars and pal100bars)


Supported LUT formats

* cineSpace LUT format * Iridas Cube *
Adobe After Effects Adobe After Effects is a digital visual effects, motion graphics, and compositing application developed by Adobe Inc.; it is used for animation and in the post-production process of film making, video games and television production. Amo ...
3dl *
DaVinci Resolve DaVinci Resolve is a proprietary color grading, color correction, visual effects, and audio post-production video editing application for macOS, Windows, and Linux, developed by Australian company Blackmagic Design. It was originally deve ...
dat *
Pandora In Greek mythology, Pandora was the first human woman created by Hephaestus on the instructions of Zeus. As Hesiod related it, each god cooperated by giving her unique gifts. Her other name—inscribed against her figure on a white-ground '' ky ...
m3d


Supported media and interfaces

FFmpeg supports the following devices via external libraries.


Media

*
Compact disc The compact disc (CD) is a Digital media, digital optical disc data storage format co-developed by Philips and Sony to store and play digital audio recordings. It employs the Compact Disc Digital Audio (CD-DA) standard and was capable of hol ...
(via libcdio; input only)


Physical interfaces

*
IEEE 1394 IEEE 1394 is an interface standard for a serial bus for high-speed communications and isochronous real-time data transfer. It was developed in the late 1980s and early 1990s by Apple in cooperation with a number of companies, primarily Sony a ...
(a.k.a. FireWire; via libdc1394 and libraw1394; input only) * IEC 61883 (via libiec61883; input only) * DeckLink * Brooktree video capture chip (via bktr driver; input only)


Audio IO

*
Advanced Linux Sound Architecture Advanced Linux Sound Architecture (ALSA) is a software framework and part of the Linux kernel that provides an application programming interface (API) for sound card device drivers. Some of the goals of the ALSA project at its inception were ...
(ALSA) *
Open Sound System The Open Sound System (OSS) is an interface for making and capturing sound in Unix and Unix-like operating systems. It is based on standard Unix devices system calls (i.e. POSIX read, write, ioctl, etc.). The term also sometimes refers to ...
(OSS) *
PulseAudio PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, including Windows Subsystem for Linux on Microsoft Windows and Termux on Android; various BSD distributions such as ...
*
JACK Audio Connection Kit JACK Audio Connection Kit (or JACK; a recursive acronym) is a professional sound server API and pair of daemon implementations to provide real-time, low-latency connections for both audio and MIDI data between applications. JACK was developed by ...
(JACK; input only) *
OpenAL OpenAL (Open Audio Library) is a cross-platform audio application programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those o ...
(input only) * sndio *
Core Audio Core Audio is a low-level API for dealing with sound in Apple's macOS and iOS operating systems. It includes an implementation of the cross-platform OpenAL. Apple's Core Audio documentation states that "in creating this new architecture on Ma ...
(for
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
) **
AVFoundation AVFoundation is a multimedia framework with APIs in Objective-C and Swift, which provides high-level services for working with time-based audiovisual media on Apple Darwin-based operating systems: iOS, macOS, tvOS, and watchOS. It was first intro ...
(input only) ** AudioToolbox (output only)


Video IO

*
Video4Linux Video4Linux (V4L for short) is a collection of device drivers and an API for supporting realtime video capture on Linux systems. It supports USB webcams, TV tuners, CSI cameras, and related devices, standardizing their output, so programmers can ...
2 *
Video for Windows Video for Windows was a suite of video-playing and editing software introduced by Microsoft in 1992. A runtime version for viewing videos only was made available as a free add-on to Windows 3.1, which then became an integral component of Windows ...
(input only) * Windows
DirectShow DirectShow (sometimes abbreviated as DS or DShow), 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 ea ...
* Android Camera (input only)


Screen capture and output

* Simple DirectMedia Layer 2 (output only) *
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
(output only) *
Linux framebuffer The framebuffer subsystem in the Linux kernel fbdev is used to show graphics on a computer monitor, typically on the system console. It was designed as a hardware-independent API to give user space software access to the framebuffer (the par ...
(fbdev) *
Graphics Device Interface The Graphics Device Interface (GDI) is a legacy component of Microsoft Windows responsible for representing graphical objects and transmitting them to output devices such as monitors and printers. It was superseded by DirectDraw API and later ...
(GDI; input only) *
X Window System The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
(X11; via XCB; input only) *
X video extension The X video extension, often abbreviated as XVideo or Xv, is a video output mechanism for the X Window System. The protocol was designed by David Carver; the specification for version 2 of the protocol was written in July 1991. It is mainly use ...
(XV; via
Xlib Xlib (also known as libX11) is an X Window System protocol client library (computer science), library written in the C (programming language), C programming language. It contains subroutine, functions for interacting with an X Server (computi ...
; output only) * Kernel Mode Setting (via libdrm; input only)


Others

*
ASCII art ASCII art is a graphic design technique that uses computers for presentation and consists of pictures pieced together from the 95 printable (from a total of 128) character (computing), characters defined by the ASCII Standard from 1963 and ASCI ...
(via libcaca; output only)


Applications


Legal aspects

FFmpeg contains more than 100 codecs, most of which use compression techniques of one kind or another. Many such compression techniques may be subject to legal claims relating to
software patent A software patent is a patent on a piece of software, such as a computer program, library, user interface, or algorithm. The validity of these patents can be difficult to evaluate, as software is often at once a product of engineering, something ...
s. Such claims may be enforceable in countries like the United States which have implemented software patents, but are considered unenforceable or void in member countries of the
European Union The European Union (EU) is a supranational union, supranational political union, political and economic union of Member state of the European Union, member states that are Geography of the European Union, located primarily in Europe. The u ...
, for example. Patents for many older codecs, including AC3 and all MPEG-1 and MPEG-2 codecs, have expired. FFmpeg is licensed under the LGPL license, but if a particular build of FFmpeg is linked against any GPL libraries (notably
x264 x264 is a free and open-source software library and a command-line utility developed by VideoLAN for encoding video streams into the H.264/MPEG-4 AVC video coding format. It is released under the terms of the GNU General Public License. Histo ...
), then the entire binary is licensed under the GPL.


Projects using FFmpeg

FFmpeg is used by software such as
Blender A blender (sometimes called a mixer (from Latin ''mixus, the PPP of miscere eng. to Mix)'' or liquidiser in British English) is a kitchen and laboratory appliance used to mix, crush, purée or emulsify food and other substances. A stationary ...
, Cinelerra-GG Infinity,
HandBrake HandBrake is a free and open-source transcoder for digital video files. It was originally developed in 2003 by Eric Petit to make ripping DVDs to a data storage device easier. HandBrake's backend contains comparatively little original code; t ...
,
Kodi Kodi may refer to: Arts, entertainment, and media * KODI, a radio station in Cody, Wyoming, USA * Kodi (film), ''Kodi'' (film), India, 2016 * Kodi, a dog in the 2004 film ''Balto III: Wings of Change'' Other uses * Kodi (software), an open sour ...
,
MPC-HC Media Player Classic (MPC), Media Player Classic - Home Cinema (MPC-HC), and Media Player Classic - Black Edition (MPC-BE) are a family of free and open-source, compact, lightweight, and customizable media players for 32- and 64-bit Microsoft Win ...
,
Plex Plex Inc. is an American software company that runs its namesake over-the-top ad-supported streaming television service and develops media server software that lets users stream their personal media collections to their devices. The company is ...
, Shotcut, VirtualDub2 (a
VirtualDub VirtualDub is a free and open-source video capture and video processing utility for Microsoft Windows written by Avery Lee. It is designed to process linear video streams, including filtering and recompression. It uses AVI container format to s ...
fork),
VLC media player VLC media player (previously the VideoLAN Client) is a free and open-source software, free and open-source, software portability, portable, cross-platform media player software and streaming media Server (computing), server developed by the Vide ...
,
xine xine is a multimedia playback engine for Unix-like operating systems released under the GNU General Public License. xine is built around a shared library (xine-lib) that supports different frontend player applications. xine uses libraries fr ...
and
YouTube YouTube is an American social media and online video sharing platform owned by Google. YouTube was founded on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim who were three former employees of PayPal. Headquartered in ...
.. It handles video and audio playback in
Google Chrome Google Chrome is a web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS, iOS, iPadOS, an ...
and the Linux version of Firefox. GUI front-ends for FFmpeg have been developed, including Multimedia Xpert and XMedia Recode. FFmpeg is used by
ffdshow ffdshow is an open-source unmaintained codec library that is mainly used for decoding of video in the MPEG-4 ASP (e.g. encoded with DivX or Xvid) and H.264/MPEG-4 AVC video formats, but it supports numerous other video and audio formats as well. ...
, FFmpegInterop, the GStreamer FFmpeg plug-in, LAV Filters and OpenMAX IL to expand the encoding and decoding capabilities of their respective multimedia platforms. As part of
NASA The National Aeronautics and Space Administration (NASA ) is an independent agencies of the United States government, independent agency of the federal government of the United States, US federal government responsible for the United States ...
's
Mars 2020 Mars 2020 is a NASA mission that includes the rover ''Perseverance (rover), Perseverance'', the now-retired small robotic helicopter ''Ingenuity (helicopter), Ingenuity'', and associated delivery systems, as part of the Mars Exploration Progra ...
mission, FFmpeg is used by the
Perseverance rover ''Perseverance'' is a car-sized Mars rover designed to explore the Jezero (crater), Jezero crater on Mars as part of NASA's Mars 2020 mission. It was manufactured by the Jet Propulsion Laboratory and launched on July 30, 2020, at 11:50 Coordin ...
on Mars for image and video compression before footage is sent to Earth.


See also

*
MPlayer MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
, a similar project *
List of open-source codecs This is a listing of open-source codecs—that is, open-source software implementations of audio or video coding formats, audio codecs and video codecs respectively. Many of the codecs listed implement media formats that are restricted by pate ...
*
List of video editing software The following is a list of video editing software. The criterion for inclusion in this list is the ability to perform non-linear video editing. Most modern transcoding software supports transcoding a portion of a video clip, which would count as ...


References


External links

*
Browser-based version
{{Compression software Assembly language software Command-line software C (programming language) libraries Cross-platform free software Free software for Linux Free software for Windows Free software for macOS Free codecs Free computer libraries Free music software Free software programmed in C Free video conversion software Multimedia frameworks Software that uses FFmpeg Software using the GNU Lesser General Public License