Swift AVAssetExportSession未导出M4V文件

Swift AVAssetExportSession未导出M4V文件,swift,video,avassetexportsession,m4v,Swift,Video,Avassetexportsession,M4v,我正在尝试使用Swift执行一个AVAssetExportSession,我得到了以下错误:'NSInvalidArgumentException',原因:'Invalid output file type'。我查到这个错误,它说对于视频,Swift只支持QuickTime文件、MP4和AppleM4V,这很奇怪,因为我正在尝试导出M4V文件。然而,我尝试导出一个MP4视频,文件名具有MP4扩展名,outputFileType也是一个MP4文件,效果非常好。后来我把它全部改为M4V(包括导出的视

我正在尝试使用Swift执行一个
AVAssetExportSession
,我得到了以下错误:
'NSInvalidArgumentException',原因:'Invalid output file type'
。我查到这个错误,它说对于视频,Swift只支持QuickTime文件、MP4和AppleM4V,这很奇怪,因为我正在尝试导出M4V文件。然而,我尝试导出一个MP4视频,文件名具有MP4扩展名,outputFileType也是一个MP4文件,效果非常好。后来我把它全部改为M4V(包括导出的视频是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: {

        })

感谢您的帮助:)

AVAssetExportPresetHighestQuality
仅支持.mov文件。您必须改用
AVAssetExportPresetPassthrough

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

根据,
AVAssetExportPresetLowQuality
AVAssetExportPresetMediumQuality
AVAssetExportPresetHighQuality
仅适用于QuickTime.mov文件


您可以通过尝试打印
AVAssetExportSession
的变量
supportedFileTypes
的内容来了解更多信息

AVAssetExportPresetLowQuality
AVAssetExportPresetMediumQuality
AVAssetExportPresetHighQuality
也适用于
AVFileTypeMPEG4