Я использую шлюз janus для моего приложения webrtc и собираю сэмплебуфер с моей камеры как kCVPixelFormatType_32BGRA, потому что я делаю лицо с сэмплебуфером и не могу напрямую использовать kCVPixelFormatType_420YpCbCr8BiPlanarFullRange для отправки. Итак, мой вопрос, как я могу преобразовать пиксельный формат сэмплебуфера RGBA в 420YpCbCr8BiPlanarFullRange samplebuffer
Я не нашел ни одного скрипта, который выполняет эту форму преобразования, я знаю, что есть код для преобразования 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 :")
}
}
}
}
Я ожидаю сэмплебуфер Y420 из стандартного сэмплебуфера 32RGBA