Distributed media library automation tool that transcodes and remuxes video and audio files with FFmpeg or HandBrake using conditional plugin rules.
FFmpeg/FFmpeg
A C library collection and command-line toolbox for decoding, encoding, converting, filtering and streaming audio, video and subtitles.
- Stars
- 66,623
- Forks
- 14,525
- Open issues
- 3
- Last commit
- 23 hours ago
What is it?
FFmpeg is a set of libraries and command-line tools for working with multimedia content such as audio, video, subtitles and related metadata. It is built around several core libraries: libavcodec for codecs, libavformat for container formats and streaming protocols, libavfilter for a directed graph of audio and video filters, libavdevice for capture and playback devices, and libswscale and libswresample for color conversion, scaling and audio resampling.
On top of these libraries, the project ships the ffmpeg command for converting, manipulating and streaming media, ffplay as a minimal player, and ffprobe for inspecting files. Developers who want to embed multimedia handling in their own software can use the libraries directly, and coding examples are included in the doc/examples directory.
The codebase is mainly LGPL-licensed, with some optional components under GPL. Patches are submitted through the project's own Forgejo instance or the ffmpeg-devel mailing list rather than GitHub pull requests.
Key features
- 01Decodes and encodes a wide range of audio and video codecs through libavcodec.
- 02Reads and writes many container formats and streaming protocols such as RTMP, RTSP and HLS.
- 03Applies audio and video filters through a directed filter graph.
- 04Converts color spaces, scales images and resamples audio.
- 05Ships ffmpeg, ffplay and ffprobe command-line tools.
Use cases
- Converting video or audio files between formats and codecs from the command line.
- Pushing live streams to RTMP or RTSP servers.
- Embedding multimedia decoding and encoding into a native application.
- Inspecting media file metadata and stream details with ffprobe.
Things to know
- The README gives no install or run commands, so you must find the build instructions in the docs or on the website.
- The codebase is mainly LGPL, but optional components are GPL, so licensing depends on which parts you enable.
- GitHub pull requests are ignored, so contributions must go through Forgejo or the mailing list.
In collections
Topics
FAQ
- What is FFmpeg?
- A C library collection and command-line toolbox for decoding, encoding, converting, filtering and streaming audio, video and subtitles. FFmpeg is a set of libraries and command-line tools for working with multimedia content such as audio, video, subtitles and related metadata. It is built around several core libraries: libavcodec for codecs, libavformat for container formats and streaming protocols, libavfilter for a directed graph of audio and video filters, libavdevice for capture and playback devices, and libswscale and libswresample for color conversion, scaling and audio resampling.
- Is FFmpeg free to use? What license does it have?
- FFmpeg is open source under the Other license. Check the license terms before using it in commercial products.
- Is FFmpeg still maintained?
- Actively maintained. The last commit to FFmpeg was on Nov 6, 2026.
- What can I use FFmpeg for?
- Converting video or audio files between formats and codecs from the command line. Pushing live streams to RTMP or RTSP servers. Embedding multimedia decoding and encoding into a native application. Inspecting media file metadata and stream details with ffprobe.
- Where can I get FFmpeg?
- The source code and installation instructions are on GitHub: https://github.com/FFmpeg/FFmpeg
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A free command-line media player that plays a wide range of audio and video formats, codecs and subtitle types.
Python bindings that build and run FFmpeg command lines from chained Python calls, including complex filter graphs.
A cross-platform FFmpeg GUI for lossless cutting, trimming and remuxing of video and audio files without re-encoding.
A hands-on, beginner-friendly introduction to digital video concepts, covering color, frame types, codecs such as H.264, H.265, VP9 and AV1, and streaming, with FFmpeg examples.
A pure WebAssembly and JavaScript port of FFmpeg that lets browsers record, convert and stream video and audio.