FFmpeg Cheatsheet
Complete FFmpeg command reference for video and audio processing.
FFmpeg Cheatsheet
Video & audio processing commands
Commands
Categories
Favorites
Sections
ffmpeg -versionShow version
ffmpeg -codecsList codecs
ffmpeg -formatsList formats
ffmpeg -filtersList filters
ffmpeg -encodersList encoders
ffmpeg -decodersList decoders
ffprobe [input]Show file info
ffprobe -show_streams [input]Show streams
ffmpeg -i input.mp4 output.aviMP4 to AVI
ffmpeg -i input.mov -c:v libx264 -c:a aac output.mp4MOV to MP4 (H.264)
ffmpeg -i input.avi -c:v libvpx -c:a libvorbis output.webmAVI to WebM
ffmpeg -i input.mp4 -c copy output.mkvRemux without re-encoding
ffmpeg -i input.mp4 -an output.mp4Remove audio
ffmpeg -i input.mp4 -vn output.mp3Extract audio
ffmpeg -i input.mp3 output.wavMP3 to WAV
ffmpeg -i input.wav -c:a libmp3lame -q:a 2 output.mp3WAV to MP3
ffmpeg -i input.mp4 -crf 23 output.mp4Set quality (18-28, lower=better)
ffmpeg -i input.mp4 -b:v 1M output.mp4Set video bitrate
ffmpeg -i input.mp4 -b:a 128k output.mp4Set audio bitrate
ffmpeg -i input.mp4 -preset fast output.mp4Encoding speed preset
ffmpeg -ss 00:00:10 -to 00:00:20 -i input.mp4 -c copy output.mp4Cut 10s-20s (fast)
ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c copy output.mp4Extract 30s from 1:00
ffmpeg -sseof -30 -i input.mp4 -c copy output.mp4Last 30 seconds
ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4Concat from file list
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex concat=n=2:v=1:a=1 output.mp4Concat two files
💡 files.txt format: file 'video1.mp4'\nfile 'video2.mp4'
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4Resize to 720p
ffmpeg -i input.mp4 -vf scale=-1:720 output.mp4Resize keeping aspect
ffmpeg -i input.mp4 -vf crop=640:480:0:0 output.mp4Crop video
ffmpeg -i input.mp4 -vf transpose=1 output.mp4Rotate 90° clockwise
ffmpeg -i input.mp4 -vf hflip output.mp4Horizontal flip
ffmpeg -i input.mp4 -vf vflip output.mp4Vertical flip
ffmpeg -i input.mp4 -vf fps=30 output.mp4Change framerate
ffmpeg -i input.mp4 -vf 'setpts=0.5*PTS' output.mp42x speed (video)
ffmpeg -i input.mp4 -vf eq=brightness=0.1:contrast=1.2 output.mp4Adjust brightness/contrast
ffmpeg -i input.mp4 -af volume=2.0 output.mp4Double volume
ffmpeg -i input.mp4 -af atempo=2.0 output.mp42x audio speed
ffmpeg -i input.mp4 -af 'afade=t=in:d=3' output.mp4Fade in 3s
ffmpeg -i input.mp4 -af loudnorm output.mp4Normalize audio
ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.pngExtract frame at 10s
ffmpeg -i input.mp4 -vf fps=1 frame_%04d.pngExtract 1 frame/sec
ffmpeg -i input.mp4 -vf 'fps=10,scale=320:-1' output.gifVideo to GIF
ffmpeg -i input.mp4 -t 5 -vf 'fps=15,scale=480:-1' output.gif5s GIF at 15fps
ffmpeg -framerate 30 -i frame_%04d.png -c:v libx264 output.mp4Images to video
ffmpeg -i input.mkv -map 0:s:0 subs.srtExtract subtitles
ffmpeg -i input.mp4 -vf subtitles=subs.srt output.mp4Burn subtitles
ffmpeg -i input.mp4 -i subs.srt -c copy -c:s mov_text output.mp4Add soft subtitles
ffmpeg -i input.mp4 -metadata title='Title' output.mp4Set title
ffmpeg -i input.mp4 -map_metadata -1 -c copy output.mp4Remove metadata
ffmpeg -f v4l2 -i /dev/video0 output.mp4Webcam capture (Linux)
ffmpeg -f avfoundation -i '0' output.mp4Webcam capture (macOS)
ffmpeg -f gdigrab -i desktop output.mp4Screen capture (Windows)
ffmpeg -i input.mp4 -f flv rtmp://server/live/streamStream to RTMP
ffmpeg -i input.mp4 -f hls -hls_time 10 playlist.m3u8Create HLS stream
ffmpeg -i input.mp4 -vf 'scale=1280:720,fps=30' -crf 23 output.mp4Resize + FPS + quality
ffmpeg -i input.mp4 -vf "drawtext=text='Hello':fontsize=24:x=10:y=10" output.mp4Add text overlay
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4Replace audio
ffmpeg -i input.mp4 -i watermark.png -filter_complex overlay=10:10 output.mp4Add watermark
ffmpeg -i input.mp4 -vf 'split[a][b];[a]palettegen[p];[b][p]paletteuse' output.gifHigh quality GIF
Quick Reference
ffmpeg -i in.mp4 out.avi
-vf scale=1280:720
-ss 00:00:10 -t 30
-crf 23