我有950个PNG文件,它们打算成为38秒视频轨道中的单独帧,每秒25帧。除了序列号之外,文件名是相同的,这在这种情况下是惯常的。
我希望生成一个广泛支持格式的容器,理想情况下WebM,如果可以满足所有条件,或者MPEG-4,例如,现代浏览器支持的编解码器,用于播放,从这一系列的PNG图像我有。问题在于颜色被移位并且解码视频中的背景颜色不再与从PNG图像中的背景颜色采样的相同RGB三元组匹配。这会导致视频在我嵌入视频的HTML页面上的预期背景中显示出来。
我试过这么简单:
ffmpeg -f image2 -i image%03d.png output.webm
这确实给了我一个装在WebM容器中的25 fps VP9视频轨道。
PNG图像是动画风格,具有纯色背景和简单的形状,为前景设置动画。它们似乎是未标记的颜色(这就是Adobe Bridge告诉我的,我认为这意味着没有嵌入的颜色配置文件或对它的引用)。我上面尝试的问题是,即使容器在Chrome中播放,从PNG图像采样的RGB三元组#ED4D56
的背景颜色也不会与正在播放的视频中出现的背景颜色在感知上匹配。
这是RGB到YUV(编码)到RGB(回放)颜色转换的不可避免的副作用吗?有什么方法可以缓解这种情况吗?我并不坚持使用RGB对视频轨道中的帧进行编码,我认为YUV很好,只要现代浏览器播放这些帧时,在解码和显示时会产生相同的(在可忽略的误差范围内)RGB三元组。 (多个)帧。
我的问题是,使用什么命令行ffmpeg
可以尝试缓解这个问题?我愿意切换视频编解码器,像素格式,在ffmpeg中启用颜色管理(如果存在)等。