使用 AVPlayer 作为 AVCaptureSession 的输入?
Using AVPlayer as input for AVCaptureSession?
是否可以使用 AVCaptureSession
捕获 AVPlayer
的输出?我相信这是可能的,但不知道如何使用 AVPlayer
作为输入。
您不能将 AVPlayer
插入 AVCaptureSession
,尽管您可以以 CVPixelBuffer
s 和 AudioBufferList
s 的形式访问播放器的视频和音频.
这是通过两个 API 实现的:AVPlayerItemVideoOutput
用于视频,MTAudioProcessingTap
用于音频。
尽管是 c-api,但 MTAudioProcessingTap
更容易集成,就像 AVCaptureSession
一样,它通过回调向您推送样本,而使用 AVPlayerItemVideoOutput
您拉帧在给定的时间内。
因此,如果您想要 AVCaptureSession
般的体验(real-time,推送),您可能应该让音频分路器驱动您的 frame-pulling。
objective-c here and in swift here and an example of using an MTAudioProcessingTap
in swift here 中有一些 AVPlayerItemVideoOutput
示例代码。
是否可以使用 AVCaptureSession
捕获 AVPlayer
的输出?我相信这是可能的,但不知道如何使用 AVPlayer
作为输入。
您不能将 AVPlayer
插入 AVCaptureSession
,尽管您可以以 CVPixelBuffer
s 和 AudioBufferList
s 的形式访问播放器的视频和音频.
这是通过两个 API 实现的:AVPlayerItemVideoOutput
用于视频,MTAudioProcessingTap
用于音频。
尽管是 c-api,但 MTAudioProcessingTap
更容易集成,就像 AVCaptureSession
一样,它通过回调向您推送样本,而使用 AVPlayerItemVideoOutput
您拉帧在给定的时间内。
因此,如果您想要 AVCaptureSession
般的体验(real-time,推送),您可能应该让音频分路器驱动您的 frame-pulling。
objective-c here and in swift here and an example of using an MTAudioProcessingTap
in swift here 中有一些 AVPlayerItemVideoOutput
示例代码。