Я использую следующий код, чтобы попытаться объединить два m4v файлы, хранящиеся в папке документов:Объединение двух m4v видео файлов с помощью AVMutableComposition - Видео Не будет Merge
CMTime insertionPoint = kCMTimeZero;
NSError * error = nil;
AVMutableComposition *composition = [AVMutableComposition composition];
AVURLAsset* asset = [AVURLAsset URLAssetWithURL: [assetURLArray objectForKey:kIntroVideo] options:nil];
if (![composition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset.duration)
ofAsset:asset
atTime:insertionPoint
error:&error])
{
NSLog(@"error: %@",error);
}
insertionPoint = CMTimeAdd(insertionPoint, asset.duration);
AVURLAsset* asset2 = [AVURLAsset URLAssetWithURL: [assetURLArray objectForKey:kMainVideo] options:nil];
if (![composition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset2.duration)
ofAsset:asset2
atTime:insertionPoint
error:&error])
{
NSLog(@"error: %@",error);
}
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:composition presetName:AVAssetExportPresetHighestQuality];
NSString *exportVideoPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/FinishedVideo.m4v"];
NSURL *exportURL = [NSURL fileURLWithPath:exportVideoPath];
exportSession.outputURL = exportURL;
exportSession.outputFileType = AVFileTypeQuickTimeMovie;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
switch (exportSession.status) {
case AVAssetExportSessionStatusFailed:{
NSLog (@"FAIL");
break;
}
case AVAssetExportSessionStatusCompleted: {
NSLog (@"SUCCESS");
}
};
}];
}
Проблема заключается в том, что два видео не будет сливаться должным образом. Полная сведенная продолжительность фильма правильная, однако видео никогда не переходит во второй фильм и продолжает отображать последний кадр первого фильма в течение его продолжительности. Как ни странно, я слышу звук для второго видео, воспроизводимого в фоновом режиме.
Есть ли у кого-нибудь идеи, что не так?
EDIT - Нечеткое дело в том, что если я объединю два клипа точно такой же длины, он будет работать.
EDIT - попытались сменить расширение файла на .mov с той же проблемой.
Любые идеи вообще были бы весьма полезными. – GuybrushThreepwood
Вы пытались использовать разные видеофайлы? Кроме того, когда вы говорите, что он работает с двумя клипами одинаковой длины, являются ли эти два разных клипа, или они являются двумя экземплярами одного и того же клипа? – Sean
Шон - спасибо за помощь - 2 экземпляра одного и того же клипа. – GuybrushThreepwood