iOS 视频选择压缩
//原理,还是调用UIImagePickerController控制器,设置Type为视频
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
@interface ViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//打开控制器
UIImagePickerController *picker=[[UIImagePickerController alloc]init];
//picker.sourceType=UIImagePickerControllerSourceTypeCamera;//设置摄像头类型 摄像头
//picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;//打开相册,获取资源,视频和图片用户拍摄的照片可以删除,
//picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;//打开相册库,用户与电脑同步的,不能删除
picker.delegate=self;
//设置媒体类型
picker.mediaTypes=[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
//显示控制器
[self presentViewController:picker animated:YES completion:nil];
}
#pragma mark UIImagePickerControllerDelegate
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//如果是视频返回的是URL
NSURL*url=info[UIImagePickerControllerMediaURL];
//使用媒体工具 压缩
[self compressVideo:url];
//关闭控制器
[self dismissViewControllerAnimated:YES completion:nil];
}
//压缩
-(void)compressVideo:(NSURL*)url
{
//使用媒体工具(AVFoundation框架下的)
//Asset 资源 可以是图片音频视频
AVAsset *asset=[AVAsset assetWithURL:url];
//设置压缩的格式
AVAssetExportSession *session=[AVAssetExportSession exportSessionWithAsset:asset presetName:AVAssetExportPresetMediumQuality];//mediumquality:中等质量
//设置导出路径
NSString *path=[NSTemporaryDirectory() stringByAppendingPathComponent:@"needAV.mov"];
//创建文件管理类 导出失败,删除已经导出的
NSFileManager *manager=[[NSFileManager alloc]init];
//删除已经存在的
[manager removeItemAtPath:path error:NULL];
//设置到处路径
session.outputURL=[NSURL fileURLWithPath:path];
//设置输出文件的类型
session.outputFileType=AVFileTypeQuickTimeMovie;
//开辟子线程处理耗时操作
[session exportAsynchronouslyWithCompletionHandler:^{
NSLog(@"导出完成!路径:%@",path);
}];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
//参考资料 http://www.cnblogs.com/wanghuaijun/p/5575255.html。
iOS 视频选择压缩的更多相关文章
- ios 视频/图片压缩
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- iOS视频硬编码技术
iOS视频硬编码技术 一.iOS视频采集硬编码 基本原理 硬编码 & 软编码 硬编码:通过系统自带的Camera录制视频,实际上调用的是底层的高清编码硬件模块,即显卡,不使用CPU,速度快 软 ...
- 浅谈iOS视频开发
浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从 ...
- iOS视频编辑SDK
IOS视频编辑SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x72 ...
- iOS 视频开发学习
原文:浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我 ...
- iOS视频开发经验
iOS视频开发经验 手机比PC的优势除了便携外,我认为最重要的就是可以快速方便的创作多媒体作品.照片分享,语音输入,视频录制,地理位置.一个成功的手机APP从产品形态上都有这其中的一项或多项,比如in ...
- iOS - 视频开发
视频实质: 纯粹的视频(不包括音频)实质上就是一组帧图片,经过视频编码成为视频(video)文件再把音频(audio)文件有些还有字幕文件组装在一起成为我们看到的视频(movie)文件.1秒内出现的图 ...
- 最近这么火的iOS视频直播
快速集成iOS基于RTMP的视频推流 http://www.jianshu.com/p/8ea016b2720e iOS视频直播初窥:高仿<喵播APP> http://www.jiansh ...
- IOS 视频分解图片、图片合成视频
在IOS视频处理中,视频分解图片和图片合成视频是IOS视频处理中经常遇到的问题,这篇博客就这两个部分对IOS视频图像的相互转换做一下分析. (1)视频分解图片 这里视频分解图片使用的是AVAssetI ...
随机推荐
- Supervisor – 用于 Unix 系统的进程监控工具
Supervisor 是一个客户端/服务端模式的系统,使用户能够监视和控制 UNIX 操作系统的进程.Supervisor 为你提供一个地方来启动,停止和监视进程.进程可以单独或成组的形式控制.您还可 ...
- C中extern的用法
/*********************************************************************** INPUT3.C -- Input data pars ...
- E:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
安装terminator等一些软件等时候,遇到了这样等问题 leo@leo:~$ sudo apt-get install terminator [sudo] password for leo: 正在 ...
- IOS开发UI基础之UIButton
什么是按钮?
- Genymotion模拟器环境搭建中的各种坑,终极解决办法
最近刚进入了一家公司,因为要做自动化测试,web端的业务需要移动端来进行配合,想了想还是利用genymotion模拟器吧:很久前装过,那也是一路坎坷啊,结果这次还是遇到坑了,搞了老半天:我希望我踩过的 ...
- mysql一个事务中有DDL语句的binlog情况
在autocommit=1的情况下,开启一个事务,如果里面有DDL语句,那么事务开始到DDL语句之间的DML语句都会被提交.再开启新的事务.可以从binlog中看出 session语句: 09 ...
- 《构建之法》第8、9、10章 读书笔记和Sprint总结
第八章:需求分析 这章主要解析了需求的多面方面,不同的项目需要不同的手段,真正的需求稍纵即逝,需要靠火眼金睛和敏捷的身手来发现并抓住它们.另外,很多时候用户并不知道自己确切的需求,或者不愿意表达完整的 ...
- 基于吉日嘎底层架构的Web端权限管理操作演示-角色管理
上一篇介绍了用户管理,这篇来介绍角色管理,这是权限管理的核心部分,因为我们的权限管理系统是基于角色的,有个高大上的英文名叫RBAC(Role Based Acccess Control). 下面的这段 ...
- js不间断滚动
CSS ul, li { margin: 0; padding: 0; } #scrollDiv { width: 300px; height: 25px; line-height: 25px; bo ...
- (旧)子数涵数·DW——网页制作的流程
PS:这是我很早以前的一个废掉的项目. 当时用的还是table排版,现在基本都是div了吧. 这个项目前段时间,我还抢救过一次,后来还是放弃了. 先行.网页制作的流程分为哪些呢? 一.网站策划(当时, ...