我想使用ffmpeg将 tiff 16bit rec709 的图像序列转换为 JPEG sRGB 的图像序列。
# How would I indicate ffmpeg source is rec709 and output is srgb?
ffmpeg -start_number 1001 -i input_seq_rec709.%04d.tif output_seq_srgb.%04d.jpg
从ffmpeg文档中,我可以看到转换选项(colorspace
和colormatrix
)。从我的收集中,rec709就像bt709。但我不确定sRGB是什么,知道吗?
https://ffmpeg.org/ffmpeg-filters.html#colorspace
我希望使用这些标志之一,但是srgb对于FFMPEG不是有效的选择。
-vf "scale=in_color_matrix=bt709:out_color_matrix=srgb"
-colormatrix=bt709:srgb'
谢谢
答案 0 :(得分:0)
如果这实际上对您有用,我并不乐观,但是我与ffmpeg纠缠不清,调出了以下标志来指示sRGB伽玛。这是针对H.264 TRC标志“ -color_trc iec61966_2_1”的。
答案 1 :(得分:0)
您的文档引用了色彩空间过滤器(这是正确的选择),但是您尝试使用其他过滤器。
色彩空间过滤器仅支持每通道8、10或12位的输入深度,因此ffmpeg将使用其常规缩放器将深度预先采样为8 bpc。让我们通过手动向下采样到更高的深度来延迟它。
ffmpeg -start_number 1001 -i input_seq_rec709.%04d.tif -vf format=yuv444p12le,colorspace=all=bt709:trc=srgb:format=yuv422p output_seq_srgb.%04d.jpg
上面的命令假定输入(TIFF)的颜色标志都已设置(并正确设置)。如果没有,并且色域显示错误,请使用
ffmpeg -color_primaries 1 -color_trc 1 -colorspace 1 -start_number 1001 -i input_seq_rec709.%04d.tif -vf format=yuv444p12le,colorspace=all=bt709:trc=srgb:format=yuv422p output_seq_srgb.%04d.jpg
现在,如果您使用的播放器或后续应用的解码器不知道应用正确的伽玛功能,那么所有这些都是学术性的。