首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAssetExportSession未导出M4V文件

AVAssetExportSession未导出M4V文件
EN

Stack Overflow用户
提问于 2017-08-13 14:12:43
回答 1查看 874关注 0票数 1

我正在尝试用Swift做一个AVAssetExportSession,我得到这个错误:'NSInvalidArgumentException', reason: 'Invalid output file type'。我查找了这个错误,它告诉我,对于视频,Swift只支持QuickTime文件、MP4和AppleM4V,这很奇怪,因为我正在尝试导出M4V文件。但是,我尝试导出一个MP4视频,其文件名具有MP4扩展名,并且outputFileType也是一个MP4文件,效果令人惊叹。后来我将其更改为all be M4V (包括要导出的视频为M4V文件),它给出了错误。我做错了什么吗?我的代码如下:

代码语言:javascript
复制
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: {

        })

感谢您的帮助,谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-13 14:40:19

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

代码语言:javascript
复制
let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetPassthrough)

根据Documentation的规定,AVAssetExportPresetLowQualityAVAssetExportPresetMediumQualityAVAssetExportPresetHighQuality仅适用于QuickTime .mov文件。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45657650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档