AVCaptureVideoDataOutput和AVCaptureAudioDataOutput相同的队列

问题描述 投票:0回答:1

Apple最近的示例代码之一使用相同的串行队列从AVCaptureVideoDataOutput和AVCaptureAudioDataOutput委托接收示例。从性能的角度来看,我需要知道这是否可以接受。两个样本缓冲区委托应该有不同的队列还是一个队列?特别是在设置多个摄像机输入/输出时,这一点变得尤为重要。

 private let dataOutputQueue = DispatchQueue(label: "data output queue")
 ...
 ...
 videoDataOutput.setSampleBufferDelegate(self, queue: dataOutputQueue)
 audioDataOutput.setSampleBufferDelegate(self, queue: dataOutputQueue)
ios avfoundation avcapturesession avcapturedevice avcapturevideodataoutput
1个回答
0
投票

我想在性能方面:

  1. 这始终取决于您的情况。也许对于苹果公司的示例来说还可以,但是在您的情况下,它确实需要更多。
  2. 您可以自己尝试一下。尝试在最慢的设备上获得尽可能多的输入,并查看性能是否仍然足够好。

还有一个类似的问题,即由于串行队列而导致性能不佳,答案是使用并发队列,请参见此处:Performance issues when using AVCaptureVideoDataOutput and AVCaptureAudioDataOutput

但是再次,我建议您尝试一下,看看有什么适合您的:)

© www.soinside.com 2019 - 2024. All rights reserved.