我需要实时处理来自远程视频的视频帧,并将处理后的帧呈现在屏幕上。
我曾尝试使用 AVAssetReader,但由于 AVURLAsset 正在访问远程 URL,调用AVAssetReader:initWithAsset
将导致崩溃。
AVCaptureSession 看起来不错,但它适用于相机而不是视频文件(更不用说远程文件)。
因此,我现在正在探索:在 AVPlayerLayer 中显示远程视频,然后使用 GL ES 访问显示的内容。
问题:
如何将 AVPlayerLayer(或一般的 CALayer)转换为 CAEAGLLayer 并使用 读取像素
CVOpenGLESTextureCacheCreateTextureFromImage()
?还是有其他更好的方法?
注意:性能是一个重要的考虑因素,否则一个简单的屏幕捕获技术就足够了。