如何在swift

时间:2016-07-13 05:43:19

标签: ios swift video compression

我正在尝试压缩视频以便在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!)
    }

}

0 个答案:

没有答案