ios4 - iOS 视频编辑 - 是否可以使用 iOS 4 AVFoundation 类将两个视频文件合并(并排而不是一个接一个)两个视频文件?

标签 ios4 avfoundation video-editing adobe-premiere avvideocomposition

我知道您可以合并多个剪辑并通过使用 AVFoundation 类(AVURLAsset、AVMutableComposition、AVMutableCompositionTrack 等)逐个附加来创建单个视频。

有像“Video-Joiner”这样的应用程序可以做到这一点。

我想做的是将 2 个视频并置。

我的应用创意 - SelfInterviewer 请不要盗用:)

首先,我使用位于画面左侧的前置摄像头录制视频 1。然后视频2站在右边。在视频 1 中提出问题,在视频 2 中我回答。

当我合并时,应该看起来像是我正在接受我自己的采访。

我几乎确定它在 iOS 中不可行,只是想确认一下。

此外,如果不行,我会对任何服务器端解决方案感兴趣 - 上传两个视频并完成相同的任务。我认为adobe Premiere可以做到。不确定他们是否有任何公共(public) API。

欣赏任何想法。

谢谢。

最佳答案

是的,可以合并 2 个视频:
1. 在开始时间 0 将这两个资源添加到 AVMutableComposition。
2. 将首选变换设置为轨道,在此示例中为缩放变换。

    - (void) mergeVideos{
    ///... after getting hold or your assets....firstAsset, secondAsset

    AVMutableComposition* mixComposition = [AVMutableComposition composition];

    AVMutableCompositionTrack *firstTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo 
                                                                      preferredTracfirst:kCMPersistentTracfirst_Invalid];
    [firstTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, firstAsset.duration) 
                        ofTrack:[[firstAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] 
                         atTime:kCMTimeZero error:nil];

    AVMutableCompositionTrack *secondTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo 
                                                                       preferredTracfirst:kCMPersistentTracfirst_Invalid];

    [secondTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, secondAsset.duration)
                         ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] 
                          atTime:kCMTimeZero error:nil];    

    [secondTrack setPreferredTransform:CGAffineTransformMakeScale(0.25f,0.25f)]; 

    //... export video here...

}

关于ios4 - iOS 视频编辑 - 是否可以使用 iOS 4 AVFoundation 类将两个视频文件合并(并排而不是一个接一个)两个视频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5757423/

相关文章:

ios - 从 UIPastboard 粘贴字符串数据

ios 推送通知服务器可靠性

cocoa-touch - 将元数据写入图像时出现问题

ios - 我怎样才能拍照并预览

ffmpeg - 使用 ffmpeg 转换 MXF 失败

vb.net - 如何在 ffmpeg 中循环获取多个视频的图像

iphone - UIView 内存释放

iphone - Interface Builder 崩溃并显示 :Assertion Message: Interface Builder encountered an error communicating with the iPhone Simulator

iphone - 如何使用 iphone SDK 中的两个按钮在运行时更改应用程序语言?

ffmpeg:在不改变实际宽度和高度的情况下缩放视频