如何快速搭建运营级的网络直播平台
网络直播在近两年异常火热,比如我们所熟知的秀场直播平台(9158、6间房、YY、花椒);移动直播平台(映客);在线直播购物平台(菠萝蜜);在线教育平台(百度传课、淘宝同学)。
由于朋友公司的老总拿到了一大笔投资,准备搭建自己的旅游直播平台,本人作为流媒体技术方面的码农被应招入伍并被委以重任,带领团队打造一套自己的网络直播平台。
经过几个月的战斗最近终于完成了一套完整的直播平台建设,经历了太多苦逼的加班和熬夜,但是也得到了不小的收获,下面就把我这段经历记录下来与大家一起分享。
接到领导下达的任务后,几天内心里一直忐忑不安。虽然被赋予了大权,但是因为我之前在华为工作时主要负责IPTV流媒体平台部分,现在将整个端到端的解决方案都要我来掌控和负责,真切感受到了什么叫“肚子里的墨水还是太少”。因为这个平台的确比IPTV还要复杂,不仅包括流媒体内容分发平台,还包括多种前端设备的采集编码(PC终端、Android和iOS移动终端),多节目源的导播切换、台标和字幕的叠加,视频弹幕,多分辨率视频的实时转码,多播放终端的节目流适配,多终端的硬件解码,移动APP的开发,互动功能的开发等等一系列工作。所有这些,都需要自己亲自去实现。而在之前的IPTV应用中,前端编码有现成的编码硬件实现,终端解码也有N多种现成的机顶盒支持。
无奈,已经箭在弦上,不得不发了。因此接下来开始做各种构思、技术信息收集和开发准备工作。
首先,我还是按照端到端的业务流程来逐个寻找解决方案,
游戏直播业务流程图
根据上面的业务流程图,我们团队开始按部就班地开始行动。
第一步,PC端视音频采集
目前最火并且流量最大的游戏还是端游,比如英雄联盟、剑灵、坦克世界、DOTA2、跑跑卡丁车、梦三国、怪物猎人、完美世界、穿越火线、魔兽世界、梦幻西游、炉石传说等大型游戏,需要完美采集PC端的游戏画面和音频,
PC端的图像目前主流的是1080P高清分辨率,并且主要是运动画面,数据量非常大,如何高效地采集到这些数据并且还要实时地进行编码压缩,同时要有更高的压缩效率从而节省平台端的数据带宽成本,都是需要详细考虑的问题。
为了完成这一步,我们详细比较了多种不同的实现方案,主要有如下几种:
1) 采用目前市面上现成的硬件视频编码设备;
我们测试了多个厂商的设备,这种设备通过内置的DSP专用芯片做视音频处理,实时性很好,但是测试后发现其对运动图像的处理效果不好,编码后的图像会有比较大的失真,并且压缩效率低,产生的数据量大。此外,广播级的硬件编码设备单台价格都在2万元左右,不适合我们面向个人玩家推广。
2) 通过硬件+软件的方式来实现;
按照通常视频会议的应用模式来实现,配置专业的高清视频采集卡和PC端视频采集编码软件。市场调查后发现,采集卡倒是有很多品牌,单价在1000~3000元不等,并且测试后发现采集的图像效果很不错。但是难题出现在了PC端软件上。可以实现这种功能的专业PC端采集编码软件屈指可数,深