What it is
FFmpeg is one of the main tools for multimedia processing. It reads, converts, encodes, decodes, cuts, joins, and streams audio, video, subtitles, and metadata.
It sits underneath many applications: video editors, streaming servers, converters, media libraries, file-processing platforms, and internal scripts.
How the stack works
FFmpeg consists of libraries and tools. `libavcodec` handles codecs, `libavformat` handles containers and streams, and other libraries cover filters, scaling, devices, and supporting tasks.
The `ffmpeg` command-line tool brings these capabilities together. Users describe input, output, codecs, filters, and parameters.
Convert and resize
This example shows a common task: take a source video, resize it, and save it with selected codecs.
ffmpeg -i input.mov \
-vf scale=1280:-2 \
-c:v libx264 -preset slow -crf 22 \
-c:a aac output.mp4
What is inside
The GitHub repository is a source mirror. It contains libraries, tools, documentation, tests, and implementations for many formats and codecs.
For users, public source and releases make it possible to embed FFmpeg, build it for platforms, and verify format support.
Practical context
In production systems, FFmpeg commands should be kept explicitly in scripts, jobs, or configuration. That makes encoding parameters repeatable, comparable, and editable.
Strengths and limits
The main strength is breadth. When a rare container, old codec, or streaming setup appears, FFmpeg is often the first tool to test.
The limit is parameter complexity. Multimedia is complex: containers, codecs, bitrates, filters, timestamps, and device compatibility all matter.