FFmpeg
FFmpeg is a free, open-source, cross-platform toolkit for
recording, converting, and streaming audio and video. Its command-line
tool, also called ffmpeg, can transcode between virtually any
container/codec combination, trim and cut clips, extract audio, scale
resolution, overlay filters, and pipe raw frames — all without a GUI.
It's the engine behind a huge share of media software, from browsers'
video decoders to YouTube's own transcoding pipeline.
ffmpeg -i input.mov output.mp4 # convert container/codec
ffmpeg -i input.mp4 -vn -c:a copy audio.aac # extract audio only
ffmpeg -i in.mp4 -ss 00:00:10 -t 5 clip.mp4 # trim a 5-second clip
Getting Started
Install FFmpeg and understand the input/output command structure.
Common Operations
Transcode, trim, extract audio, scale video, and make GIFs.
Command Reference
A dense cheat sheet of the flags covered throughout these docs.
Why FFmpeg?
- It handles almost any format. Hundreds of container formats and codecs are supported for both decoding and encoding, so it doubles as a universal media converter.
- It's a real pipeline, not just a converter. The filtergraph system lets you chain scaling, cropping, overlays, color correction, and audio mixing into a single pass, streamed through memory rather than round-tripping through disk.
- It's scriptable and fast. Every operation is a single CLI invocation with no GUI overhead, and encoding can be hardware-accelerated (VAAPI, NVENC, QSV, VideoToolbox) where available.
- It's the shared foundation. Browsers, media servers (Plex, Jellyfin), and countless apps embed FFmpeg's libraries (libavcodec, libavformat) under the hood — learning the CLI transfers directly.
Install
Arch Linux:
sudo pacman -S ffmpeg
Debian / Ubuntu:
sudo apt install ffmpeg
Fedora:
sudo dnf install ffmpeg
macOS (Homebrew):
brew install ffmpeg
See Getting Started for Windows and how FFmpeg's input/output command structure actually works.
- Source: FFmpeg/FFmpeg on GitHub
- License: LGPL-2.1+ (GPL-2.0+ if built with GPL-only components)
- Official site: ffmpeg.org
- First released: 2000, by Fabrice Bellard
These pages are independent, community-style reference documentation for FFmpeg. They are not affiliated with the FFmpeg project. For the canonical reference, see the official ffmpeg(1) documentation.