【问题标题】:Colors messed up when converting an image sequence to video using ffmpeg使用 ffmpeg 将图像序列转换为视频时颜色混乱
【发布时间】:2021-01-11 23:24:30
【问题描述】:

我正在使用 ffmpeg 从 PNG 序列生成视频,但与源文件相比,生成的视频颜色错误。获得正确的颜色很重要,因为我们将视频资源与图像资源并排使用,并且颜色必须完美匹配(或者至少在视觉上尽可能相似,以免产生刺耳感)。

我们的 PNG 输入文件采用 sRGB 颜色配置文件。

这是我们正在运行的命令:

ffmpeg -r 30 -f image2 -s 1920x1080 -i bg_analyse_%05d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p output5.mp4

下面是源 PNG(左)和视频中的同一帧(右)的比较:

根据我们收集到的信息,H.264 不支持将 sRGB 作为内置颜色配置文件,因此我认为 ffmpeg 必须执行某种颜色转换。但是,默认的 ffmpeg 设置似乎导致转换错误。

如何让 ffmpeg 导出颜色与原生 H.264 颜色配置文件中的 PNG 源文件在视觉上接近的视频?我尝试了各种标志来尝试指定输入颜色配置文件等等,但还没有产生预期的结果。

在使用 ffmpeg 从 PNG 序列生成视频时,我没有看到很多提及颜色配置文件。一定是因为大多数人对输出颜色不太挑剔,或者根本没有注意到?然而,当我们将源资产与视频输出并排放置在我们的应用中时,区别就很明显了。

我已经尝试在多个播放器中播放视频文件,以确保它不是显示问题(QuickTime Player X、Chrome 等)。所有播放器中的视频完全相同(比源 PNG 更轻)。


编辑 1:

最后,图像和视频将在 Electron (Chromium) 中显示。如果这改变了视频的生成方式。


编辑 2:

我们有一个从中导出文件的 AfterEffects 项目。我们找不到任何方法来输出正确的颜色,因此我们希望使用带有 PNG 序列(AE 正确导出)的 ffmpeg 可以让我们更好地控制最终颜色。也欢迎有关如何在 AE 中正确管理颜色的想法。

【问题讨论】:

  • @szatmary 非常有趣的信息,但我无法弄清楚我需要在 ffmpeg 标志方面做什么,以便通过我们的 sRGB 输入文件与 BT 获得正确的结果。您在文章中使用的 601 测试文件。还有其他见解吗?
  • @szatmary 请原谅线程劫持,但ffmpeg -y -f lavfi -i nullsrc=s=320x240:r=25:d=1 -c:v libx264 -profile:v baseline -crf 18 -color_range pc 601.mp4 将适用于所有操作系统。
  • 蹩脚的建议是尝试 APNG:ffmpeg -framerate 30 -i bg_analyse_%05d.png output.apng。无需处理色彩空间转换。我没有在 Electron/Chromium 中进行测试。

标签: video ffmpeg


【解决方案1】:

获得正确的颜色很重要,因为我们将视频资源与图像资源并排使用,并且颜色必须完美匹配。

那么,您将需要一种完全不同的方法。没有有损视频压缩可以达到您想要的效果。

如果此视频是某种动画,则您必须找到另一种方法来重新创建它。

您也可以尝试解决问题。例如,也许您的叠加 PNG 图形利用 Alpha 通道将它们的颜色混合到视频的颜色。

【讨论】:

  • 更正:颜色必须尽可能接近,但我知道它不可能是 100% 完美匹配。当然有一种方法可以使视频以与同一监视器上的图像相似的方式显示颜色吗?另一件事:我们有一个从中导出文件的 AfterEffects 项目。我们找不到任何方法来输出正确的颜色,因此我们希望使用带有 PNG 序列(AE 正确导出)的 ffmpeg 可以让我们更好地控制最终颜色。也对如何在 AE 中正确管理颜色持开放态度。
  • @Form 这个视频有什么内容?如果这只是 AfterEffects 的动画,为什么不直接在浏览器中制作动画呢?您将节省大量带宽,并且看起来会更好。我认为 GreenSock 在某些情况下可以或曾经可以直接从 AfterEffects 项目中导入:greensock.com 还有其他类似的工具。
  • 视频太复杂,无法使用 GreenSock 或类似软件轻松重现(它包含效果等)。否则,它确实是一种选择。此外,在网络上制作动画会将工作量从内容制作者转移到网络开发方面,这对我们来说现在不是一个选择(时间限制)。
  • 如果您已经阅读并应用了@szatmary 的建议,但您仍然对颜色输出不满意,那么您无能为力。您必须在有损视频的限制范围内工作。
猜你喜欢
  • 2014-03-02
  • 2011-03-08
  • 2017-02-26
  • 2015-07-23
  • 1970-01-01
  • 2017-11-10
  • 2019-07-06
  • 2019-02-22
  • 1970-01-01
相关资源
最近更新 更多