Peter tiene razón. El siguiente código hace que el concepto más claro:
1)
Float64 seconds = 5;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMakeWithSeconds(seconds, preferredTimeScale);
CMTimeShow(inTime);
El código anterior da: {3000/600 = 5,000}
Lo que significa una duración total de 5 segundos, con 3000 fotogramas con una escala de tiempo de 600 fotogramas por segundo.
2)
int64_t value = 10000;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMake(value, preferredTimeScale);
CMTimeShow(inTime);
Esto da {10000/600 = 16.667}
Lo que significa una duración total de 16,667 segundos, con 10000 marcos con una escala de tiempo de 600 fotogramas por segundo.
notar la diferencia entre CMTimeMake (int64_t valor, escala de tiempo int32_t) y CMTimeMakeWithSeconds (float64 segundos, int32_t preferredTimeScale)
Esperanza ayuda a esta explicación. Para obtener más aclaraciones, no dude en publicar más preguntas en esta publicación.
si el vídeo es de 48 fps (fotogramas por segundo) entonces fácilmente haría 'CMTimeMake (1, 48)' para ejecutar un bloque de código cada 1/48 de segundo, es decir, 1 bloque por cuadro – Honey