name, description
name
description
ffmpeg
Process audio and video files using ffmpeg/ffprobe. Use when the user wants to convert, transcode, trim, merge, extract, resize, compress, or analyze multimedia files.
FFmpeg
CLI reference for FFmpeg v8.x — a complete, cross-platform solution for recording, converting, and streaming audio and video.
Official docs: https://www.ffmpeg.org/documentation.html
Tools
Tool
Purpose
ffmpeg
Transcode, convert, filter, mux/demux multimedia
ffprobe
Analyze and inspect multimedia streams
ffplay
Play multimedia files (interactive)
ffmpeg
Synopsis
Options before -i apply to the input; options before the output URL apply to the output.
Global Options
Flag
Description
-y
Overwrite output files without asking
-n
Do not overwrite; exit if output exists
-hide_banner
Suppress copyright/build info banner
-loglevel level
Set log level: quiet, error, warning, info (default), verbose, debug
-stats
Print encoding progress/statistics
-progress url
Send machine-readable progress to url
-report
Dump full command line and log to a file
-filter_threads n
Number of threads for filter processing
Input/Output Options
Flag
Description
-i url
Input file URL
-f fmt
Force input or output format
-c[:stream] codec
Select encoder/decoder; use copy for stream copying
-t duration
Limit duration (as input: read limit; as output: write limit)
-to position
Stop at position (timestamp)
-ss position
Seek to position (before -i: fast input seek; after: output seek)
-sseof position
Seek relative to end of file
-itsoffset offset
Set input time offset
-itsscale scale
Rescale input timestamps
-metadata key=value
Set metadata key/value pair
-disposition value
Set stream disposition flags
-target type
Specify target type: vcd, svcd, dvd, dv, dv50
-stream_loop n
Loop input stream n times (-1 = infinite)
-frames[:stream] n
Stop after n frames
-fs limit
Set file size limit in bytes
-timestamp date
Set recording timestamp
Video Options
Flag
Description
-vn
Disable video
-vcodec codec
Set video codec (alias for -c:v)
-r fps
Set frame rate
-fpsmax fps
Set maximum frame rate
-s WxH
Set frame size
-aspect ratio
Set display aspect ratio (e.g. 16:9)
-pix_fmt format
Set pixel format
-vf filtergraph
Apply video filter graph (alias for -filter:v)
-pass n
Two-pass encoding pass (1 or 2)
-passlogfile prefix
Two-pass log file prefix
-vframes n
Set number of video frames to output
-autorotate
Auto-rotate based on metadata (default on)
-display_rotation angle
Set video rotation metadata
-display_hflip
Horizontal flip metadata
-display_vflip
Vertical flip metadata
-force_key_frames expr
Force keyframes at specified times/expression
-copyinkf
Copy non-key frames at the beginning during stream copy
Audio Options
Flag
Description
-an
Disable audio
-acodec codec
Set audio codec (alias for -c:a)
-ar freq
Set audio sample rate (Hz)
-ac channels
Set number of audio channels
-af filtergraph
Apply audio filter graph (alias for -filter:a)
-sample_fmt fmt
Set audio sample format
-channel_layout layout
Set audio channel layout
-aq q
Set audio quality (codec-specific VBR)
-aframes n
Set number of audio frames to output
Subtitle Options
Flag
Description
-sn
Disable subtitles
-scodec codec
Set subtitle codec (alias for -c:s)
-fix_sub_duration
Fix subtitle durations to avoid overlap
Stream Selection
Flag
Description
-map input:stream
Manually select streams for output
-dn
Disable data streams
Stream specifiers: v (video), V (video, no images), a (audio), s (subtitle), d (data). Index with :N (e.g. a:0 = first audio).
Hardware Acceleration
Flag
Description
-hwaccel method
HW accel method: cuda, vaapi, qsv, vulkan, auto
-hwaccel_device device
Select HW device
-init_hw_device type=name
Initialize HW device
ffprobe
Synopsis
Main Options
Flag
Description
-show_format
Show container format info
-show_streams
Show per-stream info
-show_packets
Show per-packet info
-show_frames
Show per-frame info
-show_chapters
Show chapter info
-show_programs
Show program info
-show_entries section=key1,key2
Show only specific fields
-show_error
Show probe errors
-select_streams specifier
Filter to specific streams (e.g. v:0, a)
-count_frames
Count frames per stream
-count_packets
Count packets per stream
-read_intervals intervals
Analyze specific time ranges
Output Formats
Set with -output_format (or -of, -print_format):
Format
Description
default
[SECTION] key=value [/SECTION]
json
JSON output (most useful for parsing)
xml
XML output
csv
Comma-separated values
flat
Flat key=value per line
ini
INI-style sections
Display Options
Flag
Description
-pretty
Human-readable units and time formatting
-unit
Show value units
-sexagesimal
Format times as HH:MM:SS.us
-hide_banner
Suppress copyright/build info
-o output_url
Write output to file instead of stdout
Common Codecs
Video Encoders
libx264 (H.264)
Option
Description
-preset
Speed/quality: ultrafast, superfast, veryfast, faster, fast, medium (default), slow, slower, veryslow
-crf
Constant quality: 0 (lossless) to 51 (worst). 18-23 is typical
-profile:v
baseline, main, high
-tune
film, animation, grain, stillimage, fastdecode, zerolatency
-b:v
Target bitrate (e.g. 2M)
libx265 (H.265/HEVC)
Option
Description
-preset
Same presets as x264
-crf
0-51, default 28. Similar quality to x264 at lower bitrate
-profile:v
main, main10, main12
-b:v
Target bitrate
libvpx-vp9 (VP9)
Option
Description
-crf
0-63. 31 is a good default
-b:v
Target bitrate (set to 0 for pure CRF mode)
-cpu-used
Speed: 0 (slowest/best) to 8 (fastest)
-deadline
best, good (default), realtime
-row-mt 1
Enable row-based multithreading
libsvtav1 (SVT-AV1)
Option
Description
-crf
0-63. 30 is a good default
-preset
0 (slowest/best) to 13 (fastest). 8 is a good default
-b:v
Target bitrate
libaom-av1 (AOM AV1)
Option
Description
-crf
0-63
-cpu-used
0 (best) to 8 (fastest)
-b:v
Target bitrate (set to 0 for pure CRF mode)
-tiles
Tile columns x rows for parallelism
Audio Encoders
aac (Native AAC)
Option
Description
-b:a
Bitrate: 128k, 192k, 256k
-profile:a
aac_low (default), aac_he, aac_he_v2
libmp3lame (MP3)
Option
Description
-b:a
CBR bitrate: 128k, 192k, 320k
-q:a
VBR quality: 0 (best) to 9 (worst). 2 is a good default
libopus (Opus)
Option
Description
-b:a
Bitrate: 64k to 256k. 128k is a good default
-vbr
on (default), off, constrained
-application
audio (default), voip, lowdelay
libvorbis (Vorbis)
Option
Description
-q:a
VBR quality: -1 to 10. 5 is a good default
-b:a
ABR bitrate
flac (FLAC)
Option
Description
-compression_level
0 (fast) to 12 (best). 5 is default
Common Container Formats
Format
Extensions
Notes
mp4
.mp4, .m4a, .m4v
Use -movflags +faststart for web streaming
matroska
.mkv
Supports virtually all codecs
webm
.webm
VP8/VP9/AV1 + Vorbis/Opus for web
avi
.avi
Legacy; limited codec support
mpegts
.ts
Broadcast transport stream
ogg
.ogg, .ogv
Vorbis/Opus/Theora container
wav
.wav
Uncompressed PCM audio
flac
.flac
Lossless audio
mp3
.mp3
MPEG audio layer 3
hls
.m3u8
HTTP Live Streaming
dash
.mpd
DASH adaptive streaming
gif
.gif
Animated GIF
image2
various
Image sequence input/output
concat
text file
Concatenation demuxer (file list)
null
—
Discard output (benchmarking)
Common Video Filters (-vf)
Filter
Description
Example
scale=W:H
Resize video. Use -1 or -2 to auto-calculate
scale=1280:720, scale=-2:480
crop=W:H:X:Y
Crop to WxH starting at X,Y
crop=640:480:100:50
pad=W:H:X:Y:color
Pad video with borders
pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black
overlay=X:Y
Composite second input over first
overlay=10:10
transpose=N
Rotate: 0=90ccw+vflip, 1=90cw, 2=90ccw, 3=90cw+vflip
transpose=1
hflip / vflip
Horizontal / vertical flip
hflip
rotate=angle
Rotate by arbitrary angle (radians)
rotate=PI/4
fps=N
Change frame rate
fps=30
setpts=expr
Modify presentation timestamps
setpts=0.5*PTS (2x speed)
trim=start:end
Extract time range
trim=start=10:end=20
drawtext=opts
Overlay text
drawtext=text='Hello':fontsize=24:x=10:y=10
fade=t=type:st=S:d=D
Fade in/out
fade=t=in:st=0:d=2
eq=opts
Adjust brightness/contrast/saturation
eq=brightness=0.1:contrast=1.2
format=pix_fmt
Convert pixel format
format=yuv420p
concat=n:v:a
Concatenate segments
concat=n=2:v=1:a=1
split / select
Duplicate / select frames
select='eq(pict_type,I)'
deinterlace / yadif
Remove interlacing
yadif=1
boxblur=R
Apply box blur
boxblur=5:1
subtitles=file
Burn in subtitles from file
subtitles=subs.srt
palettegen / paletteuse
Generate/apply palette for GIF
Used in two-pass GIF creation
colorchannelmixer
Mix color channels
colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3 (grayscale)
Common Audio Filters (-af)
Filter
Description
Example
volume=V
Adjust volume
volume=1.5, volume=-3dB
loudnorm
EBU R128 loudness normalization
loudnorm=I=-16:TP=-1.5:LRA=11
atempo=T
Change tempo (0.5-100.0)
atempo=2.0 (2x speed)
aresample=rate
Resample audio
aresample=44100
amerge
Merge audio channels
amerge=inputs=2
afade=t=type:st=S:d=D
Audio fade in/out
afade=t=in:st=0:d=3
highpass=f=freq
High-pass filter
highpass=f=200
lowpass=f=freq
Low-pass filter
lowpass=f=3000
equalizer=f:t:w:g
Parametric EQ
equalizer=f=1000:t=q:w=1:g=5
acompressor
Dynamic range compression
acompressor=threshold=-20dB:ratio=4
silenceremove
Remove silence
silenceremove=1:0:-50dB
silencedetect
Detect silence
silencedetect=n=-30dB:d=2
adelay=delays
Delay audio channels
adelay=1000|1000 (ms)
aecho=id:ig:delays:decays
Add echo effect
aecho=0.8:0.88:60:0.4
pan=layout:gains
Remix channels
pan=mono|c0=0.5*c0+0.5*c1
Common Recipes
Convert format
Transcode with CRF quality
Trim / cut
Resize video
Compress video (lower quality)
Two-pass encoding
Concatenate files (concat demuxer)
Add subtitles (burn-in)
Create GIF
Add watermark / overlay
Change speed (video + audio)
Merge audio and video
Normalize audio loudness
Convert to web-optimized MP4
Probe file info (JSON)
Get duration only
Get resolution only
Source