簡體   English   中英

AVAssetExportSession對於特定視頻失敗

[英]AVAssetExportSession fails for particular videos

我正在嘗試使用AVAssetExportSession和AVMutableComposition將視頻和音頻合並在一起。 我的代碼適用於大多數情況(音頻和視頻)。 但是對於某些視頻卻失敗了。 失敗的視頻可以與QuickTime播放器和其他播放器正常工作。 即使我沒有任何音頻合並選項(下面給出的代碼),即使我簡單地導出,失敗的視頻也會失敗。

[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}

我沒有在此處發布用於合並的完整代碼,因為上述視頻甚至無法使用上述基本代碼。

錯誤代碼的任何提示或提示將非常有幫助。 提前致謝。

首先檢查用於壓縮該視頻的編解碼器。

例如,將導出預設設置為“ AVAssetExportPreset1280x720”似乎可以解決此問題。 但就我而言,我確實需要保持原始分辨率,所以這不是一個選擇。

我通過使用AVAssetExportPresetPassthrough導出預設解決了此問題。

let exportSession = AVAssetExportSession(asset: composition, presetName: AVAssetExportPresetPassthrough)

這應該使用導出文件中導入視頻的分辨率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM