文章标题

来源:互联网 发布:在哪买淘宝店铺好 编辑:程序博客网 时间:2024/06/06 05:38

对于直播的个人理解,

视频直播分为,采集,前处理,编码,传输,服务器处理,解码,渲染

关于采集,iOS因为硬件适配好,所以有些直播平台基本都做iOS端的直播视频
软编码的话图像质量更加清晰,但是耗电太大,会烫到摄像头
采集端框架
VideoCore和LiveVideoCoreSDK

关于前处理来说,主要功能就是美颜,视频模糊,水印,用的框架是GPUImage
GPUimageBeautifyFiter类进行美颜
高斯磨皮,双边滤波,

编码,难点就是分辨率,帧率,码率,GOP等参数找平衡点,在iOS8后推出了VideoToolBox.framework直接可以进行硬编解码,也就是为什么iOS最低支持iOS8

传输就交个CDN服务商,他只负责带宽和服务商之间的传输,发送端和接收端的网络连接抖动缓存还是得自己思想,网宿是最大的CDN服务商

服务商处理的话那就是RTMP,处理时间实在1到3秒
RTMP处理时间延迟低,基于TCP的超链接,数据处理及时
HLS呢,延迟高,短链接,集合了一段时间的视频输入出个下载播放

流媒体分为伪流媒体和实时流媒体
伪流媒体呢,不是实时播放的,先把视频放下数据库,再提供客户端访问的,边下边存,文件能保存,遵循的是HTTP协议,实现简单,成本低

实时流媒体,真正的流媒体,边下边放,但是不保存文件,只能实时播放,成本高,实现复杂

解码渲染
推流框架那就是LFLiveKit和LiveVideoCoreSDK
播放端就是RTMP优化过的IJKPlayer或者FFPeg

LFLiveKit关键类是LFLiveSession

推流前的工作,采集,处理,编码
推流中的工作,封装,打包,上传
封装数据成FLV,通过RTMP协议打包上传,从主播端到服务器端即基本完成推流
FLV是一种新的视频格式,全称是FiashVideo
加速快,文件小

整体来看的话就是
推流端
,RTMP推流 - 源站,RTMP拉流 - CDN节点 -CDN节点 - 播放端

0 0
原创粉丝点击