ffmpeg flags & options
-i
Specify input file. Multiple -i flags for multiple inputs.
ffmpeg -i input.mp4 output.avi
-c, -codec
Set the codec. Use copy to avoid re-encoding.
ffmpeg -i input.mp4 -c copy output.mkv
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
-b
Set bitrate. Use :v for video, :a for audio.
ffmpeg -i input.mp4 -b:v 2M output.mp4
ffmpeg -i input.mp4 -b:a 128k output.mp4
-r
Set frame rate.
ffmpeg -i input.mp4 -r 30 output.mp4
-s
Set video resolution.
ffmpeg -i input.mp4 -s 1280x720 output.mp4
-ss
Seek to a time position. Place before -i for fast seeking.
ffmpeg -ss 00:01:30 -i input.mp4 -t 10 clip.mp4
-t
Limit output duration in seconds.
ffmpeg -i input.mp4 -t 30 first30sec.mp4
-to
Stop writing at a specific timestamp.
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 clip.mp4
-an
Strip all audio streams from output.
ffmpeg -i input.mp4 -an silent.mp4
-vn
Strip all video streams. Useful for extracting audio.
ffmpeg -i video.mp4 -vn audio.mp3
-y
Overwrite output file without asking.
ffmpeg -y -i input.mp4 output.mp4
-crf
Constant Rate Factor. Lower = better quality. 18-28 is typical for H.264.
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
-preset
Encoding speed/compression tradeoff. Options: ultrafast, fast, medium, slow, veryslow.
ffmpeg -i input.mp4 -c:v libx264 -preset fast output.mp4
-map
Select specific streams from inputs.
ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -map 1:a output.mp4