大流量直播应对方案

云管家chinaygj 2019-10-18

架构 服务器 用户体验 cdn Server 带宽

随着国内网民数量指数级增长,网络带宽环境的不断好转,直播网站如雨后春笋般大量泉涌,中国网络视频市场规模不断壮大。

网络视频的主要应用有视频点播、视频直播、视频通话会议等。

在表现形式上,视频直播包括现场演唱会的直播、新闻发布会的直播、奥运会的直播、电视剧的直播、个人表演show,学术论坛交流会、各类技术培训等;在技术上,视频直播不用像视频点播那样需要进行分段、转码、 发布等步骤,它可以做到节目播放的实时性;在播放形式上,用户只要具有一个可以上网的设备,可以是电脑、手机等,无论在何处只要网络环境允许,都可以及时地欣赏到正在直播的节目。

由此可见,视频直播以其具有的丰富性、时效性和 自由性等特点吸引着大批网络用户,它具有着传统媒体和视频点播所没有的优秀品质。因此,业内网站纷纷加大视频在清晰度、网络延时、流畅度等方面的研究,并投入资源大力发展。可以说,视频直播技术的架构直接决定着平台的整体的可用性、稳定性,也可以说架构是平台的基石。

视频直播流媒体技术

以前视频网站大多采用Microsoft的Media Server产品进行直播,并通过在网站页面里嵌入 Media Player进行播放。编码格式则多采用 wmv 文件。但是在实际应用中,人们发现采用该技术处理的流媒体视频画面模糊,视频延时大,用户体验不令人满意。随着 FMS 软件的技术的成熟,视频网站开始向FMS流媒体技术转移。 FMS 的全称是 Flash Media Server,它是 Adobe 公司的产品。随着人们对在线视频的需求激增,Adobe 公司的 Flash Media Server 系列产品已成为流视频和实时通信领域业界领先的解决方案。尤其当 FMS Server版本升级到3.5后,其性能和稳定性得到大幅提升。采用FMS流媒体技术的视频直播画质较之以前更清晰,画面更流畅,从而得到了大多数用户的认可和好评。视频在进行网络直播时需要经过信号采集、转码和 Flash Media Server 等过程,最后呈现在用户面前。

(1)采集:视频直播的数据源一般来网络和摄像头的视频流。 通过采集系统将视频采集下来,然后通 TS OVER IP 方式推送所采集的信息到转码系统
(2)转码:转码系统将接受的信号转码为 FLV 格式, 然后通过 RTMP 协议推流到 FMS。

转码系统目前常用的有两种方式:

a.软件方式:如Ffmpeg,FMLE,
Ffmpeg 是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用 LGPL 或 GPL 许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整的解决方案。它包含了非常先进的音频、视频编解码库 libavcodec。由于其提供了非常清晰的画质,但是由于其安装在 Linux 服务器上,不方便移动,所以适合直播固定的节目,例如网络视频、有线电视的直播等。
FMLE 为 Adobe 公司提供的一个免费的实时视频和音频捕捉软件。它是一个媒体编码器,它可以将音频和视频实时流式传送到 Adobe Flash Media Server 软件中。软件安装使用非常简单,只需要一个笔记本电脑和一个 USB 摄像头,通过此软件就可以进行非常清晰的直播,非常适合不同形式的音乐会、发布会等实时活动。

b.硬件方式: 由视频转码公司设计的硬件转码。
解码市场:H.264解码产品,主要有:支持H.264标准的解码集成电路,含专用解码芯片和系统芯片SoC,支持H.264标准的解码软件,用于各类电子产品。
编码市场:由于H.264出色的编码效率,使其很快就被以视频监控设备为主体的编码设备市场所接受。中国是世界上最早采用H.264进入视频监控市场的国家之一。随着视频监控设备向高清网络摄像机的转移,H.264技术将在未来多年里在该市场占据统治地位。
H.265编解码:目前由于2K甚至4K/8K的视频清晰度的演变,类似清晰度的视频也应用到了直播领域,但是由于2K以上清晰度体积较大,直播又是需要大带宽才能支撑,所以才有了H.265的编码格式,相当于在保证清晰度的情况下提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度。但就目前来说,大部分编解码产品大部分还是基于264进行工作的,普及265需要一点时间,不过随着5G的发展以及265编码带来的好处,应该不需要多长时间就会全面应用。

大型视频直播架构

FMSS 不能作为大型直播的原因是因为它不能将一个直播流分发到多个 FMS 服务器上。即只能一台 FMS 服务器服务直播,同事并发的用户就是有限的,只能抗住上千左右的用户量。 Rtmpdump 是一个匈牙利人编写的基于 rtmp 协议的客户端程序。通过它,可以将rtmp 的直播流下载成为一个 flv 格式的文件。架构本直播的思路是: 使用 rtmpdump 中的 rtmp 协议部分,并将程序改造为多线程的模式。 一个线程从 fms 源拉下来直播流,n-1 个线程将这个直播流分发到其他 fms server 。即实现直播流的代理转发功能。这样就可来自www.vhall.com 以通过多个 fmss server 来分担用户的请求压力,完成大型直播。上面的方法虽然解决了大量用户的请求压力,但是还不能满足用户的视频体验。因为用户是属于不同地区和运营商的。比如广东电信的用户访问北京联通的 FMS Server 来观看视频,视频效果会非常差。因为运营商互联的带宽非常少,经常在堵塞状态。因此如果要满足用户的视频体验,不仅要解决服务器压力问题,还要解决跨省、跨运营商的网络质量问题。解决跨省、跨运营商的的方式就是采用CDN。

CDN:CDN的全称是 Content Delivery Network,即(内容分发网络)。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。其目的是使用户可就近取得所需内容,解决 Internet 网络拥挤的状况,提高用户访问网站的响应速度。方法就是就是在不同省、不同运行商的 IDC 中放置服务器,让用户就近访问。CDN 的一个关键技术就是调度系统。

调度系统:根据用户的 IP 以及节点的带宽和服务器负载情况,将用户的请求调度到最合适的节点,既满足了用户体验,又节省了 CDN 成本。调度系统可以基于 nginx 模块的方式开发。调度系统保存一份精确的全国的 IP 库,并配置好一个调度策略文件。内容就是不同地区,不同运营商的用户访问最好节点的对应表。另外有一个各个节点的带宽和服务器负载的上报接口,可以让调度实时了解各个节点的情况。 当用户来请求调度,调度根据用户的 IP,查找 IP 库,了解到它属于哪个地区哪个运营商,并查找调度策略,了解到可以服务它的几个节点,通过节点查询接口,了解到相关几个节点的网络情况,服务器负载情况,然后将这些用户调度到满足条件的节点。

上述方案实现了一个不仅可以使直播视频画质更加清晰、画面更加流畅,同时使用CDN网络增强了用户的良好体验,不同地区的用户会被转到就近到本地的服务器上,实现了智能调度。从而为大用户量、高并发的实时视频直播提供了技术上的保障。

山东云管家,阿里云北方大区一级经销商,双11怎么玩儿最畅快?关注公众号:ygjdata

登录 后评论
下一篇
云栖号资讯小编
652人浏览
2020-03-31
相关推荐
CDN下一城 星域CDN发布直播新品
1554人浏览
2017-09-06 15:00:00
0
0
0
1297