AVVideoComposition длительность кадра не работает на дорожках с более низкой частотой кадров
Я работаю над видеоредактором, который может импортировать и показывать фотографии прямо рядом с видео. Я взял бы импортированную фотографию и сделал бы 10-секундное видео из этого с 3 кадрами. 1 кадр в начале фильма, 1 кадр за 5 секунд и 1 кадр за 10 секунд. Это был действительно быстрый импорт фотографий, и он отлично работал на iOS 10. Я просто открыл приложение и попытался запустить его на iOS 11, и треки с фотографиями воспроизводились с частотой кадров 0,2 вместо 30 кадров в секунду, установленной AVVideoComposition. Это как AVVideoComposition игнорирует свойство длительности кадра, если дорожка имеет меньшую частоту кадров. Например, если дорожка имеет 30 кадров в секунду, и я установил длительность кадра AVVideoComposition на 10 кадров в секунду, тогда дорожка будет воспроизводиться со скоростью 10 кадров в секунду, как и ожидалось. Но если дорожка имеет 10 кадров в секунду, и я установил длительность кадра AVVideoComposition на 30 кадров в секунду, то дорожка все равно будет воспроизводиться только со скоростью 10 кадров в секунду. Мне кажется, что Apple пыталась оптимизировать воспроизведение видео в минимальное время (AVVideoComposition.frameDuration, 1 / AVAssetTrack.nominalFrameRate).
Раньше вы могли установить AVVideoComposition.frameDuration в 30 кадров в секунду, и каждый трек будет воспроизводиться со скоростью 30 кадров в секунду. Кажется, так больше не бывает. Причина в том, что проблема заключается в том, что я перемещаю трек по экрану и применяю анимированные эффекты, а для получения плавных анимаций необходимо обновить 30 кадров в секунду вместо 0,2, которую я получаю.
Кто-нибудь сталкивался с этой проблемой, или это было дизайнерское решение Apple, и нам нужно найти другой способ обойти эту проблему?