直播协议 HLS 与 RTMP

HLS :是苹果公司实现的基于 HTTP 的流媒体传输协议,全称 HTTP Live Streaming,可支持流媒体的直播和点播,主要应用在 iOS 系统,为 iOS 设备提供音视频直播和点播方案。
RTMP :实时消息传输协议,Real Time Messaging Protocol,是 Adobe 公司为 Flash 播放器和服务器之间音频、视频和数据传输开发的开放协议。协议基于 TCP,是一个协议族,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。RTMP 是一种设计用来进行实时数据通信的网络协议,主要用来在 Flash/AIR 平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
HLS
HLS 的基本原理就是当采集推流端将视频流推送到流媒体服务器时,服务器将收到的流信息每缓存一段时间就封包成一个新的 ts 文件,同时服务器会建立一个 m3u8 的索引文件来维护最新几个 ts 片段的索引。当播放端获取直播时,它是从 m3u8 索引文件获取最新的 ts 视频文件片段来播放,从而保证用户在任何时候连接进来时都会看到较新的内容,实现近似直播的体验。相对于常见的流媒体直播协议,例如 RTMP 协议、RTSP 协议等,HLS 最大的不同在于直播客户端获取到的并不是一个完整的数据流,而是连续的、短时长的媒体文件,客户端不断的下载并播放这些小文件。这种方式的理论最小延时为一个 ts 文件的时长,一般情况为 2-3 个 ts 文件的时长。HLS 的分段策略,基本上推荐是 10 秒一个分片。
优点
1.数据通过 HTTP 协议传输,所以采用 HLS 时不用考虑防火墙或者代理的问题。
2.使用短时长的分片文件来播放,客户端可以平滑的切换码率,以适应不同带宽条件下的播放。
3.HLS 是苹果推出的流媒体协议,在 iOS 平台上可以获得天然的支持,采用系统提供的 AVPlayer 就能直接播放,不用自己开发播放器。
缺点
1.通常 HLS 直播延时会达到 20-30s,而高延时对于需要实时互动体验的直播来说是不可接受的。
2.HLS 基于短连接 HTTP,HTTP 是基于 TCP 的,这就意味着 HLS 需要不断地与服务器建立连接,TCP 每次建立连接时的三次握手、慢启动过程、断开连接时的四次挥手都会产生消耗。
RTMP
优点
1.延时较小,通常为 1-3s。
2.基于 TCP 长连接,不需要多次建连。
3.因为RTMP支持的很完善,所以能做到flash播放RTMP流长时间不断流,适合长时间播放。
** 缺点**:
1.iOS 平台没有提供原生支持 RTMP 或 HTTP-FLV 的播放器,这就需要开发支持相关协议的播放器。
2.RTMP基于TCP不会丢包,所以当网络状态差时,服务器会将包缓存起来,导致累积的延迟。待网络状况好了,就一起发给客户端,当客户端的缓冲区很大,就断开重连。

你可能感兴趣的:(直播协议 HLS 与 RTMP)