X264. Почему --pass 1 --stats увеличивает размер файла?

Я использую --pass 1 --stats <stats file location> для создания файла статистики для кодирования H.264 с x264. Команда такая:

<x264 binary> <input file> -o <output file> --preset veryslow --crf 27 
  --tune ssim  --scenecut 0 --pass 1 --stats <stats file location>

Когда я запускал эту команду с --pass 1 --stats <stats file location> и без него, разница между размерами окончательных выходных файлов была очень разной. Тот, что с --pass 1 --stats <stats file location>, намного больше. Какова причина? Спасибо.


person Codecodeup    schedule 03.05.2016    source источник


Ответы (2)


Вы должны использовать параметры --pass N при двухпроходном кодировании. Выполнение двухпроходного кодирования позволяет x264 достичь точного битрейта, который вы указали. Первый проход сгенерирует файл статистики, который будет использоваться при кодировании второго прохода. После завершения второго прохода вы можете удалить файл статистики.

Поэтому, когда вы запускаете только команду --pass 1 без команды --pass 2, вы как будто не закончили работу!

Если вам все еще непонятно, я предлагаю вам прочитать краткую документацию на ffmpeg, касающуюся пропуска.

Если вы хотите, чтобы в файле было то, что распечатывается в консоли в процессе кодирования x264, прочтите Как получить вывод X264?

person RawBean    schedule 04.05.2016

--pass 1 без опции --slow-firstpass (кроме --preset placebo, где она включена по умолчанию) заставляет использовать более быстрые настройки, которые имеют более низкую степень сжатия и поэтому изменяют размер файла (обычно увеличивая его при том же crf).

person nobody555    schedule 04.05.2016