【发布时间】:2021-05-07 13:10:48
【问题描述】:
我正在尝试创建具有以下功能的相机捕获会话:
- 预览
- 照片拍摄
- 视频捕捉
- 实时帧处理 (AI)
虽然前两件事不是问题,但我还没有找到单独制作后两件事的方法。
目前,我使用单个AVCaptureVideoDataOutput 并首先运行视频录制,然后在同一个函数中在同一个队列中进行帧处理。 (见代码here和here)
唯一的问题是视频捕获捕获 4k 视频,我真的不希望帧处理器接收 4k 缓冲区,因为这会非常慢并阻止视频录制(丢帧)。
理想情况下,我想创建一个 AVCaptureDataOutput 用于 4k 视频录制,另一个接收较低(预览?)分辨率的帧 - 但您不能在同一捕获会话中使用两个 AVCaptureDataOutputs。
我想也许我可以“挂钩”预览层以从那里接收 CMSampleBuffers,就像 captureOutput(...) 函数一样,因为它们是预览大小的分辨率,有谁知道这是否可能?
【问题讨论】:
标签: ios swift objective-c avfoundation