iPhone 使用 open gl 滤镜保存慢速视频

发布于 2024-11-03 17:40:39 字数 479 浏览 3 评论 0原文

我正在使用带有预设 AVCaptureSessionPresetMedium 的 avcapturesession 来捕获视频,我正在使用着色器使用 opengl 对此视频应用效果。 我使用 assetWriter 将视频写入 mp4 文件。问题是,结果视频很慢,特别是当我添加音频输出时。

这就是我的代码的工作原理:

  1. 在 - (无效)捕获输出:(AVCaptureOutput *)captureOutput... 函数我将 opengl 过滤器应用于捕获的 帧
  2. 然后检查 captureoutput 是否是 视频或音频如果是视频,我使用 glReadPixels 创建一个 我发送到的 CVPixelBufferRef AVAssetWriterInputPixelBufferAdaptor 写
  3. 如果是音频的话,我直接 CMSampleBufferRef

如果有人可以告诉我我的方法有什么问题或者哪个部分应该使结果视频变慢?

I am using avcapturesession with a preset AVCaptureSessionPresetMedium to capture video, i am applying effect on this video with opengl using shaders.
I use assetWriter to write the video to an mp4 file. The problem is that the resulted video is slow specially when I add audio output.

This is how my code works :

  1. In -
    (void)captureOutput:(AVCaptureOutput
    *)captureOutput... function I apply the opengl filter to the captured
    frames
  2. then check if the captureoutput is
    video or audio if it's video, I use
    glReadPixels to create a
    CVPixelBufferRef that I send to an
    AVAssetWriterInputPixelBufferAdaptor
    to write it
  3. if it's audio, I write directly the
    CMSampleBufferRef

If someone can tell me what's wrong with my approach or which part is supposed to make the resulted video slow?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文