我有一个看起来应该是一个非常简单的问题,但事实证明它比我预期的要困难得多。这是问题:
我有一个相当大的图像序列,由编号的帧组成(从 Maya 输出,值得一提)。这些图像目前是 Targa (.tga) 格式,但如果这很重要,我可以将它们转换为 PNG 或其他任意格式。重要的是,他们有一个 Alpha 通道。
我想做的是以编程方式将它们变成视频剪辑。格式并不重要,但它必须是无损的并且具有 Alpha 通道。Quicktime 容器中的未压缩视频可能是理想的。
我最初的想法是 ffmpeg,但是在浪费了一天的大部分时间之后,它似乎根本不支持 alpha 通道。要么我遗漏了一些东西,要么底层的 libavcodec 没有做到这一点。
那么,这里的正确方法是什么?像 ffmpeg 这样的命令行工具会很好,但是任何在 Windows 上运行并且可以从脚本调用的解决方案都可以。
注意:在您的视频中包含一个 alpha 通道实际上并不少见,如果您想将它合成到另一个视频剪辑或静止图像的顶部,它非常有用。据我所知,未压缩视频、Quicktime Animation 编解码器和 Sorenson Video 3 编解码器都支持透明,而且我听说 H.264 也支持。我们真正谈论的是 32 位色深,它得到了相当广泛的支持;Quicktime .mov 文件和 Windowss .avi 文件都可以处理它,而且可能更多。
Quicktime Pro 非常乐意将图像序列转换为 32 位 .mov 文件。点击导出,将颜色深度更改为“Millions of Colors+”,选择动画编解码器,将质量提高到 100,就可以了 - 无损压缩视频,带有 alpha 通道,它几乎可以在编解码器后的任何地方播放自 1.0 版以来一直是 Quicktime 的一部分。问题是,Quicktime Pro 没有任何类型的命令行界面(至少在 Windows 上)。ffmpeg 支持使用 Quicktime Animation 编解码器(它称为 qtrle)进行编码,但它仅支持 24 位的位深度。
问题在于找不到支持 Alpha 通道的视频格式。Quicktime Animation 将是理想的,但即使是未压缩的视频也应该可以工作。问题是找到一个支持它的工具。