Конвертируйте видео YouTube HDR (vp9.2) в HEVC HDR с помощью ffmpeg
Мой вопрос прост: как мне конвертировать HDR vp9.2 видео, загруженные с YouTube, в HEVC (лучше, если 10 бит) HDR видео?
Вчера я попробовал эту команду, единственную, которую я смог найти в Google:
ffmpeg -i ../4K-HDR\ Videos/The\ World\ in\ HDR\ in\ 4K\ \(ULTRA\ HD\)-2160p\ 60fps.mkv -c:v libx265 -x265-params "colorprim=bt2020:transfer=smpte-st-2084:colormatrix=bt2020nc:master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,10):max-cll=0,0" output.mkv
Он конвертируется в HEVC (не уверен насчет 10 бит), но я теряю HDR. Кроме того, это, вероятно, слишком сложно ни за что. Какие-нибудь простые параметры ffmpeg, которые конвертируют из HDR в HDR? Благодарю.
2 ответа
Я получил ответ от пользователя priivt8 в этом посте в macrumors. Во-первых, нужна более поздняя версия ffmpeg, которая поддерживает кодирование HEVC с большой битовой глубиной, как, например, v3.4.1.
Тогда это команда:
ffmpeg -i <infile> \
-c:a copy \
-c:v libx265 \
-tag:v hvc1 \
-crf 22 \
-pix_fmt yuv420p10le \
-x265-params "colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc" \
<outfile>.mkv
где
"-i <infile>" <infile> must be replace with the full file name of the video in input
"\-c:a copy" copies the audio
"-c:v libx265" tells ffmpeg to convert to HEVC
"-tag:v hvc1" seems mandatory for Apple devices using quickTime and the like
"-crf 22" is the compression. Lower the value, better the picture and higher the size
"-pix_fmt yuv420p10le" for YCrCB 4:2:0 10-bits HDR
"-x265-params" are the HEVC parameters for color range etc
"<outfile>.mkv" is the file in output. Replace <outfile> with the name you like. The extensions (.mkv) tells ffmpeg to which container convert the video.
Я преобразовал его в файл mkv, чтобы не было проблем с добавлением аудио из исходного видео YouTube. можно использовать ".m4v" для видео, распознаваемых устройствами Apple.
Конвертированное видео теперь воспроизводится нормально, с HDR BT.2020 в Apple TV 4K (с использованием Infuse Pro) и Sony Video в моей Bravia с Android TV 7.0.
Можно добавить в ffmpeg опцию
-r 30
Уменьшить частоту кадров с 60 до 30 кадров в секунду (чтобы она могла воспроизводиться iTunes на Apple TV 4K).
Вот моя "надежная" версия:
ffmpeg -i source.webm -c:v libx265 -x265-params "level=5.2:colorprim=bt2020:colormatrix=bt2020nc:transfer=smpte2084" -crf 12 -preset medium -c:a copy output.mkv
Он работает на всех видео HDR YouTube (загружается с помощью youtube-dl
-f 337+bestaudio
).
Это (-crf 12
) даст вам около 18000-28000k видео битрейт для видео 4K. Я обычно использую -preset ultrafast
хотя в спешке.:)
Мне не нужно устанавливать -pix_fmt yuv420p10le
и т. д., поскольку это унаследует настройки из исходного файла VP9.