iOSiOS音视频开发经验之路

iOS小视频录制(类似微信)

2017-07-02  本文已影响325人  低调的魅力

前言:前一段时间产品新需求,说是要做微信的小时频功能.
功能需求:360x640 or 640x360的分辨率,大小在2MB 之内的 MP4格式
短视频 demo 地址
思路:使用 AVFoundtion框架提供的 AVCaptureSession进行录制,
大致如下:
摄像头,麦克风(input)->AVCapture Session->AVCaptureVideoDataOutpu(仅视频数据,无音频数据)t,AVCaptureAudioDataOutput(音频数据),AVCaptureStillImageOutput(照片),AVCaptureMovieFileOutput(有视频,也有音频)->AVAssetWriter封装视频和音频格式,写入磁盘,完成录制

关系图.jpg

1.AVCaptureDeviceInput(输入设备):包括摄像头(前置,后置),麦克风,负责采集视频和音频数据
2.AVCaptureVideoDataOutpu:输出视频数据,仅仅只是视频,没有声音,可以对视频格式和参数进行自定义封装和添加滤镜处理
3.AVCaptureAudioDataOutput:输出音频数据,可以对格式和参数进行自定义封装
4.AVCaptureStillImageOutput:照片数据,用户获取静态图像(拍照)
5.AVCaptureMovieFileOutput:输出完整视频(包括音频),优点:录制简单,缺点:可定制性差,短视频不适用(体积太大)
6.AVCapture Session:用于处理输入与输出之间的数据流
7.AVCaptureVideoPreviewLayer:摄像头实时预览 layer, 可以预览摄像头采集的实时视频信息
8.AVAssetWriter:封装音视频格式,写入磁盘

代码示例:

1.录制:
<pre>

//后置摄像头输入

//前置摄像头输入

//麦克风输入

//视频输出

//音频输出

//静态图像输出

//音频连接

//捕获到的视频呈现的layer

//录制的队列

</pre>

2.格式封装和配置参数
<pre>
//初始化视频输入

//初始化音频输入

3.视频方向控制
<pre>

</pre>

PS: 以上只是贴出了部分代码片段,完整代码请看 demo

上一篇 下一篇

猜你喜欢

热点阅读