从CDN支持直播加速的协议说起

最近在做一个CDN的直播加速业务测试,客户给出的直播网站的域名是一个xxx.m3ua地址,一开始有点奇怪,为什么直播业务给出的一个是m3ua媒体文件地址,而不是一个实时的数据流地址呢?

上网查了一下,原来是这样的,客户直播网站是基于 HLS (HTTP Live Streaming) 协议构建的,HLS是苹果公司基于http流媒体传输协议,它的特点是并不是一下请求完整的数据流,它在服务端讲媒体数据切割成持续的时长较短的ts小文件,并通过M3UA索引文件按序访问ts文件,客户端不停的从服务端获取文件,从而实现视频播放。
但是HLS的实时性差,时延在10s以上,大量的文件碎片会对存储和缓存都有一定的挑战,对CDN厂家要求更高。

目前主流的直播协议还有RTMP、HTTP-FLV,这两个都是Adobe公司推出的。
RTMP,全称 Real Time Messaging Protocol,即实时消息传送协议。基于TCP传输,默认使用1935端口。在传输过程中会把消息切割成小块,通过TCP传输,接收端收到后恢复成媒体数据。 RTMP 的延迟相对较低,一般延时在 1-3s 之间。
由于这是一个私有协议,很多终端无法播放特别是IOS设备,需要第三方播放器以及第三方解码特别支持才行。

FLV (Flash Video) ,其文件格式是.flv。 HTTP-FLV 即将流媒体数据封装成 FLV 格式,然后通过 HTTP 协议传输给客户端。其传输格式简单,速度快。HTTP-FLV 能够好的穿透防火墙,它是基于 HTTP/80 传输。HTTP-FLV会让流媒体资源缓存在本地客户端,网络流量也较大。

现在主流的CDN厂家都支持三种直播协议。

2020.6.11

你可能感兴趣的:(从CDN支持直播加速的协议说起)