Команды для проведения транскодинга видео-файлов при помощи ffmpeg.

Транскодинг на процессоре

ffmpeg -i i.mkv -map 0 -c:v libx264 -crf 18 -c:a aac -ac 2 -b:a 128k -c:s copy o.mkv
  • -map 0 - маппинг всех каналов видео-контейнера (видео/аудио/субтитры) в процесс транскодинга
  • -c:{v,a,s} - указание кодека для видео/аудио/субтитров
  • -c:v libx264 - транскодирование видео в кодек h264
  • -c:s copy - пропуск транскодинга субтитров
  • -ac 2 - кодирование с использованием двух звуковых каналов (стерео)
  • -b:a 128k - общий битрейт аудио 128k

Транскодинг на GPU (VA-API)

VA-API транскодинг доступен видеокартам Intel и AMD.

ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device /dev/dri/renderD128 -i i.mkv -map 0 -vf 'scale_vaapi=w=-1:h=-1:format=nv12' -c:v h264_vaapi -crf 18 -c:a aac -ac 2 -b:a 128k -c:s copy o.mkv
  • параметры -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device /dev/dri/renderD128 нужны для указания аппаратного ускорения кодирования
  • при кодировании с использованием VA-API в H264 параметру передается кодек h264_vaapi