Я пытаюсь сжать видео с помощью PHImangeManager exportSession.
Вот мой код
let manager = PHImageManager.default()
let requestOptions = PHVideoRequestOptions()
requestOptions.deliveryMode = .fastFormat
requestOptions.version = .current
requestOptions.isNetworkAccessAllowed = true
requestOptions.progressHandler = { progress, error, stop, info in
print(“cacheAsset: \(progress)“)
}
manager.requestExportSession(forVideo: asset, options: requestOptions, exportPreset: AVAssetExportPresetPassthrough, resultHandler: { exportSession, info in
guard let session = exportSession else {
handler(nil)
return
}
session.outputURL = compressedURL
session.outputFileType = AVFileType.mp4
DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).async {
session.exportAsynchronously(completionHandler: {
Я пробовал много опций в deliveryMode и в предустановленном режиме, вот наблюдение
1> Любая опция, кроме AVAssetExportPresetPassthrough
, сжимаетвидео, но занимает слишком много времени для обработки
2> option AVAssetExportPresetPassthrough обрабатывает без задержки, но не сжимает
У меня вопрос *
Могу ли я сжать видео некоторым методом, который делаетне займет много времени, чтобы обработать?