2

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

这就是我的代码的工作方式:

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

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

4

0 回答 0