【发布时间】:2019-10-08 10:30:01
【问题描述】:
我正在为我的 webrtc 应用程序使用 janus 网关,并从我的相机捕获 samplebuffer 作为 kCVPixelFormatType_32BGRA,因为我正在处理 samplebuffer 并且不能直接使用 kCVPixelFormatType_420YpCbCr8BiPlanarFullRange 将其直接发送到 janus。 所以我的问题是,如何将样本缓冲区的 RGBA 像素格式转换为 420YpCbCr8BiPlanarFullRange 样本缓冲区
我没有找到任何进行这种形式转换的脚本,我知道有一个代码可以将 420Y 转换为 RGBA,而不是相反。
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
//WebRTC delegate
externalVideoBufferDelegate?.captureOutput!(output, didOutput: sampleBuffer, from: connection)
if i % 40 == 0 {
let visionImage = VisionImage(buffer: sampleBuffer)
let metadata = VisionImageMetadata()
metadata.orientation = .rightTop
visionImage.metadata = metadata
faceDetector.process(visionImage) { features, error in
for feature in faces {
print("detected")
}
if faces.isEmpty {
print("Scan Failed: Found nothing to scan :")
}
}
}
}
我希望默认的 32RGBA 样本缓冲区有一个 Y420 样本缓冲区
【问题讨论】:
标签: ios swift webrtc cmsamplebuffer janus-gateway