преобразование kBVPixelFormatType_32BGRA sampleBuffer в kCVPixelFormatType_420YpCbCr8BiPlanarFullRange - PullRequest
0 голосов
/ 08 октября 2019

Я использую шлюз 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

...