先转一张图
直播类的app基本的思维导图:
1.音视频的采集
通过AVFoundation框架来获取来获取音视频数据。
2.视频处理
视频也就是一张张的图片图片构成。那么图片就能做很多事情,但是又不可能如同图片那么简单的处理。需要用到GPUImage框架。
3.音视频编码
FFempeg,X264框架,videoToolbox,AudioToolbox
数据是AVFoundation采集,最后在 AVCaptureVideoDataOutputSampleBufferDelegate 的代理方法中获取。也就是
-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
中,通过AVCaptureOutput来确定收集的是音频还是视频,分别是:AVCaptureVideoDataOutput
和AVCaptureAudioDataOutput。
4.推流
根据服务端的流媒体进行数据传输
5.分发(服务端)
这个进行数据分发,在分发之前可以有鉴黄,截屏,实时转码
6.拉流
没啥好说的
7.音视频解码
FFempeg,X264框架,videoToolbox,AudioToolbox
用以上框架进行解码
8.播放
以上内容就是对直播研发的初步了解,其实也就是一个流程或者思维导图。
其实直播这块需要学的还有很多,如:音频及视频的基础知识这些。了解后对音视频的开发会有很多帮助。
以后如有更多的好东西继续学习并记录。