![使用 ffmpeg 将 YouTube HDR(vp9.2)视频转换为 HEVC HDR](https://linux22.com/image/1549564/%E4%BD%BF%E7%94%A8%20ffmpeg%20%E5%B0%86%20YouTube%20HDR%EF%BC%88vp9.2%EF%BC%89%E8%A7%86%E9%A2%91%E8%BD%AC%E6%8D%A2%E4%B8%BA%20HEVC%20HDR.png)
我的问题很简单:如何将从 YouTube 下载的 HDR vp9.2 视频转换为 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?谢谢。
答案1
我得到了用户的答复priivt8在这个帖子在 macrumors 中。首先需要一个支持高位深度 HEVC 编码的较新版本的 ffmpeg,例如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 视频中的任何音频都不会出现问题。对于 Apple 设备识别的视频,可以使用“.m4v”。
转换后的视频现在可正常播放,Apple TV 4K(使用 Infuse Pro)和搭载 Android TV 7.0 的 Bravia 中的索尼视频均支持 HDR BT.2020。
可以向 ffmpeg 添加选项
-r 30
将帧速率从 60fps 降低到 30fps(以便可以通过 Apple TV 4K 中的 iTunes 播放)。
答案2
这是我的“万无一失”的版本:
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
它适用于所有 YouTube HDR 视频(使用youtube-dl
-f 337+bestaudio
)。
对于 4K 视频,此 ( -crf 12
) 将提供大约 18000-28000k 的视频比特率。-preset ultrafast
不过,我通常在匆忙时使用。:)
我不需要设置-pix_fmt yuv420p10le
等,因为这将继承来自 VP9 源文件的设置。