swift版视频录制后格式转换,转载请声明
2016-04-12 15:09
513 查看
// 仅仅转换格式
func convertVideoQuailtyWithInputURL(inputUrl:NSURL,outputUrl:NSURL,completeHandler:(handler:AVAssetExportSession)->Void)->Void{
let avAsset =
AVURLAsset.init(URL: inputUrl, options:
nil)
let exportSession =
AVAssetExportSession.init(asset: avAsset, presetName:
AVAssetExportPresetHighestQuality //输出质量)
exportSession?.outputFileType =
AVFileTypeMPEG4 //类型
exportSession?.outputURL = outputUrl
exportSession?.shouldOptimizeForNetworkUse =
true
exportSession?.exportAsynchronouslyWithCompletionHandler({ () ->
Void
in
switch exportSession!.status {
case AVAssetExportSessionStatus.Cancelled:
print("AVAssetExportSessionStatusCancelled")
case AVAssetExportSessionStatus.Unknown:
print("AVAssetExportSessionStatusUnknown")
case AVAssetExportSessionStatus.Waiting:
print("AVAssetExportSessionStatus.Waiting")
case AVAssetExportSessionStatus.Exporting:
print("AVAssetExportSessionStatus.Exporting")
case AVAssetExportSessionStatus.Completed: //转码完成后在这里操作后续
print("AVAssetExportSessionStatusCompleted")
print("=====\(self.getVideoLength(outputUrl))")
print("=====\(self.getFileSize(outputUrl.path!))")
completeHandler(handler: exportSession!)
default:
break
}
})
}
func convertVideoQuailtyWithInputURL(inputUrl:NSURL,outputUrl:NSURL,completeHandler:(handler:AVAssetExportSession)->Void)->Void{
let avAsset =
AVURLAsset.init(URL: inputUrl, options:
nil)
let exportSession =
AVAssetExportSession.init(asset: avAsset, presetName:
AVAssetExportPresetHighestQuality //输出质量)
exportSession?.outputFileType =
AVFileTypeMPEG4 //类型
exportSession?.outputURL = outputUrl
exportSession?.shouldOptimizeForNetworkUse =
true
exportSession?.exportAsynchronouslyWithCompletionHandler({ () ->
Void
in
switch exportSession!.status {
case AVAssetExportSessionStatus.Cancelled:
print("AVAssetExportSessionStatusCancelled")
case AVAssetExportSessionStatus.Unknown:
print("AVAssetExportSessionStatusUnknown")
case AVAssetExportSessionStatus.Waiting:
print("AVAssetExportSessionStatus.Waiting")
case AVAssetExportSessionStatus.Exporting:
print("AVAssetExportSessionStatus.Exporting")
case AVAssetExportSessionStatus.Completed: //转码完成后在这里操作后续
print("AVAssetExportSessionStatusCompleted")
print("=====\(self.getVideoLength(outputUrl))")
print("=====\(self.getFileSize(outputUrl.path!))")
completeHandler(handler: exportSession!)
default:
break
}
})
}
相关文章推荐
- AVCaptureSession横屏下图层方向问题(swift)
- swift throws 捕获异常
- Swift中去掉字符串格式数字小数点后多余的0 (自写)
- Viewing the interface of your Swift code,查看Swift代码的头文件的三种方法
- 自定义滑条封装含有百分比例显示(swift版)
- swift Defer语法
- swift Guard语法
- Swift中声明协议中的class关键字的作用
- Swift中声明协议中的class关键字的作用
- Swift中声明协议中的class关键字的作用
- swift学习日记-可选链(optional chaining)
- swift学习日记-基础部分
- Swift字符串和基本数据类型之间转换
- Swift3.0获取APP版本号,提示用户升级
- Swift Tour
- Swift 定位 SwiftLocationManager
- swift 初步接触 基本语法 方法命名 !和?区别 as!和as?区别 let和var区别 extension override private (一)
- Openstack Swift 原理、架构与 API 介绍
- Swift基础语法(常量变量、数据类型、元组、可选、断言等)
- Swift开源项目汇总