Ios 什么';在录制的视频上合成基于帧的动画贴纸的最佳方法是什么?
我们希望允许用户将动画“贴纸”放置在他们在应用程序中录制的视频上,并考虑采用不同的方式合成这些贴纸Ios 什么';在录制的视频上合成基于帧的动画贴纸的最佳方法是什么?,ios,objective-c,swift,video,avfoundation,Ios,Objective C,Swift,Video,Avfoundation,我们希望允许用户将动画“贴纸”放置在他们在应用程序中录制的视频上,并考虑采用不同的方式合成这些贴纸 使用AVAssetWriter从基于帧的动画贴纸(可以旋转,并对其应用翻译)创建代码中的视频。问题在于AVAssetWriter只写入文件,不保持透明。这将防止我们使用AVMutableComposition在视频中过度使用它 提前为我们的基于框架的贴纸创建.mov文件,并使用AVMutableComposition和layer指令以及转换将其合成。问题是没有工具可以轻松地将基于PNG的帧转换为.
AVAssetWriter
从基于帧的动画贴纸(可以旋转,并对其应用翻译)创建代码中的视频。问题在于AVAssetWriter
只写入文件,不保持透明。这将防止我们使用AVMutableComposition
在视频中过度使用它.mov
文件,并使用AVMutableComposition
和layer
指令以及转换将其合成。问题是没有工具可以轻松地将基于PNG
的帧转换为.mov
,同时维护alpha通道,我们必须编写自己的
CALayers
。这可能会在视频的每帧速率中创建大量层谢谢。我建议你看看我关于这个特定主题的报告。基本上,此示例显示如何从附加到应用程序资源的文件加载RGBA视频数据。这是从桌面上包含动画RGBA数据的.mov导入的。将数据从桌面获取到iOS需要一个转换步骤,因为普通H.264不能直接支持Alpha通道(正如您所发现的)。请注意,较旧的硬件可能会在解码H.264用户录制的视频时出现问题,然后再解码另一个用户录制的视频,因此这种使用CPU而不是H.264硬件制作标签的方法实际上更好