Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iPhone sdk中使用AVMutableComposition合并视频_Iphone_Ios_Ios5_Ios4_Ios6 - Fatal编程技术网

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

如何在iPhone sdk中使用AVMutableComposition合并视频,iphone,ios,ios5,ios4,ios6,Iphone,Ios,Ios5,Ios4,Ios6,我使用了以下方法,但视频没有合并,在输出中,添加到AVMutableCompositionTrack的最后一个视频存储在库中 NSArray *arrVideoUrl=[objApp.dictSelectedVideos allKeys]; AVURLAsset *video1=[[AVURLAsset alloc]initWithURL:[arrVideoUrl objectAtIndex:0] options:nil]; AVURLAsset *video2=[[AVURLAsset all

我使用了以下方法,但视频没有合并,在输出中,添加到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
s,你需要创建-- -
avmutablevideocompositionlayerlinstruction
用于这两种格式

  • 为对象将为的合并曲目创建
    AVMutableVideoCompositionInstruction
    在由
    avmutablevideocompositionlayerlinstruction
    第一和第二轨道

  • 为合并的轨迹对象创建
    AVMutableVideoComposition
    ,并提供上述内容
    AVMutableVideoCompositionInstruction


这个方法来自于link的一个非常好的教程。

很好地解决了这个问题。它很有效!!!但我在方向上遇到了问题…视频方向设置为横向,这是AVAsset的默认设置。我使用了你的链接提供的教程,但是方向问题来了。你能帮我摆脱这个困境吗?很高兴能帮我…如果没有任何效果,那么你可以尝试在AVPlayerLayer上“转换”属性,根据设备方向进行转换(CGAfflineTransform)。谢谢你的代码!哦,等等,你没有留下任何-1因为对于某些开发人员来说,方向已经足够了。