iOS AVAssetExportSession视频进行转码、裁剪
来源:互联网 发布:sql insert into 多表 编辑:程序博客网 时间:2024/05/24 07:02
你可以对视频进行转码、裁剪,通过使用AVAssetExportSession对象。这个流程如下图所示,
一个export session是一个控制对象,可以异步的生成一个asset。可以用你需要生成的asset和presetName来初始化一个session,presetName指明你要生成的asset的属性。接下来你可以配置export session,比如可以指定输出的URL和文件类型,以及其他的设置,比如metadata等等。你可以先检测设置的preset是否可用,通过使用exportPresetsCompatibleWithAsset:方法。
AVAsset *anAsset = <#Get an asset#>;NSArray *compatiblePresets = [AVAssetExportSession exportPresetsCompatibleWithAsset:anAsset];if ([compatiblePresets containsObject:AVAssetExportPresetLowQuality]) { AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:anAsset presetName:AVAssetExportPresetLowQuality]; // Implementation continues.}
你可以配置session的输出的url(这个url必须是文件url),AVAssetExportSession可以推断通过url的扩展名出输出文件的类型。当然,你可以直接设置文件类型,使用outputFileType。你还可以指定其他属性,比如time range,输出文件的长度等等,下面是列子:
exportSession.outputURL = <#A file URL#>; exportSession.outputFileType = AVFileTypeQuickTimeMovie; CMTime start = CMTimeMakeWithSeconds(1.0, 600); CMTime duration = CMTimeMakeWithSeconds(3.0, 600); CMTimeRange range = CMTimeRangeMake(start, duration); exportSession.timeRange = range;
生成一个新的asset,可以调用exportAsynchronouslyWithCompletionHandler:,当生成操作结束后会回调block,在这个block中你需要通过检查session的status来判断是否成功,如下:
[exportSession exportAsynchronouslyWithCompletionHandler:^{ switch ([exportSession status]) { case AVAssetExportSessionStatusFailed: NSLog(@"Export failed: %@", [[exportSession error] localizedDescription]); break; case AVAssetExportSessionStatusCancelled: NSLog(@"Export canceled"); break; default: break; } }];
你可以取消这个生成操作,通过给session发送 cancelExport 消息。如果导出的文件存在,或者导出的url在沙盒之外,这个导出操作会失败。还有两种情况也可能导致失败:· 来了一个电话· 你的程序在后台运行并且其他的应用开始播放。这种情况下,你应该通知用户export失败,并且重新export。
- iOS AVAssetExportSession视频进行转码、裁剪
- AVAssetExportSession 视频转码
- iOS 两个视频首尾合并- AVAssetExportSession
- 视频 裁剪 合并 ios
- 视频 裁剪 合并 ios
- iOS视频裁剪
- ios AVAssetExportSession的使用完整版
- ios裁剪视频 加水印
- iOS开发中使用SCRecorder进行视频裁剪遇到的问题
- AVAssetExportSession 导出视频无法完成操作
- iOS开发-相册视频编辑裁剪
- 视频裁剪,长度裁剪
- 如何用Directshow进行视频或音频的裁剪
- opencv读写视频,对感兴趣区域进行裁剪
- 利用ffmpeg对视频进行裁剪与拼接
- IOS视频编辑,视频裁剪,视频拼接,音频处理,视频处理
- iOS视频裁剪、拼接、添加水印、添加背景音乐
- iOS 通过CGImageRef来进行图片的截取、裁剪
- C语言里面,四舍五入的原理
- R语言评测回归模型的性能
- 协方差和协方差矩阵详解
- 机器学习-(1):监督学习
- tensorflow 中MNIST数据集下载
- iOS AVAssetExportSession视频进行转码、裁剪
- Java多线程之模拟一个阻塞队列
- Android相机开发中遇到的坑(注意事项)
- 两数组的交 II
- 导入SDE类型为esriGeometryPoint,在SDE中导出为esriGeometryAny
- Dao使用jdbcTemplate(注入过程)
- tcp超时重传
- TPshop5最新版 安装 nginx 开启PATHINFO 模式资源加载路径加载失败问题,适用tp3.2PATHINFO模式REWRITE模式
- Pycharm 快捷键盘