iPhone 使用 open gl 滤镜保存慢速视频
我正在使用带有预设 AVCaptureSessionPresetMedium 的 avcapturesession 来捕获视频,我正在使用着色器使用 opengl 对此视频应用效果。 我使用 assetWriter 将视频写入 mp4 文件。问题是,结果视频很慢,特别是当我添加音频输出时。
这就是我的代码的工作原理:
- 在 - (无效)捕获输出:(AVCaptureOutput *)captureOutput... 函数我将 opengl 过滤器应用于捕获的 帧
- 然后检查 captureoutput 是否是 视频或音频如果是视频,我使用 glReadPixels 创建一个 我发送到的 CVPixelBufferRef AVAssetWriterInputPixelBufferAdaptor 写
- 如果是音频的话,我直接 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 :
- In -
(void)captureOutput:(AVCaptureOutput
*)captureOutput... function I apply the opengl filter to the captured
frames - 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 - 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论