FFmpeg Cheatsheet

Complete FFmpeg command reference for video and audio processing.

58 commands
Info

Basic Info

ffmpeg -version
ffmpeg -codecs
ffmpeg -formats
ffmpeg -filters
ffmpeg -encoders
ffmpeg -decoders
ffprobe [input]
ffprobe -show_streams [input]
Convert

Format Conversion

ffmpeg -i input.mp4 output.avi
ffmpeg -i input.mov -c:v libx264 -c:a aac output.mp4
ffmpeg -i input.avi -c:v libvpx -c:a libvorbis output.webm
ffmpeg -i input.mp4 -c copy output.mkv
ffmpeg -i input.mp4 -an output.mp4
ffmpeg -i input.mp4 -vn output.mp3
ffmpeg -i input.mp3 output.wav
ffmpeg -i input.wav -c:a libmp3lame -q:a 2 output.mp3
Convert

Quality Settings

ffmpeg -i input.mp4 -crf 23 output.mp4
ffmpeg -i input.mp4 -b:v 1M output.mp4
ffmpeg -i input.mp4 -b:a 128k output.mp4
ffmpeg -i input.mp4 -preset fast output.mp4
Edit

Cut & Trim

ffmpeg -ss 00:00:10 -to 00:00:20 -i input.mp4 -c copy output.mp4
ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c copy output.mp4
ffmpeg -sseof -30 -i input.mp4 -c copy output.mp4
Edit

Merge & Concat

ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex concat=n=2:v=1:a=1 output.mp4

💡 files.txt format: file 'video1.mp4'\nfile 'video2.mp4'

Filters

Video Filters

ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
ffmpeg -i input.mp4 -vf scale=-1:720 output.mp4
ffmpeg -i input.mp4 -vf crop=640:480:0:0 output.mp4
ffmpeg -i input.mp4 -vf transpose=1 output.mp4
ffmpeg -i input.mp4 -vf hflip output.mp4
ffmpeg -i input.mp4 -vf vflip output.mp4
ffmpeg -i input.mp4 -vf fps=30 output.mp4
ffmpeg -i input.mp4 -vf 'setpts=0.5*PTS' output.mp4
ffmpeg -i input.mp4 -vf eq=brightness=0.1:contrast=1.2 output.mp4
Filters

Audio Filters

ffmpeg -i input.mp4 -af volume=2.0 output.mp4
ffmpeg -i input.mp4 -af atempo=2.0 output.mp4
ffmpeg -i input.mp4 -af 'afade=t=in:d=3' output.mp4
ffmpeg -i input.mp4 -af loudnorm output.mp4
Images

Screenshots & GIFs

ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.png
ffmpeg -i input.mp4 -vf fps=1 frame_%04d.png
ffmpeg -i input.mp4 -vf 'fps=10,scale=320:-1' output.gif
ffmpeg -i input.mp4 -t 5 -vf 'fps=15,scale=480:-1' output.gif
ffmpeg -framerate 30 -i frame_%04d.png -c:v libx264 output.mp4
Subtitles

Subtitle Operations

ffmpeg -i input.mkv -map 0:s:0 subs.srt
ffmpeg -i input.mp4 -vf subtitles=subs.srt output.mp4
ffmpeg -i input.mp4 -i subs.srt -c copy -c:s mov_text output.mp4
Subtitles

Metadata

ffmpeg -i input.mp4 -metadata title='Title' output.mp4
ffmpeg -i input.mp4 -map_metadata -1 -c copy output.mp4
Streaming

Capture & Stream

ffmpeg -f v4l2 -i /dev/video0 output.mp4
ffmpeg -f avfoundation -i '0' output.mp4
ffmpeg -f gdigrab -i desktop output.mp4
ffmpeg -i input.mp4 -f flv rtmp://server/live/stream
ffmpeg -i input.mp4 -f hls -hls_time 10 playlist.m3u8
Advanced

Complex Operations

ffmpeg -i input.mp4 -vf 'scale=1280:720,fps=30' -crf 23 output.mp4
ffmpeg -i input.mp4 -vf "drawtext=text='Hello':fontsize=24:x=10:y=10" output.mp4
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4
ffmpeg -i input.mp4 -i watermark.png -filter_complex overlay=10:10 output.mp4
ffmpeg -i input.mp4 -vf 'split[a][b];[a]palettegen[p];[b][p]paletteuse' output.gif

Quick Reference

Convert:

ffmpeg -i in.mp4 out.avi

Resize:

-vf scale=1280:720

Cut:

-ss 00:00:10 -t 30

Quality:

-crf 23