我使用了以下方式,但视频没有合并,在输出中,最后添加到 AVMutableCompositionTrack 的视频存储在库中。
NSArray *arrVideoUrl=[objApp.dictSelectedVideos allKeys];
AVURLAsset *video1=[[AVURLAsset alloc]initWithURL:[arrVideoUrl objectAtIndex:0] options:nil];
AVURLAsset *video2=[[AVURLAsset alloc]initWithURL:[arrVideoUrl objectAtIndex:1] options:nil];
AVURLAsset *audioAsset=[[AVURLAsset alloc]initWithURL:songUrl options:nil];
AVMutableComposition *mixcomposition=[AVMutableComposition composition];
AVMutableCompositionTrack *track1=[mixcomposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
[track1 insertTimeRange:CMTimeRangeMake(kCMTimeZero, video1.duration) ofTrack:[[video1 tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0]
atTime:kCMTimeZero error:nil];
AVMutableCompositionTrack *track2=[mixcomposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
[track2 insertTimeRange:CMTimeRangeMake(kCMTimeZero, video2.duration) ofTrack:[[video2 tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0]
atTime:kCMTimeZero error:nil];
谁能帮帮我?
最佳答案
现在你有两个轨道的 AVMutableComposition
,你需要创建 --
- AVMutableVideoCompositionLayerInstruction
用于两者。
为您的合并轨道创建
AVMutableVideoCompositionInstruction
,其对象将是
在由AVMutableVideoCompositionLayerInstruction
组成的数组中有instructions
第一和第二首歌曲。为 Merged track 对象创建
AVMutableVideoComposition
并在上面提供
AVMutableVideoCompositionInstruction
。
此方法来自 this 的一个非常好的教程链接。
关于iphone - 如何在 iPhone sdk 中使用 AVMutableComposition 合并视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15902439/