Аудио не синхронизировано с видео в рендеринге AVMutableComposition - PullRequest
2 голосов
/ 16 декабря 2010

У меня есть AVMutableComposition со следующими сегментами дорожки:

video:
    empty: Y, {{0/1 = 0.000}, {48/100 = 0.480}}
    empty: N, {{48/100 = 0.480}, {600/600 = 1.000}}
    empty: Y, {{888/600 = 1.480}, {900/600 = 1.500}}
    empty: N, {{894/300 = 2.980}, {1040/600 = 1.733}}
audio:
    empty: Y, {{0/1 = 0.000}, {48/100 = 0.480}}
    empty: N, {{48/100 = 0.480}, {45056/44100 = 1.022}}
    empty: Y, {{66224/44100 = 1.502}, {65194/44100 = 1.478}}
    empty: N, {{894/300 = 2.980}, {77824/44100 = 1.765}}

Синхронизация выражается как CMTimeRange, первое CMTime - время начала, второе - продолжительность.Другими словами, есть два аудио + видео блока с некоторым пустым отступом перед ними и между ними.

Проблема заключается в том, что когда я экспортирую эту композицию и воспроизведу экспортированное видео, второй аудио сегмент воспроизводится слишком рано, как если бы второй пустой аудио сегмент заполнения был проигнорирован во время экспорта.Я получаю первый видеофрагмент с правильным аудио, затем сразу второй аудио сегмент, а затем второй видео сегмент без аудио.

Что может быть не так?

1 Ответ

2 голосов
/ 07 января 2011

Проблема была в экспорте.Я использовал сквозной режим экспорта, который просто копирует сегменты дорожки в полученный файл.Полагаю, что метки времени тоже просто копируются, что приводит к путанице на временной шкале экспортируемого фильма.Установка режима экспорта на что-то другое, кроме сквозного, решает проблему.

...