iphone - 如何在 iPhone sdk 中使用 AVMutableComposition 合并视频

标签 iphone ios ios5 ios4 ios6

我使用了以下方式,但视频没有合并,在输出中,最后添加到 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/

相关文章:

iphone - 用圆弧覆盖设定器

iphone - 将 Cinema 4D 模型和纹理放入 iPhone 应用程序中

ios - 在我错过了 flutter 应用程序之后,有什么办法可以回到我的旧 Xcode

ios - 使用inputView后如何显示键盘

ios - 如何同时显示多个SKMapView map ?

ios - Realm 查询属性(property)总和

iphone - 如何读取 IBAction 中的 UITextField 值。我正在以编程方式创建 UITextField

iphone - 什么时候 -[UIView drawRect :] Method Invoked?

iphone - 在引号之间获取字符串的 NSRange?

javascript - 如何防止 iOS 5 中 touchmove 事件的默认行为?