我有一系列BMP(或PNG)图像,我想转换为XVID和MP5电影格式.
编码工作,但生成的电影有一个褪色的颜色外观,黑色以某种方式移动到RGB 16,最亮的255值向下移动到235.我希望输出电影使用相同的0到255颜色作为源帧.
现在FFMPEG存在各种相互冲突的doco,所以我在跳跃,有人有一个示例命令行来完成我需要的工作.我已经尝试了各种pix_fmt标志,但没有一个在全色范围内获得输出影片.
对于XVID
ffmpeg.exe -framerate 60 -i "D:\SRC%05d.BMP" -c:v mpeg4 -vtag xvid -qscale 1 -y "D:\OUTPUT.AVI""
Run Code Online (Sandbox Code Playgroud)
对于H265
ffmpeg.exe -framerate 60 -i "D:\SRC%05d.BMP" -c:v libx265 -x265-params lossless=1 -s 3840x2160 -pix_fmt yuvj420p -an -y "D:\OUTPUT.MP4""
Run Code Online (Sandbox Code Playgroud)
yuvj420p应该提供完整的颜色范围,但ffmpeg抱怨"不兼容的像素格式'yuvj420p'用于编解码器'libx265',自动选择格式'yuv420p'"
那么,是否有任何FFMPEG大师可以给我魔术开关来获得我的输出电影与黑色黑色和颜色,保持原始帧文件0-255 RGB值.
输出范围可以被强制,颜色范围元数据也可以被强制,但是您的播放器或编辑器可能会强制进行有限范围的解释,因此,需要告诫代码转换器.
话虽如此,您必须设置两个标志:第一个用于缩放器,然后用于元数据.
ffmpeg.exe -framerate 60 -i "D:\SRC%05d.BMP" -vf format=yuv420p -dst_range 1 -color_range 2 -c:v mpeg4 -vtag xvid -qscale 1 -y "D:\OUTPUT.AVI""
Run Code Online (Sandbox Code Playgroud)
(因为你正在使用mpeg4编码器,这不是Xvid,这是-c:v libxvid;你需要链接这个lib才能使用它.)
对于x265,可以使用编码器标志设置范围.
ffmpeg.exe -framerate 60 -i "D:\SRC%05d.BMP" -c:v libx265 -x265-params lossless=1:range=full -s 3840x2160 -dst_range 1 -pix_fmt yuv420p -an -y "D:\OUTPUT.MP4""
Run Code Online (Sandbox Code Playgroud)