Подтвердить что ты не робот

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

пытался понять это с нулевым успехом.

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

Спасибо - wg

4b9b3361

Ответ 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:^{}];

Ответ 2

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

Ответ 3

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

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

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

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