ffmpeg-formats
List available multimedia formats
SYNOPSIS
ffmpeg -formats
PARAMETERS
-formats
Prints list of supported muxers/demuxers and exits
DESCRIPTION
ffmpeg -formats displays a complete list of all input and output multimedia container formats (demuxers and muxers) supported by the FFmpeg installation.
Upon execution, it outputs a formatted table to standard output, with columns indicating capabilities:
D for demuxing (reading), E for muxing (writing), followed by the short format name and a descriptive string. Additional flags like M (metadata), T (timecode), or S (streaming) may appear.
This command is essential for verifying format compatibility before processing media files, scripting conversions, or troubleshooting errors like "format not supported." The output reflects compile-time options and enabled libraries (e.g., libavformat with GPL components unlocks more formats).
Example use: Run it standalone for a quick overview, or pipe to grep: ffmpeg -formats | grep mp4 to check specific formats. It exits after printing, making it lightweight and non-interactive.
For deeper details on a format, use ffmpeg -h demuxer=fmt or ffmpeg -h muxer=fmt.
CAVEATS
Output varies by FFmpeg build; minimal/distribution packages may lack proprietary formats. Always verify with your installation.
FLAGS LEGEND
D = demuxer (input)
E = muxer (output)
M = metadata support
T = timed data
S = streaming
I = generic image format
EXAMPLE OUTPUT
D 3gp 3GP (3GPP file format)
DE mp4 MP4 (MPEG-4 Part 14)
DEM mkv Matroska / WebM
HISTORY
Part of FFmpeg since its inception in March 2000 by Fabrice Bellard. Diagnostic options like -formats evolved with libavformat library updates, expanding support from basic AVI/MP3 to modern WebM/HEVC.


