What is FFmpeg?
FFmpeg is a multimedia software project and toolkit used to read, inspect, decode, encode, filter, stream and repackage audio and video.
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
ffmpg, ffmepg.These usually refer to FFmpeg. The official name contains two capital F characters followed by “mpeg.”
A command such as FFmpeg converting MKV to MP4 is using FFmpeg as the tool; MKV and MP4 are the containers involved.