如何搭建一个完整的视频直播系统? 50
直播,突然成为了中国互联网的一个最流行的词汇。在《2016-2020年中国网络直播行业深度调研及投资前景预测报告》中的数据表示,2015年,全国在线直播平台数量接近200家,其中网络直播的市场规模约为90亿,网络直播平台用户数量已经达到2亿,大型直播平台每日高峰时段同时在线人数接近400万,同时直播的房间数量超过3000个,更可怕的是,这一数据还在以极快的速度向上攀升。
高票答案非常详细的说了开发相关的前期工作。这边重要讲一下网络直播平台开销中的另一个大头:带宽的问题。在大量用户体量下,直播类的应用对于服务器的要求要高过一般的应用。
1、更大的数据量
视频数据和文本数据完全是两个量级的概念,假设一个直播房间有5000人,视频1s的数据60K,那么就需要5000*60=300000KB=292.97MB,基本已经达到了2-3三个手游的大小了,而这只是一个房间产生的流量。当前某著名网络直播APP日活跃用户超过了800W,服务器将承受458Gbps的带宽压力。
2、更高的并发量
不同于普通应用和游戏,直播类应用的使用时间段非常的集中,一般来说,社交类的直播app时间集中在晚饭后时间至睡前20点~23点,游戏类App活跃时间集中在下班后18~20点间,秀场类App集中在13点和18(午休及下班时间),因此在这短短几小时之间,会涌入大量的用户,一次大V的直播通常就会造成百万级的用户登录,APP需要有详尽的限流、分流和负载均衡策略,保证服务器不会被冲垮。
3、更真实的用户登录场景
直播应用与普通应用相比,交互的功能异常多,除了直播视频流的服务器压力之外,还要包括用户消息推送、聊天、礼物、支付以及统计系统带来的数据交互压力,服务器进行需要识别不同的业务字段,才能精确判定用户的行为是否成功完成,从交互频率的角度上来说,直播类的应用,与其说更像应用,不如说更像游戏。
4、更低的延迟
直播需要一个很强的即时性,如果主播的行为和用户的评论无法同步的时候,会给用户非常不好的体验,如果一个用户发现其他用户在欢呼鼓掌,但是屏幕中的主播什么动静都没有的时候,这个直播应用基本可以不要再用了,因此直播类应用不仅需要面对更大的数据量和更高的并发,还要保证更低的延迟。通常可以要保证服务器的处理数据速度要快,要有足够强大的带宽;另外则是通过P2P算法保证数据分享的合理性,保证服务器的数据和P2P的数据可以达到平衡。
直播应用下的服务器成本,与将要承受的流量情况息息相关,不同的直播应用,交互的频度、深度不同,就会产生不同的带宽压力。我们一起来算一笔帐,为直播应用准备服务器,大概需要多少钱? 首先,我们要买一个服务器。买多大的服务器呢?服务器的带宽要满足直播应用的带宽需求,在这里,科普一下带宽是怎么看的: 带宽通常使用的单位是bps(bits per second),8 bits通常等于1Byte,100Mbps在换算成我们熟悉的文件大小的时候,要除以8,也就是在100Mbps的带宽下,每秒钟可以下载12.5MB的文件,那么一般来说,直播应用需要多少带宽呢?
直播应用一般使用的分辨率是360p,720p以及1080p三种,按照题主以720p来计算,那么直播应用需要1024kbps的带宽,也就是每秒传递的数据大小为1024/8=128KB。简单来说,如果在APP中打开直播,使用了720p的分辨率,一个用户每秒钟需要传输128KB的数据(当然实际情况中直播应用还有消息推送,送礼,支付等行为,直播画面分辨率、压缩比等区别,实际会消耗更多的数据)。
以目前最红火的几大直播平台为例,斗鱼TV的在线人数可以超过1000 万,战旗 TV 在在线人数约500 万左右,龙珠在线人数约 400 万左右,虎牙在线人数约100万,直播平台的带宽成本通常是带宽峰值月结的形式,按照题主说的,前期2W左右的在线,理论上当月的开销就在30W人民币左右。 所以对于直播应用来说,服务器最难处理的环节就是视频流量和用户交互等高频率高带宽的场景,由于用户的行为难以预测,经常会出现突发性的暴涨,进行活动时流量可能是平时的几十倍。
所以在直播系统的准备中,一定要对所有接口进行压力测试,提前暴露问题并解决,确保活动的顺利实施。这里安利一款产品【WeTest服务器性能http://wetest.qq.com/gaps】可同时调用的场景接口,不断增加可实现的并发数,提供更大的并发压力和更真实的行为场景,节省成本。
做直播不仅需要完整的系统,千万别遗漏了服务器是否稳定,支撑住整个平台的正常运营。