Установить битовую глубину в кодировке FFmpeg для HEVC?
FFmpeg теперь поддерживает 10-битное и 12-битное кодирование для x265, но я не смог найти подходящих параметров командной строки для их кодирования в этих битовых глубинах.
Кто-то может указать эти параметры?
1 ответ
Если у вас есть надлежащим образом настроенная современная версия FFmpeg и x265 (репозиторий FFmpeg под Zesty Zapus 17.04 относится к этой категории), вы должны найти кодировку с 8, 10 и 12 битами довольно простой.
Я иллюстрирую пример командной строки для каждого ниже:
1. 8-битное кодирование HEVC с FFmpeg...
Проверьте работоспособность установленной версии x265 для 8- битной кодировки следующим образом:
andrew@illium~$ x265 -V
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$
Здесь вы увидите, что моя собственная копия имеет возможности для кодирования 8|10|12 бит. Установка FFmpeg, скомпилированного с этой версией x265, может произвести достойное 8-битное кодирование с помощью следующей команды:
ffmpeg -i input.mp4 \
-c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p \
-c:a aac -b:a 128k \
output_8bit.mp4
Конечно, вы можете изменить любой из этих параметров в соответствии с вашими потребностями...
2. 10-битное кодирование HEVC с FFmpeg...
Проверьте работоспособность установленной версии x265 для 10-битной кодировки следующим образом:
andrew@illium~$ x265 -V -D10
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 10bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$
Здесь вы увидите, что моя собственная копия имеет возможности для 10-битного кодирования. Установка FFmpeg, скомпилированного с этой версией x265, может произвести достойное 10-битное кодирование с помощью следующей команды:
ffmpeg -i input.mp4 \
-c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p10le \
-c:a aac -b:a 128k \
output_10bit.mp4
И это должно увидеть тебя до конца...
3. 12-битное кодирование HEVC с FFmpeg...
Проверьте работоспособность установленной версии x265 для 12-битной кодировки следующим образом:
andrew@illium~$ x265 -V -D12
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$
Здесь вы увидите, что моя собственная копия имеет возможности для 12-битного кодирования. Установка FFmpeg, скомпилированного с этой версией x265, может произвести достойное 12-битное кодирование с помощью следующей команды:
ffmpeg -i input.mp4 \
-c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p12le \
-c:a aac -b:a 128k \
output_12bit.mp4
Еще раз экспериментируя с некоторыми вспомогательными параметрами, вы получите именно те результаты, которые вам нужны...
Заметки:
Если вы не уверены, какие форматы пикселей (для жизненно важных
-pix_fmt
Настройки FFmpeg) поддерживаются вашей копией FFmpeg и libx265, следующая команда покажет детали:ffmpeg -h encoder=libx265 2>/dev/null | grep pixel
Руководство по кодированию FFmpeg и H.265: Базовая информация о кодировании HEVC с помощью FFmpeg, но не о 8|10|12-битном кодировании, хотя...
Zesty Zapus (17.04) имеет чуть более старый, но полностью настроенный x265:
andrew@ilium:~$ x265 -V x265 [info]: HEVC encoder version 2.3 x265 [info]: build info [Linux][GCC 6.3.0][64 bit] 8bit+10bit+12bit x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX LZCNT andrew@ilium:~$
и, следовательно, может кодировать до всех 3 возможных битовых глубин...