2017-08-13 3 views
0

SwiftでAVAssetExportSessionを実行しようとしていますが、このエラーは'NSInvalidArgumentException', reason: 'Invalid output file type'です。このエラーを調べたところ、QuickTimeファイル、MP4、AppleM4Vしかサポートしていないことがわかりました。私はM4Vファイルを書き出しようとしているので、奇妙です。しかし、私は、MP4ビデオをエクスポートしようとしましたが、ファイル名にはMP4拡張子があり、outputFileTypeにはMP4ファイルも含まれていました。私は後でそれをすべてM4Vに変更しました(エクスポートされるビデオを含めてM4Vファイルになりました)、それは私にエラーをもたらします。私は何か間違っているのですか?私のコードは、ダウン以下である:AVAssetExportSessionがM4Vファイルをエクスポートしていません

let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality) 

     let filename = "filename.m4v" 

     let documentsDirectory = FileManager.default.urls(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).last! 

     let outputURL = documentsDirectory.appendingPathComponent(filename) 

     exporter?.outputURL = outputURL 
     exporter?.outputFileType = AVFileTypeAppleM4V 

     exporter?.exportAsynchronously(completionHandler: { 

     }) 

すべてのヘルプは高く評価され、感謝:)

答えて

0

AVAssetExportPresetHighestQualityだけ.movファイルをサポートしています。代わりにAVAssetExportPresetPassthroughを使用する必要があります。

let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetPassthrough) 

Documentationによると、AVAssetExportPresetLowQualityAVAssetExportPresetMediumQualityAVAssetExportPresetHighQualityは唯一のQuickTimeの.movファイルのためのものです。

AVAssetExportSessionの変数supportedFileTypesの内容を印刷して、さらに詳しく調べることができます。

+2

'AVAssetExportPresetLowQuality'、' AVAssetExportPresetMediumQuality'および 'AVAssetExportPresetHighQuality'も' AVFileTypeMPEG4'に対して機能します – Rezwan

関連する問題