在录制的video上合成基于帧的animation贴纸的最佳方法是什么?

我们希望允许用户将animation“贴纸”放在他们在应用程序中录制的video中,并考虑采用不同的方法来组合这些贴纸。

  1. 使用AVAssetWriter从基于帧的animation贴纸(可以旋转,并应用翻译)创buildAVAssetWriter 。 问题是AVAssetWriter只写入一个文件,并不保持透明度。 这将阻止我们能够使用AVMutableComposition对video进行AVMutableComposition

  2. 提前创build.mov文件用于我们的基于框架的贴纸,并使用AVMutableComposition和带有transformations layer指令进行AVMutableComposition 。 这个问题是没有工具可以轻松地将我们的PNG帧转换为.mov同时保持一个alpha通道,我们必须写我们自己的。

  3. 为贴图animation中的每个帧创build单独的CALayers 。 这可能会在video的每帧速率上创build大量的图层。

还是有更好的点子?

谢谢。

我build议你看看我在这个特定主题的博客文章 。 基本上,这个例子展示了RGBAvideo数据如何从附加到应用程序资源的文件中加载。 这是从包含桌面上的animationRGBA数据的.mov导入的。 由于普通H.264不能直接支持Alpha通道,因此需要进行转换步骤才能将数据从桌面传输到iOS。 请注意,较旧的硬件在解码H.264用户录制的video时可能会遇到问题,然后又会出现另一个问题,所以这种使用CPU而不是H.264硬件的方法实际上更好。