型号较新的 iPhone 默认录制高动态范围(High Dynamic Range,HDR)的视频,特点是亮度范围非常宽,能反映真实世界的亮度。但是在普通显示器上观看,其视觉效果取决于播放器,有时会发生严重的过曝。这时需要从 HDR 向标准动态范围(SDR)转换,涉及的技术为色调映射(Tone Mapping)。
在 ffmpeg 中需要使用 zscale
这个参数来完成。完整命令示例如下,参数针对 iPhone 进行过优化,对于其他来源的视频可自行查文档调整参数:
ffmpeg -i 输入文件 -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p 输出文件
若提示未知参数,需要先将 ffmpeg 升级到较新的版本。