Питер прав. Следующий код делает концепцию более понятной:
1)
Float64 seconds = 5;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMakeWithSeconds(seconds, preferredTimeScale);
CMTimeShow(inTime);
Приведенный выше код дает: {3000/600 = 5.000}
Это означает, что общая продолжительность составляет 5 секунд, с 3000 кадров с временной шкалой 600 кадров в секунду.
2)
int64_t value = 10000;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMake(value, preferredTimeScale);
CMTimeShow(inTime);
Этот дает {10000/600 = 16.667}
Это означает общую длительность 16,667 секунд, с 10000 кадрами с временной шкалой 600 кадров в секунду.
Обратите внимание на разницу между CMTimeMake (значение int64_t, временная шкала int32_t) и CMTimeMakeWithSeconds (значение Float64 секунды, предпочитаемое int32_tTimeScale)
Надеюсь, это объяснение поможет. Для дальнейших разъяснений, пожалуйста, не стесняйтесь размещать дополнительные вопросы на этот пост.
CMTimeMake(1, 48)
бы выполнить блок кода каждые 1/48 секунды, т.е. 1 блок на кадр