2015-04-23 7 views
0

Я использую этот замечательный учебник для загрузки 2 видео и слияния их в iOS.Слияние видео в iOS

http://www.raywenderlich.com/13418/how-to-play-record-edit-videos-in-ios

Я хотел бы приспособить это, чтобы иметь возможность обрабатывать неограниченное количество видео, выбранные пользователем, но я изо всех сил. Как создать массив объектов AVAsset, которые затем могут быть объединены в одно видео?

ответ

0

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

Обратите внимание, как я обрабатываю время вставки после каждого слияния.

0

Его довольно легко распространить на любое количество видео. Все, что вам нужно, это их URL. В упомянутом учебнике вы упомянули, что они объединяют два видео, чтобы вы знали основы. Посмотрите на это tutorial. Он соответствует вашему требованию и легко понять.

Вам просто нужно реализовать метод getRandomVideoFileURL. Создайте массив URL всех видео. Передайте индекс цикла (i) и получите URL-адрес.

UPDATE: Для того, чтобы добавить инструкции, поместить эту часть в цикле:

AVMutableVideoCompositionInstruction *videoCompositionInstruction = [AVMutableVideoCompositionInstruction videoCompositionInstruction]; 
videoCompositionInstruction.timeRange = CMTimeRangeMake(time, assetTrack.timeRange.duration); 
videoCompositionInstruction.layerInstructions = @[[AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:videoCompositionTrack]]; 
[instructions addObject:videoCompositionInstruction]; 

Затем, после того, как форму петли AVMutableVideoComposition так:

AVMutableVideoComposition *mutableVideoComposition = [AVMutableVideoComposition videoComposition]; 
mutableVideoComposition.instructions = instructions; 
mutableVideoComposition.frameDuration = CMTimeMake(1, 30); 
mutableVideoComposition.renderSize = size; 

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

+0

Это хорошая статья, но проблема в том, что я пытаюсь включить LayerInstructions, когда я просматриваю свой цикл. Для этого похоже, что вам нужны объекты AVMutableVideoComposition, которые эта статья не использует. В принципе, мне нужно выяснить, как объединить две статьи вместе. –