我们希望允许用户将动画“贴纸”放置在他们在应用程序中录制的视频上,并正在考虑合成这些贴纸的不同方法。
AVAssetWriter
从基于帧的动画贴纸(可以旋转,并对其应用了翻译)以代码形式创建视频。问题在于AVAssetWriter
仅写入文件,而不能保持透明。这将使我们无法使用AVMutableComposition
将其覆盖在视频上。 .mov
文件,并使用AVMutableComposition
和layer
指令与transformations
进行合成。问题在于,没有工具可以轻松地将基于PNG
的帧转换为.mov
,同时保持alpha通道,因此我们必须编写自己的工具。 CALayers
。这可能会在视频的每帧速率中创建非常多的图层。 还是有更好的主意?
谢谢。
最佳答案
我建议您看看我关于这个特定主题的blog post。基本上,此示例显示了如何从附加到应用程序资源的文件中加载RGBA视频数据。这是从包含桌面上Animation RGBA数据的.mov导入的。由于普通的H.264无法直接支持Alpha通道(如您所知),因此需要执行转换步骤才能将数据从桌面获取到iOS。请注意,较旧的硬件在解码H.264用户录制的视频时可能会遇到问题,然后再解码时会出现问题,因此使用CPU代替H.264硬件粘贴标签的这种方法实际上更好。