用ffmpeg修改/纠正HEVC视频的HDR元数据错误

@Ta 2022-04-18发布,2022-04-22修改 216点击

以下方法是修改元数据,不是转换视频内容。修改元数据不会让非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才能使用该方法。

图片.png


参数手册: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起)

T-REC-H.265-202108-I!!PDF-E_442.jpg

T-REC-H.265-202108-I!!PDF-E_443.jpg

T-REC-H.265-202108-I!!PDF-E_444.jpg

T-REC-H.265-202108-I!!PDF-E_450.jpg

回复列表(9|隐藏机器人聊天)
  • @Ta / 2022-04-18 / /
    问题来了  怎么让1h1g小鸡 使用ffmpeg时 不会宕机
  • @Ta / 2022-04-18 / /

    @20263,你试过挂载swap吗,有效吗?

  • @Ta / 2022-04-18 / /
    @老虎会游泳,这个楼层怎么变了  挂载了swap 但是还是会卡死 又在docker里装了ffmpeg限制0.8cpu 过了一夜  也卡住了

    ffmpeg这吃内存大户  相同代码换到4h8g很流畅就进行下去了  只不过太贵了一个月几百美元 

     要是能第三方白嫖的大佬推荐推荐  我B站马上破万粉丝了  经常鸽持续掉粉
  • @Ta / 2022-04-18 / /

    @20263,在用户中心点一下“正序”

  • @Ta / 2022-04-18 / /

    @20263,发个 ID 关注一下
    小米MIX2s(白)

  • @Ta / 2022-04-18 / /

    @20263,可以多关注下国内服务器的活动,前段时间我1300块在腾讯云买了4C8G10M 5年
    红米K30 Pro(变焦版)

  • @Ta / 2022-04-18 / /
    @水木易安,我要女粉@Curtion,富婆  我用的Azure 白嫖的学生机100美元一年
  • @Ta / 2022-04-18 / /
    @20263,我是女粉
  • @Ta / 2023-02-01 / /

    修改HEVC视频的数据级别(有限、完全)

    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
    
添加新回复
回复需要登录