标题: 用ffmpeg修改/纠正HEVC视频的HDR元数据错误
时间: 2022-04-18发布,2022-04-22修改
以下方法是修改元数据,不是转换视频内容。修改元数据不会让非HDR内容具有HDR效果,也不能让HDR内容在非HDR设备中正常显示。
以下方法的用途是纠正原始视频文件中的元数据错误,比如HDR内容丢失了HDR元数据,或者误把非HDR内容标记为HDR等情况。
只有在原始视频元数据不正确/丢失的情况下,才应该使用下述方法进行修改。如果你想转换视频内容(比如把正常的HDR视频转换为正常的SDR视频),则应该使用其他参数,下述方法不能达到目的,只会得到色彩异常的视频文件。
注意:仅限HEVC,如果原始视频不是HEVC,需要先转换为HEVC才能使用该方法。
把视频强行标记为HDR(BT2020/ST2084/PQ):
ffmpeg -i input.mp4 -acodec copy -vcodec copy -bsf:v hevc_metadata=colour_primaries=9:transfer_characteristics=16:matrix_coefficients=9 output.mp4
把视频强行标记为非HDR(BT709):
ffmpeg -i input.mp4 -acodec copy -vcodec copy -bsf:v hevc_metadata=colour_primaries=1:transfer_characteristics=1:matrix_coefficients=1 output.mp4
把视频强行标记为HDR(HLG):
ffmpeg -i input.mp4 -acodec copy -vcodec copy -bsf:v hevc_metadata=colour_primaries=9:transfer_characteristics=18:matrix_coefficients=9 output.mp4
也可用于格式工厂,把-bsf:v hevc_metadata=colour_primaries=9:transfer_characteristics=16:matrix_coefficients=9
一段添加到ffmpeg参数里即可。
注意:仅限HEVC,如果原始视频不是HEVC,需要先转换为HEVC才能使用该方法。
参数手册:T-REC-H.265-202108-I!!PDF-E.pdf(11.43 MB)
E.3.1 VUI parameters semantics (页码420起)
Table E.3 到 E.5 colour_primaries 等参数(页码423起)
『回复列表(9|隐藏机器人聊天)』
ffmpeg -i HLG测试:数据级别完全.mkv -c copy -bsf:v hevc_metadata=video_full_range_flag=0 HLG测试:数据级别完全,错标为有限.mkv
ffmpeg -i HLG测试:数据级别有限.mkv -c copy -bsf:v hevc_metadata=video_full_range_flag=1 HLG测试:数据级别有限,错标为完全.mkv