我正在开发视频应用程序,用户可以在设备的图库中选择任何视频,然后将所选视频的分辨率转换为1280 X 720
分辨率。
我尝试使用AVAssetExportSession
AVAssetExportPreset1280x720
转换视频分辨率,但是问题是更改分辨率后视频帧不正确。
请参见以下代码:
func updateVideoResolution(videos: VideoModel, inputURL: URL, outputURL: URL, handler:@escaping (_ exportSession: AVAssetExportSession?)-> Void) {
let urlAsset = AVURLAsset(url: inputURL, options: nil)
guard let exportSession = AVAssetExportSession(asset: urlAsset, presetName: AVAssetExportPreset1280x720) else {
handler(nil)
return
}
exportSession.outputURL = outputURL
exportSession.outputFileType = AVFileTypeQuickTimeMovie
exportSession.shouldOptimizeForNetworkUse = true
exportSession.exportAsynchronously { () -> Void in
DispatchQueue.main.async(execute: {
handler(exportSession)
})
}
}
请告知。