摘要
本文描述常见的几种流媒体传输协议。
RTMP
RTMP全称是Real-Time Message Protocol。它是由 Adobe Systems 发布的一款视频流媒体网络传输协议,主要用于 Flash Player 和服务器端通信,支持直播、点播、实时音视频聊天,可承载高流量。但是,RTMP 是一种专有协议,不支持 P2P 分发,且易受防火墙限制。RTMP 是基于 TCP 的协议,可以提供稳定且连续的数据传输,适合实时播放。
RTSP/RTP/RTCP
RTSP全称是Real Time Streaming Protocol,RTSP 是一种应用层协议,用于建立和控制流媒体会话。它是一种双向协议,可以在客户端和服务器之间进行交互,支持暂停,快进,后退等控制操作。
RTP/RTCP全称是Real-Time Transport Protocol/Real-Time Transport Control Protocol。RTP 主要用于在 IP 网络中传输实时数据,如音频、视频或者模拟数据等,对数据包的排序、丢包重传以及同步具有良好的支持。RTCP 则提供与 RTP 流相关的统计和控制信息。但,RTP/RTCP 没有提供任何机制来保证传输的可靠性,即无法保证数据一定能够到达接收端。
HLS
HLS全称是HTTP Live Streaming ,是由 Apple 提出的基于 HTTP 的流媒体传输协议。它将视频流切成一段段,然后通过 HTTP 协议进行分发和播放,适应性强,而且由于 HTTP 能穿透大多数防火墙,使用 HLS 能适用于更广的场合。但是,HLS 的实时性相对较差,且不支持低延迟的场景。
MPEG-DASH
DASH全称是Dyn