我正在尝试创建一个具有以下功能的相机捕捉会话:
虽然前两件事不成问题,但我还没有找到将最后两件事情分开处理的方法。
目前,我使用的是一个单一的AVCaptureVideoDataOutput,首先运行视频记录,然后在相同的功能中对帧进行处理,在同一个队列中。(请参阅代码这里和这里)
唯一的问题是,视频捕获4k视频,我不想让帧处理器接收4k缓冲区,因为这将是非常缓慢的,并阻止视频记录(帧下降)。
理想情况下,我希望创建一个用于4k视频录制的AVCaptureDataOutput,另一个在较低的视频中接收帧(预览?)解析--但是不能在同一个捕获会话中使用两个AVCaptureDataOutput。
我想也许我可以“勾引”预览层,从那里接收CMSampleBuffer,就像captureOutput(...)功能一样,因为这些都是预览大小的分辨率,有谁知道这是可能的吗?
发布于 2021-05-07 14:33:53
为此,我建议实现自定义呈现程序流。您只需要一个AVCaptureDataOutput,而不需要由iOS提供的系统PreviewLayer。
我有一篇关于媒体:链接的文章。你可以用它作为例子。
https://stackoverflow.com/questions/67435602
复制相似问题