直播系统推拉流端技术

想要搭建网络视频直播系统就要明白视频直播的过程是什么样的,而直播流程可以分为采集、前处理、压缩编码、推流、拉流、解码、渲染播放这几个环节,其中涉及到推流端、拉流端和服务器三端的知识点,服务器方面的知识点很多,拓幻科技这里先简单说下推流端和拉流端的一些知识点,服务器方面可以先看我以前写的文章。

一、 推流端的四个环节
1、 首先是采集环节:采集是指对图像和声音的采集,简单说就是能让网络视频直播系统和主播摄像头连起来,软件能获取到外界的音视频信息。
然后是前处理阶段:这里也是俗称美颜的阶段,这要求我们在网络视频直播系统中加入美颜、特效、萌颜等效果,而这个算法需要涉及到GPU编程,这个阶段的难点不在于美颜,因为美颜通常使用SDK来解决的,重点在于GPU占比。
2、 目前市面上的手机硬件配置已经越来越高了,但在一些老旧机型上,功耗仍然是个很大的问题,GPU占用太高会导致手机发烫、摄像头掉帧甚至软件闪退。
3、 接下来就是编码了,编码是为了压缩数据也是为了更好的解码,通常我们会选择用硬编码来平衡编码速度和编码质量之间的效率比,但软编仍然是画面质量更高的选择,也有用户愿意使用软编码的方式,因此在最初设计系统时,我们应当同时设计好软编硬编两种编码方式。
4、 推流端最后一个操作就是推流,把视频推流到服务器,以便于直播视频的分发和拉流,至此,主播端的全部设置就结束了,在这里有几个难点。

二、 推流端的设计难点
现在的主流手机系统有ios和安卓,IOS还好,机型较少,适配起来还算容易,但是安卓市场手机硬件之间的差别是非常严重的,需要耗费大量的精力做对安卓机型的适配,否则在后期用户体验就会非常差,可能会出现像之前王者荣耀更新时出现的事故一样——某机型反复闪退或无法进入——在网络视频直播系统搭建上,不好好做安卓机型的适配结果就是使直播平台失去一种或几种手机机型使用者,从而造成口碑是影响和流量的浪费

三、 拉流端的三个环节
1、 用户想看直播就要去服务器进行拉流,什么是拉流?你打开视频网站,点击视频,你点击视频和视频打开之间的时间段,就是你的客户端去向服务器请求拉流了,这一步要注意的是首屏开启时间,时间越短,观众越有可能被留下。
2、 有编码就要有解码,编码上会出现安卓适配问题,那解码上当然也会出现该问题,网络视频直播系统自带编解码程序的优势就在于它能够避免因手机机型不同,视频格式不同而产生的不同机型无法播放的情况。
3、 渲染环节交给手机就可以了,播放之后用户就可以进行观看了。

以上就是一个较为完整的直播视频播放流程,在搭建网络直播系统之路上,我们还需要CDN服务和服务器的帮助,内容分发网络能辅助我们的网络直播系统降低延迟,服务器承担计算的能力。