gpt4 book ai didi

ios - 您如何使用 Open GL ES 2.0(着色器)进行视频处理?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:00:37 25 4
gpt4 key购买 nike

这个问题是关于 iOS 的。在 Android 上,使用 OpenGL ES 2.0 在 View 上渲染纹理(用于预览)或将其发送到编码器(用于文件写入)非常容易。我一直没能在 iOS 上找到任何使用着色器效果实现视频播放(从文件预览视频效果)和视频录制(保存带有效果的视频)的教程。这在 iOS 上可行吗?

我遇到了一个关于着色器的演示,名为 GLCameraRipple但我不知道如何更一般地使用它。例如:使用 AVFoundation

[编辑]

我践踏了this tutorial about OpenGL ES, AVFoundation and video merging on iOS在搜索片段时。这是另一个有趣的入口。

最佳答案

在 iOS 领域,它们都是非常低级的东西,需要连接一大堆东西。

您可能感兴趣的主要内容是 CVOpenGLESTextureCache .正如 CV 前缀所暗示的,它是 Core Video 的一部分,在这种情况下,它的主要兴趣点是 CVOpenGLESTextureCacheCreateTextureFromImage,它“在图像缓冲区和底层纹理对象之间创建实时绑定(bind)”。该文档进一步为您提供了关于将此类图像用作 GL_COLOR_ATTACHMENT 的明确建议——即返回的纹理 ID 可用作 OpenGL 的源和目标。

绑定(bind)的图像缓冲区将绑定(bind)到 CVImageBuffer ,其中一种类型是 CVPixelBuffer .您可以为 AVAssetWriterInputPixelBufferAdaptor 提供像素缓冲区连接到 AVAssetWriter以便输出到视频。

在另一个方向,AVAssetReaderOutput附加到 AVAssetReader会卖CMSampleBuffers可以查询附加的图像缓冲区(如果你有视频进来而不仅仅是音频,那么会有一些)然后可以通过纹理缓存映射到 OpenGL。

关于ios - 您如何使用 Open GL ES 2.0(着色器)进行视频处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31144368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com