2010-09-22 9 views
16

пытался понять это с нулевым успехом.У кого-нибудь есть пример того, как писать аудио и видео одновременно с помощью AVAssetWriter?

Я могу написать видеовыход без проблем ... но как только я попытаюсь представить второй AVAssetWriterInput, чтобы включить звук, последний видеоролик моментально дрожит, когда кадры теряются слева и справа, а аудио постоянно идет и выходит.

Спасибо - Рабочая группа

+0

Возможно, покажите нам код, который не работает должным образом, если можно. Это даст ответчикам хорошую отправную точку для работы. –

ответ

1

Если включить источник мы могли бы быть в состоянии помочь вам больше, но это метод, с которым я имел успех в написании многих аудио и видео треков в Quicktime фильма - я использую один AVMutableComposition с AVMutableVideoComposition и AVAudioMix. Затем я пишу это так:

AVAssetExportSession *session = [[[AVAssetExportSession alloc] initWithAsset:[project.composition copy] presetName:presetName] retain]; 
    session.outputFileType = [session.supportedFileTypes objectAtIndex:0]; 
    session.outputURL = [NSURL fileURLWithPath:[VeporterAppDelegate createMoviePath]]; 
    session.videoComposition = project.videoComposition; 
    session.audioMix = project.audioMix; 

    session.metadata = project.metadata; 

    [session exportAsynchronouslyWithCompletionHandler:^{}]; 
1

вы используете requestMediaDataWhenReadyOnQueue: usingBlock: для записи данных? Если нет, вы должны установить для expectMediaDataInRealTime значение YES.

0

У меня такая же проблема. Мое решение:

1) Создайте два объекта AVAssetWriter для записи аудио и видео в два файла.

2) Используйте AVMutableComposition и AVAssetExportSession, чтобы составить их в один файл, как было предложено выше.

Возможно, это уродливое. Но в моем проекте я должен был составить несколько видеофайлов, поэтому составление аудио и видео добавляет небольшие накладные расходы.

0

Для всех, кто ищет, как это сделать, этот apple developer example должен быть всем необходимым. Удачи.