gpt4 book ai didi

ios - 为什么在输出到文件时需要 Brad Larson 的 GPUImage 框架中的屏幕外缓冲区

转载 作者:行者123 更新时间:2023-11-29 13:33:59 25 4
gpt4 key购买 nike

Brad,我在您的 GPUImage 框架中看到您在 GPUImageMovieWriter.m 文件中定义了一个名为 movieFrameBuffer 和 movieRenderBuffer 的离屏帧和渲染缓冲区。有什么需要声明屏幕外帧缓冲区。不能用GPUImageView.m中定义的buffer来抓取像素吗?是支持720P和1080P的原因吗?

最佳答案

虽然在 GitHub 项目页面或我的论坛上提问可能更好,但我这样做有一个有趣的原因,我想我会澄清这一点。

在测试 AVAssetWriter 时,我发现使用 BGRA 帧可以显着提高编码性能。因此,当使用 glReadPixels() 抓取帧时,我需要对传入的过滤帧应用颜色混合着色器,以便以 BGRA 颜色格式读出它们。这是使用该屏幕外帧缓冲区渲染的。

在 iOS 5.0 上,我使用纹理缓存以避免需要使用 glReadPixels()。因为 iOS 设备上的内部纹理颜色格式是 BGRA,所以不需要颜色调配。但是,我仍然通过一个简单的直通着色器运行这些过滤后的帧,并将它们输出到屏幕外 FBO,以防到此为止的过滤器链以不同的分辨率呈现。这允许您以一种分辨率录制电影,并以另一种分辨率显示或执行其他操作。

作为一项优化,我希望在输入图像大小与输出影片编码大小匹配的情况下消除直通渲染步骤。这将需要在过滤器架构上做一些工作,因此可能暂时不会发生。

关于ios - 为什么在输出到文件时需要 Brad Larson 的 GPUImage 框架中的屏幕外缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11105568/

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