我目前正在尝试使用AVMutableComposition背靠背放置5个视频,如下所示:
[mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset1.duration) ofAsset:asset1 atTime:[mixComposition duration] error:nil];
[mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset2.duration) ofAsset:asset2 atTime:[mixComposition duration] error:nil];
[mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset3.duration) ofAsset:asset3 atTime:[mixComposition duration] error:nil];
[mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset4.duration) ofAsset:asset4 atTime:[mixComposition duration] error:nil];
[mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset5.duration) ofAsset:asset5 atTime:[mixComposition duration] error:nil];
然后我使用AVAssetExportSession导出视频,但是在每个视频之间都有效,我得到一个空白/黑框,我需要删除它。有没有人之前遇到过这个问题,如果是这样,你能设法修复它吗?
此外,空白帧不在源视频文件中。
提前致谢。
答案 0 :(得分:0)
我刚遇到同样的问题。结果解决方案是使用AVMutableCompositionTrack并合成视频轨道,就像这样。
AVMutableCompositionTrack * videoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
[videoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset.duration) ofTrack:[[asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:composition.duration error:&error];
对于音频部分,我认为你必须使用AVMediaTypeAudio类型添加一个单独的音轨。