FFmpeg 完全匹配十六进制颜色

FFmpeg 完全匹配十六进制颜色

我正在尝试使用 ffmpeg 使用以下命令生成具有彩色背景的视频。

ffmpeg.exe -t 5 -f lavfi -i color=c=0x1E3932:s=1094x863 -vcodec libx264 -pix_fmt yuv420p output_test.mp4

但是生成的绿色是错误的;#1B3531当我截取视频的屏幕截图并采样颜色时,我得到的是错误的绿色。我需要它与网站上的颜色背景相匹配,这就是我需要该特定编解码器和像素格式的原因。我不能将 webm 或其他编解码器与我必须支持的平台/浏览器一起使用。

有没有办法让color源在我想要的颜色空间中输出正确的十六进制值?有没有办法使用colorspacecolormatrix过滤器来实现这种效果(据我了解,这种颜色变化来自从 RGB 到 YUV 的转换)?

答案1

您需要使用 -vf scale=out_color_matrix=bt709 转换为矩阵,并使用 -colorspace 1 标记输出。我还建议标记 -color_range tv(这是 scale 的默认值)、标记 -color_trc iec61966_2_1 并将 -color_primaries 标记为 bt709。

相关内容