← All open source projects

FFmpeg

FFmpeg/FFmpeg

FFmpeg is a set of libraries and command-line tools for processing video, audio, subtitles, and metadata.

Forks 13,938
Author FFmpeg
Language C
License NOASSERTION
Synced 2026-06-27

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.

Language: Bash
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.