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