Как определить "Выходную битовую глубину" библиотеки libx264 в ffmpeg?

Согласно Руководству по кодированию x264, crf масштаб зависит от того, является ли x264 8-битным или 10-битным. предположительно x264 --help показывает Output bit depth, Но на винде ffmpeg -h full ничего не говорит о Output bit depth и crf опция масштаба описывается как from -1 to FLT_MAX, Как я могу проверить, использует ли мой ffmpeg 8-битную или 10-битную версию библиотеки libx264?

РЕДАКТИРОВАТЬ

Как и предполагал ответ, если битовая глубина равна 8 и crf выше чем 51 затем ffmpeg автоматически настроит crf ценность быть 51 - максимально возможный. Так что достаточно проверить вывод из ffmpeg, чтобы определить битовую глубину.

1 ответ

Решение

Помощь от x264 сам а не под ffmpeg, В дистрибутивах Linux x264 находясь в пути, позволяет печатать x264 --help,

В окнах вы можете захотеть cd к x264 установленная папка и тип x264.exe --help, но я не работаю над окнами для ffmpeg, поэтому не могу сказать наверняка.

Как указано в приведенной вами ссылке, большинство дистрибутивов являются 8-битными. Почему бы вам не использовать crf ценность 63 и посмотрим, выдаст ли он ошибку - тогда вы, скорее всего, имеете 8-битное распределение.

Другой метод будет заключаться в кодировании тестового видео низкого качества с ffmpeg (используя, например, ограничение продолжительности и "сверхбыстрый" пресет), а затем опросить полученный MP4 с помощью ffprobe определить фактическую битовую глубину видеопотока. Команда для запуска будет ffprobe -show_streams /path/to/video.mp4 и поле для поиска в выходных данных - "bits_per_raw_sample=8". Вы также можете установить формат вывода JSON, добавив -print_format json вариант.

Другие вопросы по тегам