秒懂流媒体协议 RTMP 与 RTSP
你好,这里是网络技术联盟站。
在流媒体行业中,RTMP和RTSP是两种广泛使用的协议。那么,请问您能具体解释一下什么是RTMP以及什么是RTSP呢?两者之间有何异同?在实际应用中,如何根据需求选择合适的协议呢?
今天瑞哥就用人话好好和大家聊聊,如果觉得对您有帮助,可以收藏。
文章目录
-
-
什么是流媒体协议?
-
-
-
-
- 传统视频流协议
-
- 基于 HTTP 的自适应协议
- 新技术
-
-
-
TCP 和 UDP
-
- TCP
- UDP
- TCP 与 UDP 区别
-
RTMP
-
- RTMP 工作原理 ⭐
-
RTSP
-
- RTSP 工作原理 ⭐
-
RTMP 与 RTSP 区别
-
- 1、延迟
- 2、音频编解码器
- 3、视频编解码器
- 4、优点
- 5、缺点
-
RTMP 与 RTSP 该如何选择?
-
总结
-
什么是流媒体协议?
流媒体通信协议(英文学名:Streaming Protocol)是一种主要用于通过Web传输各种多媒体数据的技术。
每次观看直播或点播视频时,背后的技术就是流媒体协议 。

流媒体协议有很多,主要分为三大类:
- 传统视频流协议
- 基于 HTTP 的自适应协议
- 新技术
传统视频流协议
传统视频流协议主要有:
- RTMP
- RTSP
基于 HTTP 的自适应协议
基于 HTTP 的自适应协议主要有:
- Apple HLS
- Low-Latency HLS
- MPEG-DASH
- Adobe HDS
新技术
新技术主要有:
- SRT
- WebRTC
而我们今天着重要介绍和比较的就是传统视频流协议 :RTMP和RTSP
TCP 和 UDP
深入研究 RTMP 和 RTSP 之前,请注意我们需先了解 TCP 和 UDP。这是因为 RTMP 建立在 TCP 的基础之上;而 RTSP 则依赖于 UDP。
TCP
TCP 英文全称:Transmission Control Protocol,中文意思:传输控制协议 。

介于应用层和网络层之间的是传输控制协议(TCP),其主要负责提供可靠的数据传输服务。该协议通过确认机制来确保数据的安全可靠的到达,并在发送端完成复用过程,在接收端则完成解复用操作。通过三个阶段的流程来实现连接建立、数据传输以及连接终止的功能。
UDP
UDP 英文全称:User Datagram Protocol ,中文意思:用户数据报协议 。

UDP是一种不依赖于建立连接的协议,在发送和接收两端直接完成数据传输;其功能介于应用层与网络层之间。该协议采用分组形式传输数据或信息,并将这些分组统称为用户数据报;其中每个分组被称为目的分组(destination frame)。UDP通过聚合来自不同进程的输出分组来实现多路复用功能,并组织来自不同进程的目的分组以实现有效管理。
TCP 与 UDP 区别
- TCP是一种基于连接的通信协议,在数据传输时保证了端到端的数据完整性;相反地,在UDP中没有端到端的可靠性保障
- TCP网络层采用的是按承载能力分类的服务模型;与之相比,在UDP中服务被划分为按流量控制分类
- TCP在数据传输过程中实现了主动重传机制;而在UDP中则无法实现主动重传功能
- TCP采用了字节流模型进行数据传输;相对于此,在UDP中则采用了消息流模型
- TCP不采用广播机制来发送数据;相反地,在UDP中允许采用广播机制来发送数据包
- TCP将整个传输过程视为连续的过程来进行处理;而在UDP中则是按照独立的消息来进行处理
以上就是最基础的部分,下面我切入今天的主题:RTMP 和 RTSP 协议。
RTMP
- 英文全称:
Real-Time Messaging Protocol - 中文意思:实时消息系统
- 底层通信协议:TCP
- 应用级视频流方案:高级视频编码方案
- 视频编码解码模块:H.264
- 音频编码解码模块:AAC
- 时延范围:3 至 30 秒
RTMP于2005年推出并由Macromedia开发后被Adobe收购,在流媒体领域拥有丰富的历史积累。它最初设计用于实现RTMP服务器与终端设备间的Flash播放数据传输功能,在这一领域发挥了重要作用。然而Flash服务已于2020年底正式退出
RTMP 技术展现出显著优势在于其能够在两端终端设备之间建立稳定的连接网络,在用户网络质量参差不齐的情况下依然能够实现无断顿且实时的视频流传输。该方案的核心机制通过将连续的数据流划分为相等的小块(其中音频数据采用 64 字节分块策略而视频数据则采用 128 字节分块方式)依次传送到接收端设备,并通过精确的时间戳同步保证最终重建出完整流畅的视频流输出。

RTMP 工作原理 ⭐
一般来说视频流是这样工作的:
- 视频采集模块完成对原始信号的捕获
- 视频流被编码器进行压缩传输至云端存储
- 视频平台负责接收并处理来自编码器的压缩数据
- 基于CDN网络架构, 数据将向最近的服务器发送
- 最终能确保最终数据包能够成功送达终端设备
在这一环节中, RTMP扮演了关键角色. 在前端摄像头传输至服务器端的过程中, RTMP采用分段编码技术, 将大量数据按需分割成小块, 并通过多通道传输机制实现跨域同步, 最终确保了高质量且稳定的实时传输.
RTMP的主要缺点是无法与HTML5流媒体播放器兼容,因此需要采用另一种协议如HLS来进行视频文件的传输至用户的设备此外,RTMP还容易受到带宽限制的影响
RTSP
- 英文全称:
Real-Time Streaming Protocol- 中文意思:实时数据传输协议
- 底层协议:Transmission Control Protocol/User Datagram Protocol (TCP/UDP)
- 网络控制协议
- 视频编解码器:H.265
- 音频编解码器:AAC Codec
- 延迟:2-second delay
1996年推出的RTSP是一种网络传输协议。它是由RealNetworks、Netscape以及哥伦比亚大学的研究团队共同开发的一种网络传输协议。该协议主要用于管理基于VHS格式的视频流娱乐与通信系统,在提高视频流量管理效率的同时实现了对网络资源的有效利用。该协议通过将流数据拆分成更小的数据块进行高效编码与传输,在提高传输速度的同时实现了资源的有效利用。
该协议支持稳定的数据显示传输机制,在此过程中,用户可以在实时解码的同时保持在线获取新的数据块。
在Android和iOS设备上并未普遍配备内置的RTSP兼容播放器,因而其市场普及率相对较低;然而,在监控系统和闭路电视(CCTV)等相关领域中如远程摄像头、在线教育平台以及互联网直播等均较为常见。
如前述内容所述,在RTSP中采用了RTP协议来进行视频数据的分割成视频块处理。本节将介绍RTP协议的基本原理及其在RTSP中的应用。
RTP协议(Real-time Transport Protocol)是一种专为实时通信设计的网络传输协议,在其基础架构中采用了UDP机制的特征。这种设计选择能够有效保证通信过程中的低延迟特性得以实现。
不局限于RTP协议,在确保连贯性和稳定性的同时(即通过保证同步性),RTSP 采用了另外两种网络通信协议。
- TCP 收发控制命令(例如播放或停止请求)
- UDP 传送音频、视频和数据。
这个怎么理解呢?
TCP稳定传输在用户触发播放或暂停操作时会生成明确的请求。为了确保其稳定性, TCP的作用得以体现。
UDP是一种极低延迟的标准协议。因此,在传输音频、视频以及数据方面能够显著提升传输效率。

RTSP 工作原理 ⭐
- 视频系统从用户设备接收RTSP请求
- 该平台返回一组可执行的操作指令
- 视频系统将特定请求指令传递给流媒体处理模块
- 该平台解析接收到的指令并驱动相关流程启动媒体传输
基于RTSP协议仅依赖于专用服务器这一前提,并且该协议本身并不包含对流媒体数据进行加密的能力(即不具备对流数据进行端到端加密的功能),因此该协议无法实现对流数据的重传功能。
RTMP 与 RTSP 区别
1、延迟
- RTMP:3-30秒
- RTSP:2-5秒

2、音频编解码器
- Real-Time Multiplexing Protocol(RTP): Abramowitz Acoustic Coding(AAC)Base Layer, Abramowitz Acoustic Coding(AAC)Low Complexity, High-Efficiency AAC Enhanced Version 1 and 2, MP3, Speex codec, Opus codec, Vorbis codec
- Real-Time Streaming Protocol(RTP): Abramowitz Acoustic Coding(AAC)Low Complexity, High-Efficiency AAC Enhanced Version 1 and 2, MP3, Speex codec, Opus codec, Vorbis codec

3、视频编解码器
- RTMP:H.264, VP8, VP6, Sorenson Spark®, Screen Video v1 & v2
- RTSP:H.265 (preview), H.264, VP9, VP8

4、优点
-
RTMP:
- 低延迟
- 适应性
- 灵活性
- 不需要缓冲
-
RTSP:
- 低延迟
- 分段流式传输
5、缺点
- RTMP:
-
带宽性能受限
-
未被HTML5标准所兼容
-
存在跨浏览器和设备之间的兼容性挑战
-
存在一定的安全风险
-
RTSP:
-
HTTP 不兼容
-
依赖于其他协议
-
RTMP 与 RTSP 该如何选择?
其实看完RTMP 与 RTSP 区别,应该对于使用场景有见解式的认识了。
- IP 摄像机、物联网设备,那么选择 RTSP准不会错

- 第三方流媒体应用,那么选择RTMP准不会错

总结
本文重点阐述了流媒体相关的通信协议,并对传输控制协议/用户数据报协议(TCP/UDP)以及实时传输 Multiplexing/Packet Stream Protocol(RTMP/RTSP)进行了详细分析。其中,RTMP和RTSP协议各自具有独特的功能优势。
该平台在不同摄像设备间实现了良好的兼容性,并能保证低延迟下的流媒体稳定性。
分发内容至 RTMP 需要配备专门的 Flash Media Server。
因此,在主流第三方流应用及较老旧设备上仍可可靠运行。
RTSP 最适用于 IP 摄像机和运行 IP 摄像机的设备,例如无人机。
朋友们,你们明白了吗?
