Cheat Sheet
FFmpeg Cheat Sheet
Essential video/audio conversion and manipulation commands
Basic Conversion
# Convert format
ffmpeg -i input.mov output.mp4
ffmpeg -i input.avi output.mkv
# Extract audio
ffmpeg -i input.mp4 -vn output.mp3
# Extract video (no audio)
ffmpeg -i input.mp4 -an output.mp4
Resize & Scale
# Set width, maintain aspect ratio
ffmpeg -i input.mp4 -vf scale=720:-2 output.mp4
# Fixed resolution
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
# Upscale 2x (nearest neighbor)
ffmpeg -i input.mp4 -vf scale=iw2:ih2:flags=neighbor output.mp4
Trim & Cut
# Trim from 30s to 60s
ffmpeg -i input.mp4 -ss 30 -to 60 output.mp4
# Trim first 10 seconds
ffmpeg -i input.mp4 -t 10 output.mp4
# From 30s, take 15 seconds
ffmpeg -i input.mp4 -ss 30 -t 15 output.mp4
Frame Operations
# Extract frames as images
ffmpeg -i input.mp4 -vf fps=1 frame_%04d.png
# Extract at specific time
ffmpeg -i input.mp4 -ss 00:00:05 -vframes 1 thumbnail.png
# Convert image sequence to video
ffmpeg -r 24 -i frame_%04d.png output.mp4
# Remove duplicate frames
ffmpeg -i input.mp4 -vf mpdecimate output.mp4
Compression
# H.264 with CRF (lower = better, 18-28 typical)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
# H.265 (HEVC) better compression
ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4
# Target file size (e.g. 50MB)
ffmpeg -i input.mp4 -fs 50M output.mp4
# Reduce frame rate to 15fps
ffmpeg -i input.mp4 -r 15 output.mp4
GIFs
# Video to GIF (good quality)
ffmpeg -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos" output.gif
# High quality palette GIF
ffmpeg -i input.mp4 -vf "fps=15,scale=640:-1:flags=lanczos,palettegen" palette.png
ffmpeg -i input.mp4 -i palette.png -lavfi "fps=15,scale=640:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif
Audio Only
# Change sample rate
ffmpeg -i input.mp3 -ar 44100 output.mp3
# Change bitrate
ffmpeg -i input.mp3 -b:a 192k output.mp3
# Join audio files (same format)
ffmpeg -i "concat:file1.mp3|file2.mp3" output.mp3
# Normalize audio volume
ffmpeg -i input.mp3 -af loudnorm=I=-16:LRA=11:TP=-1.5 output.mp3
Batch Processing
# Convert all .mov to .mp4
for f in *.mov; do
ffmpeg -i "$f" "${f%.mov}.mp4"
done