首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在iOS中将视频文件与其原始音频合并

在iOS中将视频文件与其原始音频合并
EN

Stack Overflow用户
提问于 2014-03-28 14:39:27
回答 1查看 1.5K关注 0票数 3

我需要合并两个视频文件与他们相应的音频。我尝试使用:http://www.raywenderlich.com/13418/how-to-play-record-edit-videos-in-ios

这些视频被合并了,但是它们的音频丢失了。就像一段无声的视频。我需要音频也要合并。我也在谷歌上搜索过,找不到有用的东西。有人能帮我一下吗..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-28 15:28:46

实时编辑音频就像实时编辑视频。回到每一部电影,拿出音轨,并把它粘在你可变的构图中。

在这个例子中,我获取电影中的前5秒视频和最后5秒视频,并将它们一个接一个地放到一个新视频中:

代码语言:javascript
运行
复制
NSString* type = AVMediaTypeVideo;
NSArray* arr = [oldAsset tracksWithMediaType:type];
AVAssetTrack* track = [arr lastObject];
CMTime duration = track.timeRange.duration;
AVMutableComposition* comp = [AVMutableComposition composition];
AVMutableCompositionTrack* comptrack = [comp addMutableTrackWithMediaType:type preferredTrackID:kCMPersistentTrackID_Invalid];
[comptrack insertTimeRange:CMTimeRangeMake(CMTimeMakeWithSeconds(0,600), CMTimeMakeWithSeconds(5,600)) ofTrack:track atTime:CMTimeMakeWithSeconds(0,600) error:nil];
[comptrack insertTimeRange:CMTimeRangeMake(CMTimeSubtract(duration, CMTimeMakeWithSeconds(5,600)), CMTimeMakeWithSeconds(5,600)) ofTrack:track atTime:CMTimeMakeWithSeconds(5,600) error:nil];

但由此产生的视频将是无声的。因此,我还返回并获取相应的音频:

代码语言:javascript
运行
复制
type = AVMediaTypeAudio;
arr = [oldAsset tracksWithMediaType:type];
track = [arr lastObject];
comptrack = [comp addMutableTrackWithMediaType:type preferredTrackID:kCMPersistentTrackID_Invalid];
[comptrack insertTimeRange:CMTimeRangeMake(CMTimeMakeWithSeconds(0,600), CMTimeMakeWithSeconds(5,600)) ofTrack:track atTime:CMTimeMakeWithSeconds(0,600) error:nil];
[comptrack insertTimeRange:CMTimeRangeMake(CMTimeSubtract(duration, CMTimeMakeWithSeconds(5,600)), CMTimeMakeWithSeconds(5,600)) ofTrack:track atTime:CMTimeMakeWithSeconds(5,600) error:nil];
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22715881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档