将多个视频资源添加到AVMutableComposition

时间:2012-07-05 19:21:48

标签: iphone cocoa-touch avassetexportsession avmutablecomposition

将{1}}添加一个视频资产和一个音频素材并使用AVMutableComposition后获取可播放的mov文件时,我没有任何问题。但是,当我尝试在第一次出现问题后立即添加另一个视频轨道时。或 1)播放第一个视频,并在mov文件的持续时间内冻结其最后一帧(从不播放第二个视频)。 2)在第二个视频完整播放之前,会显示一个黑框。 3)会话根本不会导出。

我通过在各自的AVAssetExportSession ..方法中调整视频资产的时间范围来获得这些不同的结果。

insertTimeRange:ofTrack:

有没有人知道应该在这里调整什么?

感谢。

2 个答案:

答案 0 :(得分:0)

添加音轨以及要添加的第二个视频轨道。或者添加一个音频轨道,其持续时间等于您要添加的两个视频片段的长度。我们的想法是让音频/视频音轨具有相同的长度。

答案 1 :(得分:0)

我的猜测是:
[secondTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, secondAsset.duration) ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];

应替换为 [secondTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, secondAsset.duration) ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:firstAsset.duration error:nil];

其次,您应该设置AVMutableVideoCompositionLayerInstruction对象的不透明度。我推荐this HowTo。