3
オーディオファイルをビデオファイルとマージしようとしています。オーディオとビデオのマージ
AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:audioUrl options:nil];
AVURLAsset* videoAsset = [[AVURLAsset alloc]initWithURL:videoUrl options:nil];
AVMutableComposition* mixComposition = [AVMutableComposition composition];
AVMutableCompositionTrack *compositionCommentaryTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio
preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionCommentaryTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, audioAsset.duration)
ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0]
atTime:kCMTimeZero error:nil];
AVMutableCompositionTrack *compositionVideoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo
preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration)
ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0]
atTime:kCMTimeZero error:nil];
AVAssetExportSession* _assetExport = [[AVAssetExportSession alloc] initWithAsset:mixComposition
presetName:AVAssetExportPresetHighestQuality];
NSString* videoName = @"export.mov";
NSString *exportPath = [NSTemporaryDirectory() stringByAppendingPathComponent:videoName];
NSURL *exportUrl = [NSURL fileURLWithPath:exportPath];
if ([[NSFileManager defaultManager] fileExistsAtPath:exportPath])
{
[[NSFileManager defaultManager] removeItemAtPath:exportPath error:nil];
}
_assetExport.outputFileType = @"com.apple.quicktime-movie";
_assetExport.outputURL = exportUrl;
_assetExport.shouldOptimizeForNetworkUse = YES;
[_assetExport exportAsynchronouslyWithCompletionHandler:
^(void) {
// your completion code here
}
}
];
すべてが正常に動作するようですが、私は、このコードが動作しない理由を知らない: はここに私の努力です! 私はオーディオとビデオの両方の資産を取得しています。しかし、私は輸出セッションを作成することができません。
感謝を使用してエラーを取得することができれば、これは私のコードを追跡するために私を助けるかもしれないもチェック
AVAssetExportPresetPassthrough
を使用してみてください:) –
こんにちは、あなたは私を助けてくださいことはできますか?このコードを使用しましたが、ファイルをマージする際にビデオを取得できません。 assetSessionのAVAssetExportSessionStatusCompletedステータスを取得できますが、ビデオを見ることはできません。私は私のビデオファイルをチェックして、それは適切です..私のオーディオファイルも適切です...しかし、両方のビデオが表示されていない合併しています....あなたは何が問題になるか教えていただけますか? – DShah