随着直播行业的兴起,各种直播应用、平台和产品万花齐放,直播场景也越来越多元化,这就对视频技术的发展提出了“日新月异”的需求。那么,今天就跟大家聊聊CDN技术在直播上的应用。
直播平台为什么需要CDN?
①直播平台突发性的流量增长成为常态,短时间内如何扩容扛过流量高峰,成为各大网络直播平台必须正视的问题。尤其是在移动直播领域,无线网络和移动宽带在稳定性方面无法与固定宽带比拟,CDN及云服务商的技术支持已经成为当下直播平台在内容传播层面最重要的保障,同时也为其拓展业务形态保驾护航。
②直播一直对网络的要求十分高,稍有问题,就会出现卡顿、花屏或者掉线。而CDN作为内容分发网络,借助负载均衡系统将内容推送到接近用户的边缘节点,使得用户就近取得资源无疑大大增加了用户的访问速度以及访问的稳定性,这与直播的要求十分契合。
什么是CDN呢?
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
CDN的主流程,如下图:
主要流程为:
1、主播开始直播,向调度服务器发送请求;调度服务器返回推流域名和sn;
2、主播端采集音视频数据,发送给CDN节点,CDN节点进行处理;
3、观众端要观看此主播的视频,向调度服务器发送请求,返回拉流域名;
4、观众端向CDN节点请求音视频数据;
CDN直播中常用的流媒体协议包括RTMP、HLS、FLV
1、RTMP(Real Time Messaging Protocol)是基于TCP的,由Adobe公司为Flash播放器和服务器之间音频、视频传输开发的开放协议。
2、HLS即Http Live Streaming,是由苹果提出基于HTTP的流媒体传输协议。基于HLS的直播流URL是一个m3u8的文件,里面包含了最近若干个小视频TS文件, 假设列表里面的包含3个TS文件,每个TS文件包含5秒的视频内容,那么整体的延迟就是15秒。当然可以缩短列表的长度和单个TS文件的大小来降低延迟。
Hls切片格式:
3、FLV该协议和 RTMP 比起来其实差别不大,只是落地部分有些不同:
RTMP 是直接将流的传输架在 RTMP 协议之上,而 HTTP-FLV 是在 RTMP 和客户端之间套了一层转码的过程,即:
Hls、rtmp、flv协议对比