iOS视频录制、压缩导出、取帧

首发博客:标哥的技术博客

关注公众号:iOS开发技术分享

概述

花了点时间研究了一下常用的视频获取、录制、压缩并导出、保存到相册、取帧图功能,分享给大家了!相信阅读完本篇文章,会对你有很大的帮助的!

记得关注微博、公众号哦,请到文章末尾跳转!

本篇文章研究几下以个功能:

需要真机测试,才能录制视频!

效果图

image

视频录制

首先,我们弹出系统的视频录制界面,也就是UIImagePickerController控制器来实现,但是我们需要验证用户授权,只有有录制视频的权限,才能继续往下。

我们还需要判断UIImagePickerControllerSourceTypeCamera是否支持,比如模拟器就不支持,当然真机是否有不支持的并不知道,不过更安全的写法是要这么写的。视频录制可以设置录制的视频的质量,也就是分辨率的高低,通过videoQuality属性来设置。我们还可以设置录制视频的最大时长,通过videoMaximumDuration属性设置,比如这里设置为5分钟。

// 7.0
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if (authStatus == AVAuthorizationStatusRestricted
    || authStatus == AVAuthorizationStatusDenied) {
  NSLog(@"摄像头已被禁用,您可在设置应用程序中进行开启");
  return;
}

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
  UIImagePickerController *picker = [[UIImagePickerController alloc] init];
  picker.delegate = self;
  picker.allowsEditing = YES;
  picker.sourceType = UIImagePickerControllerSourceTypeCamera;
  picker.videoQuality = UIImagePickerControllerQualityType640x480; //录像质量
  picker.videoMaximumDuration = 5 * 60.0f; // 限制视频录制最多不超过5分钟
  picker.mediaTypes = @[(NSString *)kUTTypeMovie];
  [self presentViewController:picker animated:YES completion:NULL];
  self.shouldAsync = YES;
} else {
  NSLog(@"手机不支持摄像");
}

然后实现代理,就可以拿到录制的视频了。

从相册选择视频

从相册选择视频与弹出录制视频的代码差不多,只是sourceType不一样而已。我们一样要求先判断权限,用户是否授权,若不允许,就没有办法了。

指定sourceType为UIImagePickerControllerSourceTypeSavedPhotosAlbum就是获取保存到相册中的media。我们还要指定mediaTypes,只需要设置为kUTTypeMovie就可以了。

AVAuthorizationStatus authStatus = [AVCaptureDev
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值