最近在做一款发布视频到动态的功能,里面用到了 视频的录制,视频的压缩,获取视频的缩略图,以及视频上传七牛,同时还有本地视频跟网络视频的处理,直接上代码,方便自己多多总结
1.视频的录制
HVideoViewController 这是一款仿微信录制页面的第三方控件,录制原理是AVCaptureSession的设备硬件的输入输出的封装,里面有关于摄像头的设置以及参数的配置,录制完成后会自动播放录制的视频,当然了,这些都是封装好的,最关健是录制完视频之后
这个方法是录制完成后有个对勾按钮,点击之后就会来到这个block回调方法中,在这里你可以获取到你录制视频的url,同时你可以通过这个url获取你想要的视频封面缩略图
2.获取缩略图
这个方法是获取视频的第一桢得到图片就是你的背景图,方便吧
3.视频压缩
我们都知道录取的视频都很大,一个10s的小视频可能就得快20m左右。那么必须得压缩视频,我这里用的是系统本身的压缩方法,同时你可以使用很牛逼的ffmpeg进行视频的压缩,但毕竟是小视频,就选择了简单。哈哈哈
注意点:
不能有相同名字的视频,否则压缩失败,所以建议使用时间戳来拼接
这个里面的presetname是你要选择的压缩比率 一般情况下你选择中等就行,毕竟是小视频
在获取本地视频压缩的时候,会有个方法
//.如果为视频
ALAsset*Vasset = asset;
if ([[Vasset valueForProperty:ALAssetPropertyType] isEqual:ALAssetTypeVideo]) {
//获取视频的本地url 给self.videoURL
//.获取缩略图
UIImage *image = [UIImage imageWithCGImage:[Vasset thumbnail]];
self.videoURLImage= image;
self.videoURL = [[Vasset defaultRepresentation] url];
这个方法获取的缩略图很模糊,所以不建议使用
4.上传七牛
在这里我先把视频上传七牛然后上传成功后把封面缩略图上传七牛
需要获取七牛的token 同时你需要自己到七牛开一个空间
然后请求服务器这时候你就把上传七牛时的时间戳定义为你上传这个视频的名字传给你的服务器就ok,你跟后台商量让他拼接成网络的url就ok。然后你去动态里面请求服务器的时候会得到这个url,你通过这个URL去七牛寻找你上传的视频,大文件下载断点续传到沙盒,保证你第二次点击这个视频,不会再次从七牛去哪,直接本地播放就ok,
欢迎大家指正,谢谢
录制视频参考地址:
http://www.jb51.net/article/108890.htm
网友评论