AVCaptureSession - 添加多个并行输出

4

我正在尝试在进行图像处理任务的同时,将捕获的帧作为视频记录下来。

我有一个单独的AVCaptureSession,向其中添加了两个独立的输出 -

  1. AVCaptureVideoDataOutput
  2. AVCaptureMovieFileOutput

我分别确认了AVCaptureVideoDataOutputSampleBufferDelegateAVCaptureFileOutputRecordingDelegate

我使用 captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) 进行帧捕获和分析,以及func fileOutput(_ output: AVCaptureFileOutput, didStartRecordingTo fileURL: URL, from connections: [AVCaptureConnection]) 用于视频录制。

由于某种原因,当我添加这两个输出时,只有视频录制起作用,而“captureOutput”函数根本没有被调用。

有什么想法为什么会发生这种情况?我做错了什么?或者在设置和配置会话时应该注意什么?


这两个(AVCaptureVideoDataOutputAVCaptureMovieFileOutput)不能同时使用。请解释您的实际需求,以便我们可以提供替代方案。 - souvickcse
2个回答

2

这两个(AVCaptureVideoDataOutputAVCaptureMovieFileOutput)不能同时使用。您可以使用 captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) 来获取要分析的帧并进行录制。您可以在这里找到示例代码。


这很奇怪,因为我在苹果文档中没有找到它们是互斥的任何提及。感谢您提供的参考,我会进一步研究。 - devuser27
是的,我没有找到任何特别提到它的文件。 - souvickcse

-1

代码使用AssetWriter,而不是AVCaptureMovieFileOutput。 - Ankit Sachan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接