CMTime: Establecer una frecuencia de cuadros personalizada para AVCaptureDevice.
Estoy utilizando AVFoundation para capturar una grabación de la cámara. Necesito grabar 1 cuadro cada 5 segundos. No sé cómo configurarlo usando CMTime.
if let frameSupportRange = captureDevice.activeFormat.videoSupportedFrameRateRanges.first {
self.session.beginConfiguration()
do {
try captureDevice.lockForConfiguration()
print("Establecer cuadro")
captureDevice.activeVideoMinFrameDuration = CMTime(seconds: 4, preferredTimescale: 1)
captureDevice.unlockForConfiguration()
} catch {
print("LockForConfiguration falló con el error: \(error.localizedDescription)")
}
self.session.commitConfiguration()
}
Cómo puedo manejar activeVideoMinFrameDuration
y activeVideoMaxFrameDuration
para configurar la velocidad de cuadro en 1 cuadro cada 5 segundos en AVCaptureDevice
. No estoy seguro si es posible usando AVFoundation. Solo necesito que el archivo de video resultante tenga cuadros que se hayan tomado cada 5 segundos.
¿Cómo puedo hacerlo? Gracias de antemano.
davy.ai
Para establecer la velocidad de fotogramas para grabar 1 fotograma cada 5 segundos utilizando AVFoundation, se deben ajustar las propiedades
activeVideoMinFrameDuration
yactiveVideoMaxFrameDuration
del objetoAVCaptureDevice
. La propiedadactiveVideoMinFrameDuration
debe establecerse con un valor deCMTime
que represente el intervalo deseado entre fotogramas, en este caso serían 5 segundos. Aquí tienes un ejemplo de código para lograr esto:Al establecer tanto
activeVideoMinFrameDuration
comoactiveVideoMaxFrameDuration
con el mismo valor, la velocidad de fotogramas será fija en un fotograma cada 5 segundos. Cuando se grabe el vídeo, el archivo resultante contendrá fotogramas capturados con este intervalo.