У меня возникла проблема с отслеживанием основной проблемы, связанной с отключением сеанса моего актива. Проблема заключается только в одном видео, и я считаю, что проблема в звуковой дорожке, так как я успешно экспортировал актив без звуковой дорожки (только для видеодорожки).
Видеодорожка декодируется с помощью AVAssetReader, и буферы с образцами обрабатываются перед переписыванием в новую видеодорожку; звуковая дорожка передается без декодирования или промежуточной обработки. Однако даже без обработки буферов выборки видео произошел тот же самый сбой.
Я также пробовал делать это наоборот - только с аудио и без видео трека - и все же другие видео работали отлично, и это видео не удалось. Я предполагаю, что есть проблема с видеодорожкой, но я не могу понять, в чем проблема, и, следовательно, я не могу ее решить. Здесь мой код:
AVAssetExportSession* assetExport = [[AVAssetExportSession alloc] initWithAsset:composition
presetName:AVAssetExportPresetHighestQuality];
assetExport.outputFileType = @"com.apple.quicktime-movie";
assetExport.outputURL = [NSURL fileURLWithPath:path];
__weak typeof(self) weakSelf = self;
[assetExport exportAsynchronouslyWithCompletionHandler:^{
switch (assetExport.status) {
case AVAssetExportSessionStatusCompleted: NSLog(@"Asset combined");
break;
case AVAssetExportSessionStatusFailed: NSLog(@"Asset combination failed");
break;
default: NSLog(@"Asset combination completed with unknown status: %@", @(assetExport.status));
break;
}
}];
Проблема должна заключаться в сессии экспорта активов; трек в AVMutableComposition работал отлично. Здесь сообщение об ошибке AVAssetExportSession:
Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed"
UserInfo={NSUnderlyingError=0x6040001338d0 {Error Domain=NSOSStatusErrorDomain Code=-12780 "(null)"},
NSLocalizedFailureReason=An unknown error occurred (-12780), NSLocalizedDescription=The operation could not be completed}