合并iOS中的视频

时间:2015-04-23 19:40:18

标签: ios objective-c avfoundation

我正在使用这个精彩的教程加载2个视频并将它们合并到iOS中。

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

我想改编一下,以便能够处理用户选择的无限视频,但我正在努力。如何创建一个AVAsset对象数组,然后将其合并为一个视频?

2 个答案:

答案 0 :(得分:0)

我将每个视频的MediaURL保存在一个数组中,然后我将其用于从我想要合并它们时读取每个视频。您可以在我的问题here

中看到更多内容

请注意我在每次合并后如何处理插入时间。

答案 1 :(得分:0)

很容易将其扩展到任意数量的视频。您只需要他们的URL。在您提到的教程中,他们合并了两个视频,以便您了解基础知识。看看这个tutorial。它完全符合您的要求并且易于理解。

您只需实施getRandomVideoFileURL方法即可。创建所有视频​​网址的数组。传递循环索引(i)并获取URL。

更新:要添加说明,请将此部分放入循环中:

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; 

根据需要更改变量名称,因为我不知道您正在关注哪个教程。