You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用FFmpeg将HDR10+/Dolby Vision视频转换为HDR视频?

转码HDR10+/Dolby Vision至标准HDR(HDR10)的FFmpeg命令

以下是针对两种格式的转码方案,核心是让FFmpeg生成符合HDR10标准的静态元数据,同时保留原视频的高动态范围特性:

1. 处理HDR10+视频

ffmpeg -i input_hdr10plus.mkv -c:v libx265 -crf 18 -preset medium -x265-params "hdr-opt=1:repeat-headers=1:colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc:master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1):max-cll=0,0" -c:a copy output_hdr10.mp4

参数说明:

  • -c:v libx265:选用H.265编码,适配HDR视频的压缩需求
  • -crf 18:画质控制参数,18-22区间的画质接近原片,数值越小画质越好、文件越大
  • -preset medium:平衡编码速度与画质,可按需替换为fast(更快)或slow(画质更优)
  • -x265-params中的关键配置:
    • hdr-opt=1:启用HDR专属优化
    • colorprim=bt2020、transfer=smpte2084、colormatrix=bt2020nc:指定HDR10标准的色彩空间、传输函数与色域矩阵
    • master-display和max-cll:建议用ffprobe input_hdr10plus.mkv提取原视频的实际元数据替换,避免默认值导致的色彩偏差

2. 处理Dolby Vision视频

Dolby Vision多数基于HDR10底层,转码命令与HDR10+类似:

ffmpeg -i input_dolbyvision.mkv -c:v libx265 -crf 18 -preset medium -x265-params "hdr-opt=1:repeat-headers=1:colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc:master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1):max-cll=0,0" -c:a copy output_hdr10.mp4

额外说明:

  • 若原视频为Dolby Vision Profile 8.x,FFmpeg会自动提取其中的静态HDR元数据生成HDR10输出
  • 务必用ffprobe获取原视频的真实master-display和max-cll值,这是保证色彩表现准确的关键

实用提示

  • 音频无需转码时用-c:a copy,如需转码为AAC可替换为-c:a aac -b:a 192k
  • 转码前用ffmpeg -v error -select_streams v:0 -show_entries stream=color_primaries,transfer_characteristics,color_space,master_display,max_cll -of default=noprint_wrappers=1:nokey=1 input_file.mkv一键提取所有HDR元数据,直接复制到命令中即可

内容的提问来源于stack exchange,提问作者HONGSM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:28:06