@barmaglod

Ffmpeg — кодирование видео в 2 прохода, как это сделать наиболее качественно?

Есть задача закодировать исходное видео (sample01, sample02) с уменьшением размера до 480х384 и битрейтом 310. Если быть точным, то параметры получаемого видео должны быть такими:
Видео
   Размер кадра:	480х384
   Кодек:		h264
   Профиль:		Baseline 3.0
   ReFrames:		3
   Битрейт:		310 Kbps, Переменный
Аудио
    Кодек:		АСС
    Битрейт:		128 к
    Частота:		48000

Профиль, к сожалению, должен быть обязательно не более Baseline 3.0. Битрейт тоже повышать не желательно.

Версия ffmpeg N-71608-ga924b83
После некоторых экспериментов с параметрами ffmpeg получилась такая строка, кодирующая видео в один проход:
ffmpeg.exe -hide_banner -i sample01.ts -vf scale=480:384 -sws_flags lanczos -vcodec h264 -profile:v baseline -level 3.0 -g 25 -x264opts me=tesa -me_range 32 -subq 9 -deblock 3:2 -b:v 310k -minrate 300k -maxrate 350k -bufsize 4000k -acodec libvo_aacenc -ab 128k -ar 48000 -f mpegts sample01_lq_1p.ts

Результат получился приемлемым (sample01_lq_1p, sample02_lq_1p), но нет предела совершенству, и хотелось бы вытянуть из столь низкого битрейта наиболее возможное качество. Была попытка сделать это с помощью 2х проходного кодирования такой строкой:
ffmpeg.exe -hide_banner -i sample01.ts -vf scale=480:384 -sws_flags lanczos -vcodec h264 -profile:v baseline -level 3.0 -g 25 -x264opts me=tesa -me_range 32 -subq 9 -deblock 3:2 -b:v 310k -minrate 300k -maxrate 350k -bufsize 4000k -pass 1 -fastfirstpass 0 -passlogfile stat01 -an -f mpegts -y NUL && ffmpeg.exe -hide_banner -i sample01.ts -vf scale=480:384 -sws_flags lanczos -vcodec h264 -profile:v baseline -level 3.0 -g 25 -x264opts me=tesa -me_range 32 -subq 9 -deblock 3:2 -b:v 310k -minrate 300k -maxrate 350k -bufsize 4000k -pass 2 -passlogfile stat01 -acodec libvo_aacenc -ab 128k -ar 48000 -f mpegts sample01_lq_2p.ts

Результат разочаровал. (sample01_lq_2p, sample02_lq_2p)Качество изображения стало хуже, явно вылезли jpeg-аретфакты. Это особенно заметно на первых кадрах ролика sample01_lq_2p, там где бегут цифры.

Подскажите, что поправить в параметрах кодирования ffmpeg, и как улучшить качество получаемого видео.
Данная строка получена эмпирическим путём, с помощью чтения документации и примеров, может я что-то упустил или может быть, в данном случае, второй проход не поможет?
  • Вопрос задан
  • 1557 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы