Reference · Software

What is FFmpeg?

FFmpeg is a multimedia software project and toolkit used to read, inspect, decode, encode, filter, stream and repackage audio and video.

FFmpeg is: a multimedia toolkit. FFmpeg is not: a codec, container or media file format.

Why FFmpeg is difficult to categorise

FFmpeg can appear as command-line software, as libraries used by developers, or as a hidden multimedia engine inside another application. That broad role makes it understandable that users sometimes assume it is a codec.

What FFmpeg can do

Demux and mux

Read streams from containers and package streams into new containers.

Decode and encode

Work with many audio and video codecs, including external encoder libraries where configured.

Filter and process

Resize video, resample audio, change channel layouts, trim media and much more.

Inspect

ffprobe can report streams, codecs, bitrate, metadata and container information.

Stream

Work with network protocols and streaming workflows.

Automate

Its command-line tools make repetitive media workflows scriptable.

Why FFmpeg appears inside so many applications

Developers can use FFmpeg libraries instead of writing every demuxer, decoder, encoder and protocol handler themselves. As a result, an application may rely heavily on FFmpeg even when the user never runs ffmpeg.exe directly.

FFmpeg and codecs

FFmpeg can contain codec implementations and can also connect to external encoders. For example, a build may expose libmp3lame for MP3 encoding or libx264 for H.264 encoding. That does not make FFmpeg itself the MP3 or H.264 codec.

Common confusion

Common misspellings: ffmpg, ffmepg.

These usually refer to FFmpeg. The official name contains two capital F characters followed by “mpeg.”

FFmpeg is not a file format.

A command such as FFmpeg converting MKV to MP4 is using FFmpeg as the tool; MKV and MP4 are the containers involved.