ffmpeg -i <INPUT_FILE> -c:v libx264 -crf <CRF> -c:a <AUDIO_ENCODER> -b:a <AUDIO_BITRATE> <OUTPUT_FILE>
- CRF
18- transparent quality23- good quality (default)
- AUDIO_ENCODER
libopus- best choice, only with mkv containeraac- good choice, supported by mkv, mp4, flvcopy- copies audio stream
- AUDIO_BITRATE
320k- best quality (stereo)128k- good quality (stereo)- empty - if copying audio stream
- OUTPUT_FILE
.mkv- can be used with any audio codec.mp4- can be used with mp3, aac, ac3, flac, alac audio codecs
https://trac.ffmpeg.org/wiki/Encode/H.264
ffmpeg -i <INPUT_FILE> -c:v libx265 -crf <CRF> -c:a <AUDIO_ENCODER> -b:a <AUDIO_BITRATE> <OUTPUT_FILE>
- CRF
18- best quality23- good quality28- normal quality (default)
- AUDIO_ENCODER
libopus- best choice, only with mkv containeraac- good choice, supported by mkv, mp4, flvcopy- copies audio stream
- AUDIO_BITRATE
320k- best quality (stereo)128k- good quality (stereo)- empty - if copying audio stream
- OUTPUT_FILE
.mkv- can be used with any audio codec.mp4- can be used with mp3, aac, ac3, flac, alac audio codecs
https://trac.ffmpeg.org/wiki/Encode/H.265
ffmpeg -i <INPUT_FILE> -c:v libvpx-vp9 -crf <CRF> -b:v 0 -cpu-used <SPEED> -c:a <AUDIO_ENCODER> -b:a <AUDIO_BITRATE> <OUTPUT_FILE>
- CRF
31- 1080p32- 720p33- 480p36- 360p37- 240p24- 1440p15- 2160p
- SPEED
0- best quality (default)2- faster5- best speed
- AUDIO_ENCODER
libopus- best choice
- AUDIO_BITRATE
320k- best quality (stereo)128k- good quality (stereo)- empty - if copying audio stream
- OUTPUT_FILE
.webm- best choice
https://trac.ffmpeg.org/wiki/Encode/VP9
Example:
| Codec | Speed | Size/Bitrate |
|---|---|---|
| libvpx-vp9 -crf 31 | 4.3x | 1x |
| libx265 -crf 18 | 2.8x | 2x |
| libx264 -crf 18 | 1.3x | 3x |
| libx265 -crf 23 | 2.3x | 1x |
| libx264 -crf 23 | 1x | 1.7x |
- Change resolution:
-vf scale=<WIDTH>:<HEIGHT>(if you want to save aspect ratio, use-1for one of dimensions)
-
Cut video:
ffmpeg -ss <START> -i <INPUT_FILE> -t <DURATION> -c:v <VIDEO_CODEC> <VIDEO_OPTIONS> -c:a <AUDIO_CODEC> <AUDIO_OPTIONS> <OUTPUT_FILE> -
Examples:
ffmpeg -ss 15:21.462 -i <INPUT_FILE> -t 162.247 -c:v libvpx-vp9 -crf 31 -b:v 0 -cpu-used 0 -c:a libopus -b:a 320k <OUTPUT_FILE>- With burned subtitles:
ffmpeg -ss 15:21.462 -i <INPUT_FILE> -t 162.247 -c:v libvpx-vp9 -crf 31 -b:v 0 -cpu-used 0 -vf "setpts=PTS+921.462/TB,subtitles='<SUBTITLES_FILE>',setpts=PTS-STARTPTS" -c:a libopus -b:a 320k <OUTPUT_FILE>
- To calculate the bitrate to use for multi-channel audio: (bitrate for stereo) x (channels / 2).
- If using
libopuswith multi-channel audio (>stereo) should use-af "channelmap=channel_layout=<LAYOUT>". For example,-af "channelmap=channel_layout=5.1" - https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio
- https://trac.ffmpeg.org/wiki/Seeking