Я пытаюсь объединить видео и аудио с помощью AVAssetExportSession и AVMutableComposition. Мой код работает в большинстве случаев (аудио и видео). Но для некоторых видео это не удается. Неудачные видео отлично работают с QuickTime Player и другими плеерами. Неудачные видео не работают, когда я просто экспортирую даже без какой-либо опции аудиомеринга (код приведен ниже).
[AVURLAsset assetWithURL:[NSURL fileURLWithPath:videoPath]];
AVAssetExportSession* _assetExport = [[AVAssetExportSession alloc] initWithAsset:videoAsset presetName:AVAssetExportPresetHighestQuality];
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 ) {
if (AVAssetExportSessionStatusCompleted == _assetExport.status) {
} else if (AVAssetExportSessionStatusFailed == _assetExport.status) {
NSLog(@"AVAssetExportSessionStatusFailed with error--%@", _assetExport.error);
}
}
];
И у меня получилась следующая ошибка ..
Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSUnderlyingError=0x600000053aa0 {Error Domain=NSOSStatusErrorDomain Code=-12769 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-12769), NSLocalizedDescription=The operation could not be completed}
Я не публикую здесь полный код для слияния, потому что приведенный выше базовый код не работает даже с упомянутыми видео.
Любые подсказки или подсказки с кодами ошибок будут действительно полезны. Заранее спасибо.
kCMBufferQueueError_InvalidBuffer
- person Rhythmic Fistman   schedule 16.03.2017