当我从UIImagePickerController
或我们的自定义图片选择器中选择MPEG-4 / MP4视频时,请求的AVAsset
文件大小远远大于原始视频,即使它是显示在设备上和iCloud Photo Library中的尺寸较小。
例如,我保存到设备的测试MP4视频在照片中列为73.5MB,但AVAsset
显示为大约437MB。
我们的自定义图片选择器不对视频进行处理; UIImagePickerController
显示编辑视图,之后需要几秒钟“压缩”视频。这两种方法最终都显示了437MB的文件大小。
我们应该在图像选择器完成后单独处理视频,还是在此处进行其他操作?
编辑:这是我们用来确定文件大小的代码:
@objc var fileSize: Int64 {
guard let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality) else {
return 0
}
exportSession.outputFileType = AVFileType.mov
let duration: CMTime = CMTimeMultiplyByFloat64(exportSession.asset.duration, 1)
exportSession.timeRange = CMTimeRangeMake(kCMTimeZero, duration)
return exportSession.estimatedOutputFileLength
}