iOS:视频为GL纹理,具有Alpha透明度

rya*_*ins 10 video transparency alpha opengl-es ios

我正在尝试找出在GL纹理上显示视频的最佳方法,同时保留Alpha通道的透明度.

关于视频作为GL纹理的信息在这里:是否可以在iOS中使用视频作为GL的纹理?iOS4:如何将视频文件用作OpenGL纹理?.

使用ffmpeg来帮助实现alpha透明度,而不是应用程序商店友好: iPhone:在UIView上显示半透明视频?

视频源将在绿色屏幕前拍摄,用于色度键控.视频可以不受影响而离开绿屏或在视频编辑套件中处理并导出到带有Alpha的Quicktime Animation或Apple Pro Res 4444.

我认为有多种方法可能有效,但我还没有找到完整的解决方案.

  1. 视频的实时阈值处理寻找绿色删除
  2. 弄清楚如何使用上面提到的Quicktime编解码器来保存alpha通道
  3. 将两个视频混合在一起:1)带RGB的主视频2)使用alpha蒙版分离视频

我很想了解iOS和OpenGL ES 2.0的最佳方法

谢谢.

Dun*_*n C 0

Apple 在 2011 年 WWDC 上展示了一个名为 ChromaKey 的示例应用程序,该应用程序展示了如何处理传递到 OpenGL 纹理的视频帧、进行操作以及选择性地写入视频文件。

(以非常高效的方式)

它被编写为使用来自摄像机的馈送,并使用非常粗糙的色键算法。

正如另一张海报所说,您可能想跳过色键代码并事先自己进行颜色剔除。

重写 Chromakey 示例应用程序以使用视频文件而不是相机源作为输入应该不难,并且禁用 chormakey 代码也很容易。

您需要修改视频输入的设置以期望 RGBA 数据而不是 RGB 或 Y/UV。示例应用程序设置为使用 RGB,但我见过 Apple 的其他示例应用程序使用 Y/UV。