3
我需要合併兩個視頻文件及其相應的音頻。 我試過使用: http://www.raywenderlich.com/13418/how-to-play-record-edit-videos-in-ios在iOS中合併視頻文件與原始音頻
視頻合併,但他們的音頻丟失。這就像一個靜音視頻。我需要將音頻合併。我也搜索了這個,找不到任何有用的東西。有人可以幫我這個請...
我需要合併兩個視頻文件及其相應的音頻。 我試過使用: http://www.raywenderlich.com/13418/how-to-play-record-edit-videos-in-ios在iOS中合併視頻文件與原始音頻
視頻合併,但他們的音頻丟失。這就像一個靜音視頻。我需要將音頻合併。我也搜索了這個,找不到任何有用的東西。有人可以幫我這個請...
現場編輯音頻就像現場編輯視頻。返回到每部電影並獲取音軌並將其粘貼到可變的作品中。
在這個例子中,我抓住視頻的前五秒,並從電影視頻的最後五秒鐘,並把它們一前一後在新視頻:
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];
但由此產生的視頻會安靜。所以我也回去拿對應的音頻:
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];
非常感謝很多明確的解釋馬特..這對我工作! :) – BrianChristo
'AVMutableCompositionTrack * AudioTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];' '[AudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero,firstAsset.duration)ofTrack:[[firstAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];' 'AVMutableCompositionTrack * secondTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid]; //爲另一首曲目做同樣的事情,如下所示:** [secondTrack insertTimeRange:.... ** –