Peter a raison. Le code suivant rend le concept plus clair :
1)
Float64 seconds = 5;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMakeWithSeconds(seconds, preferredTimeScale);
CMTimeShow(inTime);
Le code ci-dessus donne : {3000/600 = 5.000}
Cela signifie une durée totale de 5 secondes, avec 3000 images et une échelle de temps de 600 images par seconde.
2)
int64_t value = 10000;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMake(value, preferredTimeScale);
CMTimeShow(inTime);
Celui-ci donne {10000/600 = 16.667}
Ce qui signifie une durée totale de 16,667 secondes, avec 10000 images avec une échelle de temps de 600 images par seconde.
Remarquez la différence entre CMTimeMake(int64_t value, int32_t timescale) et CMTimeMakeWithSeconds(Float64 seconds, int32_t preferredTimeScale)
J'espère que cette explication vous aidera. Pour plus de clarifications, n'hésitez pas à poster d'autres questions sur ce post.
1 votes
Si votre vidéo est de 48 FPS (image par seconde), vous pouvez facilement faire
CMTimeMake(1, 48)
pour exécuter un bloc de code tous les 1/48 de seconde, soit 1 bloc par image