我有一个 sRGB 图像序列,我想将其转换为 .mp4。通过此转换,我想保留原始图像序列中的所有 sRGB 和伽马值。例如,我希望我的 png 文件中的红色 (255,0,0) 值保留在我的视频中。这意味着我想使用 RGB 颜色空间进行转换,并将伽马编码为 sRGB 作为传递函数。
目前我正在使用这个 ffmpeg 命令,它给出了准确的伽马值,但不准确的 RGB 值。任何帮助都非常感谢!
ffmpeg -r 60 -i input_%05d.png -c:v libx264 -pix_fmt yuv420p -colorspace rgb -color_trc iec61966-2-1 -y output.mp4
答案1
我要“回收”五月下列答案:
我建议您将视频转换为 BT.709,并将视频标记为 BT.709:
使用比例过滤器将视频转换为 BT.709:
scale=out_color_matrix=bt709:out_range=tv
使用过滤器将视频标记为 BT.709“电视范围”(有限范围)
bsf
:-bsf:v h264_metadata=video_full_range_flag=0:colour_primaries=1:transfer_characteristics=1:matrix_coefficients=1
命令:
ffmpeg -r 60 -i input_%05d.png -vf scale=out_color_matrix=bt709:out_range=tv -c:v libx264 -pix_fmt yuv420p -bsf:v h264_metadata=video_full_range_flag=0:colour_primaries=1:transfer_characteristics=1:matrix_coefficients=1 -y output.mp4
注意:
如果 PNG 图像文件有嵌入的 ICC 配置文件,上述解决方案可能不起作用。