ffmpeg libx265 x265-params не включит frame-dup

Вопрос или проблема

Иногда я использую libx265 для кодирования видео, потому что он может обрабатывать градации серого. Я получил очень хорошие результаты с этой командой:

ffmpeg -y -hide_banner -err_detect ignore_err -loglevel info -stats -benchmark -ec deblock 
-i "inpur.mp4" ^
 -pix_fmt gray12le -vsync vfr -mbd rd -c:a libopus ^
 -sws_flags +accurate_rnd -dst_range 1 -color_range 2 ^
 -c:v libx265 -crf 28 -preset medium -bufsize 64M -qmin 0 -qmax 68 -subq 8 -idct auto -flags +aic+mv4+qpel+loop+gray ^
 -x265-params "me=star:rd=5:rect=1:amp=1:hevc-aq=1:vbv-bufsize=12800:vbv-maxrate=1500:range=full:frame-dup=1" ^
 -movflags +faststart  "output.mp4"

Я хочу добавить опцию x265 “frame-dup”, но, похоже, это невозможно. Я попробовал несколько разных сборок FFMPG, включая 7.0, прочитал буквально десятки и десятки сайтов, скопировал их примеры, прочитал страницы документации x265 и искал их, и не могу найти никого, кто сказал бы, что это сработает.

Если я изменю строку x265-params на:

"me=star:rd=5:rect=1:amp=1:hevc-aq=1:vbv-bufsize=12800:vbv-maxrate=1500:range=full:frame-dup=1"

программа запускается, но я получаю:

x265 [info]: HEVC encoder version 3.5+117-b34fb2c77

x265 [info]: build info [Windows][GCC 13.2.0][64 bit] 12bit

x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2

x265 [warning]: hevc-aq enabled, disabling other aq-modes

x265 [warning]: Frame-duplication require NAL HRD and VBV parameters. Disabling frame duplication

x265 [info]: Unknown profile, Level-4 (High tier)
x

Я провел большое количество тестов с различными пермутациями параметров. Документация x265 не говорит о параметре “nal-hrd”, но некоторые страницы в интернете утверждают, что он существует. Я пытался добавить его, но это не помогает. Иногда программа запускается без ошибок, но все равно не включает frame-dup. А иногда я получаю сообщение об ошибке, что параметра ‘nal-hd’ нет.

Я пробовал удалить параметр hevc-aq, но это не помогает. Я могу опубликовать десятки или более результатов тестов, если кому-то это нужно, но я думаю, что это было бы пустая трата времени.

Кто-нибудь когда-нибудь действительно добивался, чтобы ffmpeg и libx264 использовали опцию frame-dup, и если да, не могли бы вы опубликовать полную команду ffmpeg, которая работает? Кто-нибудь знает, как включить NAL HRD? Это параметр или есть отдельный NAL параметр, который не указан в опубликованной документации?

Или может кто-то указать мне веб-страницу, которая однозначно говорит, что эта опция недоступна в любой сборке ffmpeg?

Ответ или решение

К сожалению, ваша проблема с использованием параметра frame-dup в кодировщике libx265 действительно связана с тем, что для его активации необходимо правильно настроить параметры NAL HRD и VBV. Прежде всего, давайте разберем, как это сделать.

Запуск кодировщика x265 с параметром frame-dup

Для того чтобы использовать frame-dup, необходимо добавить необходимые параметры HRD. В вашем случае вы должны указать параметры nal-hrd и соответствующие настройки VBV, чтобы обеспечить совместимость.

Пример команды FFmpeg

Попробуйте использовать следующую команду, которая включает необходимые параметры:

ffmpeg -y -hide_banner -err_detect ignore_err -loglevel info -stats -benchmark -ec deblock \
-i "input.mp4" \
-pix_fmt gray12le -vsync vfr -mbd rd -c:a libopus \
-sws_flags +accurate_rnd -dst_range 1 -color_range 2 \
-c:v libx265 -crf 28 -preset medium -bufsize 64M -qmin 0 -qmax 68 -subq 8 -idct auto -flags +aic+mv4+qpel+loop+gray \
-x265-params "me=star:rd=5:rect=1:amp=1:hevc-aq=1:vbv-bufsize=12800:vbv-maxrate=1500:range=full:nal-hrd=vbr:frame-dup=1" \
-movflags +faststart "output.mp4"

Объяснение параметров

  • nal-hrd=vbr: Активирует режим ограничения скорости передачи с переменной битовой скоростью (VBR). Это необходимо для правильной работы дублирования кадров.
  • vbv-bufsize и vbv-maxrate: Устанавливаются в соответствии с вашими требованиями к битрейту и буферу. Убедитесь, что эти значения удовлетворяют требованиям вашего использования.
  • Уберите hevc-aq, если получаете предупреждение о конфликте с другими параметрами AQ.

Дополнительные советы

  1. Проверка сборки FFmpeg: Убедитесь, что ваша сборка FFmpeg поддерживает необходимый функционал. Для этого можно использовать команду ffmpeg -buildconf для проверки конфигурации.
  2. Обновление FFmpeg и x265: Если ваша текущая сборка устарела, попробуйте обновить до последней версии FFmpeg и библиотеки x265.
  3. Изучение документации: Параметры и возможности кодировщика могут обновляться. Регулярно проверяйте документацию на официальном сайте для получения актуальной информации.

Если после применения этих изменений вы все еще сталкиваетесь с проблемами, пожалуйста, поделитесь выводом вашей команды и сообщениями об ошибках для дальнейшего анализа.

Оцените материал
Добавить комментарий

Капча загружается...