我正在尝试压缩视频以便在swift中使用,但是如果我将质量设置为AVAssetExportPresetHighQuality或者使用AVAssetExportPresetMediumQuality设置质量太低(视频非常颗粒感,那么我遇到的视频问题为9 MB)不适合任何消费者实际使用)。是否还有其他方法可以控制文件大小,例如在录制时设置比特率?我的压缩代码在下面并且非常基本,但它会创建质量很差的视频。我希望文件的大小大约为1-3 MB并且质量正常但是我找不到任何介质。
func compressVideo(inputURL: NSURL, outputURL: NSURL, handler:(session: AVAssetExportSession)-> Void)
{
/*var settings: [NSObject : AnyObject] = [AVVideoCodecKey: AVVideoCodecH264, AVVideoWidthKey: 1080, AVVideoHeightKey: 1920, AVVideoCompressionPropertiesKey: [AVVideoAverageBitRateKey: 100, AVVideoProfileLevelKey: .Main31, AVVideoMaxKeyFrameIntervalKey: 30]]
var writer_input: AVAssetWriterInput = AVAssetWriterInput.assetWriterInputWithMediaType(AVMediaTypeVideo, outputSettings: )*/
let urlAsset = AVURLAsset(URL: inputURL, options: nil)
let exportSession = AVAssetExportSession(asset: urlAsset, presetName: AVAssetExportPresetMediumQuality)
exportSession!.outputURL = outputURL
exportSession!.outputFileType = AVFileTypeQuickTimeMovie
exportSession!.shouldOptimizeForNetworkUse = true
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
handler(session: exportSession!)
}
}