我想修改CMSampleBuffer的内容,然后将其写入具有AVAssetWriter/AVAssetWriterInput的文件.
我这样做的方法是创建一个Core Graphics位图上下文然后绘制它,但它太慢了.具体来说,我需要将图像绘制到缓冲区中.
那么可以提供某种关于如何更有效地做到这一点的提示或建议吗?
我想过使用OpenGL来实现它,即首先从CMSampleBuffer创建一个纹理A. 然后将从我想要绘制的图像创建的纹理B渲染到纹理A中,然后从OpenGL检索支持纹理A的数据,最后将该数据移交给AVAssetWriter/AVAssetWriterInput.但是文档说,将纹理数据从GPU传输回CPU有点贵.
那么,有关如何处理的任何建议?
提前致谢