FFmpeg CLI Reference
Contents
-
Dependencies
-
Glossary of flags and filters
-
Converting formats
-
Resizing and padding
-
Trim by time
-
Verification and inspection
-
Reference files
Dependencies
Verify ffmpeg is installed:
ffmpeg -version
Install if missing:
macOS
brew install ffmpeg
Ubuntu/Debian
sudo apt install ffmpeg
Windows (scoop)
scoop install ffmpeg
Glossary of flags and filters
Filtering reference
Flag/Filter Purpose
-vf (also -filter:v ) Video filter
-af (also -filter:a ) Audio filter
-filter_complex
Complex filter graph for multi-stream filtering
[0]
All streams from first input (0-based)
[0:v]
Video stream from first input
[1:a]
Audio stream from second input
0:v:0
First input, first video stream
0:a:1
First input, second audio stream
[name]
Named stream, used with -filter_complex
-map [name]
Select stream for output
-y
Auto-overwrite output files without confirmation
Expression evaluations: if , lte , gte and more.
Converting formats
Remux MP4 to MKV (no re-encoding):
ffmpeg -i input.mp4 -c copy output.mkv
MKV and MP4 are both containers for H264/H265 video and AAC/MP3 audio. Video quality is determined by the codec, not the container. MKV supports multiple video streams; MP4 has wider device support.
Remux MP4 to MOV:
ffmpeg -i input.mp4 -c copy output.mov
Encode MP4 to AVI (re-encodes):
ffmpeg -i input.mp4 output.avi
Resizing and padding
Upscale to 1080x1920, preserve aspect ratio, black padding:
ffmpeg -i input.mp4 -vf "scale=w=1080:h=1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1:1" output.mp4
scale options:
-
force_original_aspect_ratio=decrease
-
auto-decrease output dimensions to fit aspect ratio
-
force_original_aspect_ratio=increase
-
auto-increase dimensions
-
scale=w=1080:h=-1
-
let ffmpeg pick correct height for aspect ratio
-
scale=w=1080:h=-2
-
force dimensions divisible by 2
scale reference
pad options:
-
pad=width:height:x:y:color
-
x:y is top-left corner position
-
(ow-iw)/2:(oh-ih)/2 centres the video; negative values also centre
-
pad reference
setsar=1:1 ensures 1:1 pixel aspect ratio. Prevents ffmpeg from compensating for ratio changes. setsar reference
Two scaled outputs from one input (horizontal + vertical with logo overlay):
ffmpeg -i input.mp4 -i logo.png
-filter_complex "[0:v]split=2[s0][s1];
[s0]scale=w=1920:h=1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1:1[out1];
[s1]scale=w=720:h=1280:force_original_aspect_ratio=decrease,pad=720:1280:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1:1[s2];
[s2][1]overlay=(main_w-overlay_w)/2:(main_w-overlay_w)/5[out2]"
-map [out1] -map 0:a output_youtube.mp4
-map [out2] -map 0:a output_shorts.mp4
Trim by time
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:25 output.mp4
For faster but less accurate trimming, see the Input/output seeking section in references/encoding-and-settings.md . For the -c copy trade-offs when trimming, see references/core-concepts.md .
Verification and inspection
List supported formats:
ffmpeg -formats
List supported codecs:
ffmpeg -codecs
ffprobe
ffprobe provides structured metadata about media files.
Show detailed stream information:
ffprobe -show_streams -i input.mp4
Verify moov atom position (faststart):
ffprobe -v trace -i input.mp4
Look for type:'moov' near the beginning of output to confirm faststart is applied.
Reference files
Load these on demand with the Read tool when the task requires deeper coverage.
File Topics
references/core-concepts.md
-c copy (remux vs transcode), input/output seeking, encoding quick ref (H264/H265/VP9 CRF ranges), GPU acceleration overview, format=yuv420p , -movflags +faststart
references/audio-processing.md
Replace audio, extract audio, mix audio, combine MP3 tracks, crossfade, change audio format, merge and normalise
references/advanced-editing.md
Playback speed, FPS change, jump cuts, video cropping for social, drawtext overlay, subtitles (burn/embed/extract), combine media (overlay, logo, background, concat intro/main/outro, vstack)
references/asset-generation.md
Image to video, slideshow with fade, Ken Burns (zoompan), GIFs, video compilation with fades, thumbnails (single/multiple/scene), image thumbnails, storyboards (scene tile/keyframe/Nth frame)
references/encoding-and-settings.md
Optimised daily command, H264 (libx264) deep-dive, H265 (libx265) Apple compat, VP9 (libvpx-vp9) constant quality, 1-pass vs 2-pass, -c copy detailed, seeking detailed, GPU detailed (Nvidia/Intel/AMD)