协议介绍
SRS 支持 HLS/RTMP 两种成熟而且广泛应用的流媒体分发方式。
- RTMP 指 Adobe 的 RTMP ( Realtime Message Protocol ),广泛应用于低延时直播,也是编码器和服务器对接的实际标准协议,在 PC(Flash)上有最佳观看体验和最佳稳定性。
- HLS 指 Apple 的 HLS ( Http Live Streaming ),本身就是 Live(直播)的,不过 Vod(点播)也能支持。HLS 是 Apple 平台的标准流媒体协议,和 RTMP 在 PC 上一样支持得天衣无缝。
HLS 和 RTMP 两种分发方式,就可以支持所有的终端。RTMP 分发参考 基于 SRS 搭建 RTMP 直播流媒体服务器。
使用场景
- 简单:HLS 作为流媒体协议非常简单,Apple 支持得也很完善。Android 对 HLS 的支持也会越来越完善。
- 跨平台:PC 主要的直播方案是 RTMP,也有一些库能播放 HLS,譬如 JWPlayer,基于 OSMF 的 HLS 插件也一大堆。所以实际上如果选一种协议能跨 PC/Android/IOS,那就是 HLS。
- 友好的 CDN 分发方式:目前 CDN 对于 RTMP 也是基本协议,但是 HLS 分发的基础是 HTTP,所以 CDN 的接入和分发会比 RTMP 更加完善。能在各种 CDN 之间切换,RTMP 也能,只是可能需要对接测试。
- IOS 上苛刻的稳定性要求:IOS 上最稳定的当然是 HLS,稳定性不差于 RTMP 在 PC-flash 上的表现。
总之,SRS 支持 HLS 主要是作为输出的分发协议,直播以 RTMP+HLS 分发,满总各种应用场景;点播以 HLS 为主。
协议对比
分发 | 平台 | 协议 | 公司 | 说明 |
---|---|---|---|---|
RTMP | Win |