ffmpeg - 如何使用 PNG 文件创建视频并保持相同的颜色

ffmpeg - 如何使用 PNG 文件创建视频并保持相同的颜色

我使用 PNG 文件来制作视频。

我使用 Inkscape 创建 PNG 文件。

Inkscape 中的 SVG 文件和在 Chrome 中打开的 PNG 文件显示相同的颜色。

尽管如此,视频的颜色(在 VLC 和 Windows 的电影和电视应用中打开)是相同的但与 PNG 文件不同

ffmpeg -framerate 1/6 -i 1_png_srgb.png -c:v libx264 -r 30 -pix_fmt yuvj420p output.mp4

PNG 的颜色: 在此处输入图片描述

视频颜色: 在此处输入图片描述

如何做才能得到相似的颜色?

对于那些奇怪地将这两种颜色视为相同的人,这里有一个两者的合成图(因为两者现在共享相同的配置文件,即使在颜色兼容最差的浏览器 [Firefox 和 Chrome] 上也应该可以看到差异)

在此处输入图片描述

答案1

您可以使用libx264rgb过滤器来代替,libx264以便更好地兼容 PNG 使用的 RGB 像素格式:

ffmpeg -framerate 1/6 -i 1_png_srgb.png -c:v libx264rgb -r 30 output.mp4

然后,ffmpeg 默认使用bgr24默认像素格式,并且颜色更有可能匹配。

也可以看看文档

libx264rgb 编码器与 libx264 相同,只是它接受打包的 RGB 像素格式作为输入而不是 YUV。

相关内容