一个视频直播系统最重要的当然是服务器端的直播系统搭建,这涉及到直播方视频推流的接收、实时转码,自动编码,网页端的不同码率自动编码。在搭建视频直播系统的所有支出中,最贵的就是宽带费用。相对而言,因为视频的转码压力只来自于视频直播方,服务器硬件反而并不需要多么强大。


视频直播系统


现在,直播行业正处于一个爆发式增长状态,先从秀场为主的直播方式,再到游戏直播,再到以UGC为主的内容生成方式的移动直播,将各行各业的内容以直播的方式分享。一般情况下,直播网站的情况都是直播的人数远小于看直播的人数。所以上万用户同时观看720p以上的视频对于服务器上传带宽的考验是相对较大的。


1、直播方的推流


通常,PC都是用obs推流,服务器只需要考虑怎么接收obs推流数据。为了减小服务器压力,同时还考虑到画面清晰度,推流码率一般都限制在2500-10000。至于美颜、混音这些功能都是obs插件/声卡功能。目前市场上很多主流直播平台都会提供一些obs插件。


手机端直播,iOS可以找一些开源项目或者第三方API等,主要是美颜的功能和混音等需要自己开发,视频流在手机端的简单编码推流等。


视频直播系统搭建


2、服务器端


服务器端主要考虑三个方面,一是直播方推流的接收,二是视频流的实时转码,三是网页端的建设。直播流的接收,可以从OBS官网得到一些帮助。视频流,一般来说都是会自动判定推流分辨率和码率。视频流的实时转码,大部分前沿的都是转为h.265以节约带宽,h.265能以较低的码率实现较高的画质,可以节省大量带宽。


2、网页端


网页端主要是获取观众基本硬件信息,自适应flash或html5等,解码一般是有观众的CPU或GPU解码播放,难点在网页端的视频播放器。至于卡顿问题,直播方上传带宽低,只能换高上传的带宽;服务端一般只要设计合理,硬件够用,就不太会出现因为服务器而导致卡顿的问题;用户卡硬件卡,需要用户升级电脑手机,或者选择低清的码率观看。