Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

216
Visualizações
Retraso de estabilización de video AVCaptureSession

Anteriormente estaba agregando un AVCaptureMovieFileOutput a mi AVCaptureSession y habilitando el modo de estabilización de video preferredVideoStabilizationMode cinemático, obteniendo excelentes resultados esperados.

Acabo de cambiar a un AVCaptureVideoDataOutput y la estabilización cinemática está provocando un retraso extremadamente notable, aproximadamente un segundo de retraso antes de que se actualice la vista previa de la imagen.

Configuración:

 // Video data output let outputSettings: [String: Any] = [kCVPixelBufferPixelFormatTypeKey as String: kCVPixelFormatType_32BGRA] videoDataOutput = AVCaptureVideoDataOutput() videoDataOutput?.videoSettings = outputSettings let videoSessionQueue = DispatchQueue(label: "video_capture_session_queue") videoDataOutput?.setSampleBufferDelegate(self, queue: videoSessionQueue) videoDataOutput?.alwaysDiscardsLateVideoFrames = true // Audio data output let audioDataOutput = AVCaptureAudioDataOutput() let audioSessionQueue = DispatchQueue(label: "audio_capture_session_queue") audioDataOutput.setSampleBufferDelegate(self, queue: audioSessionQueue) // Configure session captureSession.beginConfiguration() let videoInput = try AVCaptureDeviceInput(device: currentCameraDevice) captureSession.addInput(videoInput) captureSession.addOutput(videoDataOutput!) if let videoDataOutputConnection = videoDataOutput?.connection(with: .video), videoDataOutputConnection.isVideoStabilizationSupported { videoDataOutputConnection.preferredVideoStabilizationMode = .cinematic } if let audioInput = AVCaptureDevice.default(for: .audio) { try captureSession.addInput(AVCaptureDeviceInput(device: audioInput)) captureSession.addOutput(audioDataOutput) } captureSession.commitConfiguration() captureSession.startRunning()

¿Alguien tiene alguna idea o una solución? Gracias por adelantado.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Para cualquier persona interesada, esto es lo que aprendí después de unos días más de excavación:

El retraso no se puede evitar cuando se renderiza en una capa que no es AVCaptureVideoPreviewLayer , que es esencialmente cada vez que ejecuta un AVCaptureVideoDataOutput para procesar fotogramas individuales (y es cierto para las configuraciones CI y Metal).

El modo de estabilización .cinematic conduce al retraso más notable: ~ 1 segundo. Cambiar a .standard reduce a ~1/10 de segundo y produce mejores resultados que ninguna estabilización.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda