Mic*_*cko 4 iphone audio video avfoundation
我成功地将视频和音轨混合在一起并将其导出到新的.m4v文件中.
我现在的问题是,我想将相同的视频文件和2个音频文件混合在一起,这两个音频文件是两个AVAssetTrack并且具有相同的时间线.就像你在音频编辑器中这样做,你可以混合两个或多个声音文件,你得到一个合并文件.
这可能吗?如果是的话,我该怎么办?
目前我只是在继续之后听到一个声音文件,而不是两个.
顺便说一下:我的目标是"简单地"将一个额外的声音文件包含到已经有声音的视频中,并将它与新的声音文件混合在一起.但似乎AVAssetTrack只允许音频或视频,因此我从原始视频中制作了一个新的音频AVAssetTrack.也许这是错的......
先感谢您!
如果没有看到您的代码,很难帮助您.也许这段代码可以帮助:
AVMutableComposition* composition = [AVMutableComposition composition];
AVURLAsset* videoAsset = [[AVURLAsset alloc]initWithURL:videoURL options:nil];
AVURLAsset* audioAsset1 = [[AVURLAsset alloc]initWithURL:audioURL1 options:nil];
AVURLAsset* audioAsset2 = [[AVURLAsset alloc]initWithURL:audioURL1 options:nil];
AVMutableCompositionTrack *compositionVideoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
NSError* error = NULL;
[compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero,videoAsset.duration)
ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo]objectAtIndex:0]
atTime:kCMTimeZero
AVMutableCompositionTrack *compositionAudioTrack1 = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionAudioTrack1 insertTimeRange:CMTimeRangeMake(kCMTimeZero,audioAsset1.duration)
ofTrack:[[audioAsset1 tracksWithMediaType:AVMediaTypeAudio]objectAtIndex:0]
atTime:kCMTimeZero
error:&error];
AVMutableCompositionTrack *compositionAudioTrack2 = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionAudioTrack2 insertTimeRange:CMTimeRangeMake(kCMTimeZero,audioAsset2.duration)
ofTrack:[[audioAsset2 tracksWithMediaType:AVMediaTypeAudio]objectAtIndex:0]
atTime:kCMTimeZero
error:&error];
Run Code Online (Sandbox Code Playgroud)
现在只需使用AVExportSession导出此合成.并且不要忘记释放资产.
归档时间: |
|
查看次数: |
4490 次 |
最近记录: |