Peter está certo. O código a seguir torna o conceito mais claro:
1)
Float64 seconds = 5;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMakeWithSeconds(seconds, preferredTimeScale);
CMTimeShow(inTime);
O código acima fornece: {3000/600 = 5.000}
O que significa uma duração total de 5 segundos, com 3000 quadros com uma escala de tempo de 600 quadros por segundo.
2)
int64_t value = 10000;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMake(value, preferredTimeScale);
CMTimeShow(inTime);
Este fornece {10000/600 = 16.667}
O que significa uma duração total de 16.667 segundos, com 10.000 quadros com uma escala de tempo de 600 quadros por segundo.
Observe a diferença entre CMTimeMake (valor int64_t, escala de tempo int32_t) e CMTimeMakeWithSeconds (Float64 segundos, int32_t preferidoTimeScale)
Espero que esta explicação ajude. Para mais esclarecimentos, não hesite em postar mais perguntas sobre este post.
CMTimeMake(1, 48)
para executar um bloco de código a cada 1/48 de segundo ou seja, 1 bloco por frame