这是我用来在Swift中压缩视频文件的功能:
private func compressVideo(inputURL: URL, outputURL: URL, handler:@escaping (_ exportSession: AVAssetExportSession?)-> Void) {
let urlAsset = AVURLAsset(url: inputURL, options: nil)
guard let exportSession = AVAssetExportSession(asset: urlAsset, presetName: AVAssetExportPresetLowQuality) else {
handler(nil)
return
}
exportSession.outputURL = outputURL
exportSession.outputFileType = AVFileType.mp4
exportSession.shouldOptimizeForNetworkUse = true
exportSession.exportAsynchronously { () -> Void in
handler(exportSession)
}
}
但是结果不是我期望的;)例如,当我在竞争之前有17MB的大小时,则输出为0.6MB。是否可以在某处设置某种压缩或其他类型的结果以获得更好的质量?当我在输出中获得〜2MB文件大小时,我会感到满意。
您可以使用AVAssetExportPresetMediumQuality
获得比AVAssetExportPresetLowQuality
更好的质量。