直播协议的选择:RTMP vs. HLS

  • 时间:
  • 浏览:1

通常在 iOS 平台做直播业务,会有一种协议可供选折 :HLS 和 RMTP。

HLS,是苹果6手机手机66公司实现的基于 HTTP 的流媒体传输协议,全称 HTTP Live Streaming,可支持流媒体的直播和点播,主要应用在 iOS 系统,为 iOS 设备(如 苹果6手机手机66、iPad)提供音视频直播和点播方案。

RTMP,实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播放器和服务器之间音频、视频和数据传输开发的开放协议。协议基于 TCP,是4个协议族,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。RTMP 是一种设计用来进行实时数据通信的网络协议,主要用来在 Flash/AIR 平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。

顶端是这个 种协议的简介,那它们在实际应用中会有哪有十几个 差异呢?

iOS 平台没人 提供原生支持 RTMP 或 HTTP-FLV 的播放器,这就前要开发支持相关协议的播放器。

延时较小,通常为 1-3s,参考播放器 如ijkplayer, 大牛直播SDK播放器

基于 TCP 长连接,不前要多次建连。

有过后业界大每种直播业务一定会选折 用 RTMP 作为流媒体协议。通常会将数据流封装成 FLV 通过 HTTP 提供出去。有过后从前也有有些问題图片前要处置:

通常 HLS 直播延一定会达到 20-60 s,而高延时对于前要实时互动体验的直播来说是不可接受的。

HLS 基于短连接 HTTP,HTTP 是基于 TCP 的,这就意味着 HLS 前要不断地与服务器建立连接,TCP 每次建立连接时的三次握手、慢启动过程、断开连接时的四次挥手一定会产生消耗。

不过 HLS 也有它的优点:

前言

随着直播业务的兴起,太满的直播平台刚开始英语 涌现,这火热的程度好像4个应用不带上直播业务出来也有好意思跟人打招呼。我我应该 做4个直播业务,主要包括4个每种:收集推流端、流媒体服务端、播放端。这里太满说,就主要结合 iOS 平台,从观看端出发,介绍一下对直播协议的选折 。

HLS

先的话 HLS。HLS 的基本原理却说 当收集推流端将视频流推送到流媒体服务器时,服务器将收到的流信息每缓存一段时间就封包成4个新的 ts 文件,一齐服务器会建立4个 m3u8 的索引文件来维护最新有十几个 ts 片段的索引。当播放端获取直播时,它是从 m3u8 索引文件获取最新的 ts 视频文件片段来播放,从而保证用户在任何完后 连接进来时一定会看了较新的内容,实现近似直播的体验。相对于常见的流媒体直播协议,这类 RTMP 协议、RTSP 协议等,HLS 最大的不同在于直播客户端获取到的并也有4个完整版的数据流,却说 连续的、短时长的媒体文件,客户端不断的下载并播放哪有十几个 小文件。这个 辦法 的理论最小延时为4个 ts 文件的时长,一般具体情况为 2-3 个 ts 文件的时长。HLS 的分段策略,基本上推荐是 10 秒4个分片,这看了出了 HLS 的缺点:

RTMP

相对于 HLS 来说,采用 RTMP 协议时,从收集推流端到流媒体服务器再到播放端是根小数据流,有过后在服务器我太满 有落地文件。从前 RTMP 相对来说也有哪有十几个 优点:

数据通过 HTTP 协议传输,却说 有采用 HLS 时我太满 考虑防火墙意味着代理的问題图片。

使用短时长的分片文件来播放,客户端可不前要平滑的切换码率,以适应不同数率条件下的播放。

HLS 是苹果6手机手机66推出的流媒体协议,在 iOS 平台上可不前要获得火山玻璃的支持,采用系统提供的 AVPlayer 就能直接播放,我太满 我本人开发播放器。

image