What is FFmpeg?
FFmpeg is a free, open-source suite for processing audio, video, and other multimedia streams. Its tools and libraries support decoding, encoding, filtering, muxing, demuxing, capture, and streaming.
How FFmpeg works
FFmpeg combines command-line programs with libraries for codecs, containers, devices, filtering, and protocol handling. The ffmpeg executable builds pipelines by selecting input streams, decoding when needed, applying filter graphs, and writing mapped outputs through a muxer. It is an engine used inside many media systems rather than a single fixed transcoding service. Reproducibility depends on the command, input properties, binary version, and features enabled in that particular build.
Key facts
- Using stream copy passes compressed packets to a new container without decoding, making remuxes fast and lossless; operations such as scaling or burned-in text necessarily require decoding.
- Available encoders, decoders, filters, and hardware paths are determined by build configuration and linked libraries. A command that works with one FFmpeg binary may be absent from another.
- Option placement is scoped to inputs or outputs, and explicit stream mapping controls which tracks survive. Assuming defaults can silently omit attachments, alternate audio, or subtitles.
When FFmpeg matters
Developers use FFmpeg for transcoding, stream packaging, thumbnail generation, and media repair. Command behavior depends on the compiled codecs, filters, libraries, and hardware support.