我们希望允许用户将动画“贴纸”放置在他们在应用程序中录制的视频上,并正在考虑合成这些贴纸的不同方法。

  • 使用AVAssetWriter从基于帧的动画贴纸(可以旋转,并对其应用了翻译)以代码形式创建视频。问题在于AVAssetWriter仅写入文件,而不能保持透明。这将使我们无法使用AVMutableComposition将其覆盖在视频上。
  • 提前为基于帧的贴纸创建.mov文件,并使用AVMutableCompositionlayer指令与transformations进行合成。问题在于,没有工具可以轻松地将基于PNG的帧转换为.mov,同时保持alpha通道,因此我们必须编写自己的工具。
  • 为贴纸动画中的每个帧创建单独的CALayers。这可能会在视频的每帧速率中创建非常多的图层。

  • 还是有更好的主意?

    谢谢。

    最佳答案

    我建议您看看我关于这个特定主题的blog post。基本上,此示例显示了如何从附加到应用程序资源的文件中加载RGBA视频数据。这是从包含桌面上Animation RGBA数据的.mov导入的。由于普通的H.264无法直接支持Alpha通道(如您所知),因此需要执行转换步骤才能将数据从桌面获取到iOS。请注意,较旧的硬件在解码H.264用户录制的视频时可能会遇到问题,然后再解码时会出现问题,因此使用CPU代替H.264硬件粘贴标签的这种方法实际上更好。

    10-07 19:53
    查看更多