user17952421 Asked: 2024-02-12 11:47:51 +0800 CST2024-02-12 11:47:51 +0800 CST 2024-02-12 11:47:51 +0800 CST 如何使用 ffplay 选择正确的色彩空间和传递函数 772 我需要使用 ffplay 播放使用 GeForce Experience 屏幕录像机录制的视频,但渲染的视频颜色不正确。如果我用 VLC 播放器播放它,它可以正常工作,但我需要它只用 ffplay 播放。 这是使用 VLC 播放的视频,已正确渲染: 这是编解码器信息: 这就是 ffplay 渲染视频的方式: ffmpeg 1 个回答 Voted Best Answer Mokubai 2024-02-12T18:14:42+08:002024-02-12T18:14:42+08:00 褪色的颜色表明 HDR 到 SDR 转换存在问题。表示Color transfer function: SMPTE ST2084 (PQ)HDR 文件。 VLC 可能正确检测内容和显示的类型,并因此进行正确的色调映射。 您可能需要添加过滤器来进行色调映射。根据为什么 ffmpeg 的“tonemap”色调映射过滤器根据输出格式给我不同的颜色?正确的过滤器是 -vf "zscale=transfer=linear,tonemap=hable,zscale=transfer=bt709,format=gbrp" 所以你的 ffplay 命令将变成 ffplay -i input.mkv -vf "zscale=transfer=linear,tonemap=hable,zscale=transfer=bt709,format=gbrp"
褪色的颜色表明 HDR 到 SDR 转换存在问题。表示
Color transfer function: SMPTE ST2084 (PQ)
HDR 文件。VLC 可能正确检测内容和显示的类型,并因此进行正确的色调映射。
您可能需要添加过滤器来进行色调映射。根据为什么 ffmpeg 的“tonemap”色调映射过滤器根据输出格式给我不同的颜色?正确的过滤器是
所以你的 ffplay 命令将变成