Skip to content

dubhad-dev/FFmpeg-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

FFMPEG Guide

Commands

1. H.264

ffmpeg -i <INPUT_FILE> -c:v libx264 -crf <CRF> -c:a <AUDIO_ENCODER> -b:a <AUDIO_BITRATE> <OUTPUT_FILE>

  • CRF
    • 18 - transparent quality
    • 23 - good quality (default)
  • AUDIO_ENCODER
    • libopus - best choice, only with mkv container
    • aac - good choice, supported by mkv, mp4, flv
    • copy - 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

2. H.265

ffmpeg -i <INPUT_FILE> -c:v libx265 -crf <CRF> -c:a <AUDIO_ENCODER> -b:a <AUDIO_BITRATE> <OUTPUT_FILE>

  • CRF
    • 18 - best quality
    • 23 - good quality
    • 28 - normal quality (default)
  • AUDIO_ENCODER
    • libopus - best choice, only with mkv container
    • aac - good choice, supported by mkv, mp4, flv
    • copy - 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

3. VP9

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 - 1080p
    • 32 - 720p
    • 33 - 480p
    • 36 - 360p
    • 37 - 240p
    • 24 - 1440p
    • 15 - 2160p
  • SPEED
    • 0 - best quality (default)
    • 2 - faster
    • 5 - 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

Comparison

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

Other

  • Change resolution: -vf scale=<WIDTH>:<HEIGHT> (if you want to save aspect ratio, use -1 for one of dimensions)

How to cut video

  • 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>

Notes

  1. To calculate the bitrate to use for multi-channel audio: (bitrate for stereo) x (channels / 2).
  2. If using libopus with multi-channel audio (>stereo) should use -af "channelmap=channel_layout=<LAYOUT>". For example, -af "channelmap=channel_layout=5.1"
  3. https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio
  4. https://trac.ffmpeg.org/wiki/Seeking

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published