FFmpeg/FFmpeg logo

FFmpeg/FFmpeg

Free

Mirror of https://git.ffmpeg.org/ffmpeg.git

FreeFree tier
Inputs: audio, videoOutputs: audio, video
Type
Open Source

About FFmpeg/FFmpeg

FFmpeg is a comprehensive, cross-platform collection of libraries and command-line tools for processing multimedia content, including audio, video, subtitles, and metadata. It includes libraries such as libavcodec (encoding/decoding a wide range of codecs), libavformat (handling streaming protocols, container formats, and I/O), libavutil (utility functions), libavfilter (graph-based audio/video filtering), libavdevice (capture/playback device abstraction), libswresample (audio mixing and resampling), and libswscale (color conversion and scaling). The project provides command-line tools: ffmpeg (multimedia manipulation, conversion, and streaming), ffplay (minimalistic media player), and ffprobe (analysis and inspection tool). FFmpeg supports numerous formats (MP4, HLS, RTMP, WebM, Matroska, etc.) and is licensed under LGPL/GPL.

Key Features

Comprehensive codec support via libavcodec (many audio/video codecs)
Streaming protocols and container format handling via libavformat (RTSP, HLS, RTMP, MP4, WebM, Matroska, etc.)
Audio/video filtering with a directed graph of connected filters via libavfilter
Audio mixing and resampling via libswresample
Color conversion and scaling via libswscale
Command-line tools: ffmpeg (conversion/streaming), ffplay (player), ffprobe (inspection)
Cross-platform (written in C, runs on various OS)
Open source with LGPL/GPL licensing
Extensive documentation and example code in doc/ directory
Supports subtitles and metadata processing

Pros & Cons

Pros
  • Completely free and open-source with permissive licensing options
  • Widely adopted and trusted in the multimedia community
  • Supports an extensive range of codecs and formats (including proprietary ones)
  • Highly customizable via command-line options and filter graphs
  • Cross-platform compatibility (Windows, macOS, Linux, etc.)
  • Active community and regular releases
  • Well-documented with examples and wiki
Cons
  • Command-line only; lacks a native graphical user interface
  • Steep learning curve for new users due to complex syntax and numerous options
  • Large codebase can be difficult to build and configure manually
  • Some features require compilation with additional dependencies or optional components
  • Licensing can be complex when combining LGPL and GPL components

Best For

Converting multimedia files between formats (e.g., MP4 to AVI, MKV to MP4)Streaming live video over protocols like RTMP, HLS, and RTSPExtracting audio tracks from video filesApplying filters (scaling, cropping, color correction, overlays) to video and audioInspecting or analyzing media file metadata, codec info, and stream detailsRecording and capturing audio/video from devicesBuilding custom multimedia applications using the libraries (libavcodec, etc.)Transcoding media for web delivery or archival

FAQ

What is FFmpeg?
FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.
Is FFmpeg free?
Yes, FFmpeg is free and open source. The codebase is mainly LGPL-licensed with optional components licensed under GPL.
How do I install FFmpeg?
Installation instructions are provided in the INSTALL.md file in the repository. Pre-built binaries are also available from the official website.
Can I contribute to FFmpeg?
Yes. Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. GitHub pull requests are not part of the review process.
What formats does FFmpeg support?
FFmpeg supports a vast range of codecs and container formats including MP4, HLS, RTMP, WebM, Matroska, AVI, MPEG, and many more.