秒懂流媒体协议 RTMP 与 RTSP

本文详细介绍了流媒体协议RTMP和RTSP,包括它们的定义、工作原理、优缺点以及与TCP和UDP的关系。RTMP以其低延迟和适应性适用于第三方流媒体应用,而RTSP则在IP摄像机和物联网设备中常见,提供更低延迟和分段流式传输。两者各有适用场景。
摘要由CSDN通过智能技术生成

什么是流媒体协议?

流媒体协议,英文学名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协议是位于应用层和网络层之间的传输控制协议,用于提供可靠的流传输服务,即以字节流的形式传输数据和以字节流的形式接收数据。TCP 使用确认机制来检查数据是否安全可靠地到达,在发送端进行复用,在接收端进行解复用。TCP 使用三个阶段来实现连接定向功能,如连接建立、数据传输和连接终止。

UDP

UDP 英文全称:User Datagram Protocol ,中文意思:用户数据报协议

UDP是一种无连接协议,即将数据从一端传输到另一端;无需建立连接。UDP 也位于应用层和网络层之间。它还以数据包的形式传递数据或信息;这些数据包称为用户数据报。UDP 使用多路复用来处理来自多个进程的传出用户数据报,并使用解复用来处理进入同一主机上不同进程的传入用户数据报。

TCP 与 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 服务器之间提供了稳定和流畅的视频流。

RTMP 最大的缺点是它与 HTML5 播放器不兼容,这样的话必须使用另一种协议,例如 HLS来传输视频文件到达用户的设备,此外,RTMP 容易受到带宽问题的影响。

RTSP

英文全称:Real Time Streaming Protocol

中文意思:实时流协议

底层协议:TCP 和 UDP

网络控制协议

视频编解码器:H.265

音频编解码器:AAC

延迟:2 秒

RTSP 1996年诞生,由 RealNetworks、Netscape 和哥伦比亚大学的专家联合开发,用于控制 VHS 式视频流的娱乐和通信系统,RTSP 使用高效的 RTP 协议,将流数据分解成更小的块,这样可以更快地传递。

RTSP 支持可靠的分段流,这意味着用户可以在仍在下载流的同时继续观看流。

Android 和 iOS 设备没有开箱即用的 RTSP 兼容播放器,所以普及度并不高,但 RTSP 在许多监控 和闭路电视 (CCTV) 应用非常广泛,远程摄像头、在线教育和互联网直播等,都用的比较频繁。

上面提到RTSP使用RTP协议进行分解视频块的,这里我们来讲一下RTP协议。

RTP协议,英文全称:Real-time Transport Protocol,中文就是实时传输协议,它的底层其实就是UDP,这样一来就可以实现低延迟

除了RTP协议,为确保流畅和一致的流传输,RTSP 还使用另外两种网络通信协议:

TCP 收发控制命令(例如播放或停止请求)

UDP 传送音频、视频和数据。

这个怎么理解呢?

TCP可靠传输,比如用户按下播放或者停止播放的时候,这个是个准确的请求,这个需要保证可靠性,这个时候TCP作用就体现了。

UDP是低延迟的协议,那么用于传送音频、视频和数据可以达到非常高效的效果。

RTSP 工作原理

用户设备向视频流平台发送 RTSP 请求

视频流平台返回可以操作的请求列表,比如播放、暂停等

用户设备向视频流平台发送具体的请求,比如播放

视频流平台解析请求并调用指定机制启动视频流处理

由于 RTSP 依赖于专用服务器,并且依赖于 RTP,因此该协议不支持加密视频内容或重传丢失的数据包。

RTMP 与 RTSP 区别

1、延迟

RTMP:3-30秒

RTSP:2-5秒

2、音频编解码器

RTMP:AAC、AAC-LC、HE-AAC+ v1 & v2、MP3、Speex、Opus、Vorbis

RTSP:AAC、AAC-LC、HE-AAC+ v1 & v2、MP3、Speex、Opus、Vorbis

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协议、RTMP与RTSP协议,RTMP 和 RTSP 流媒体协议都有各自的优势。

RTMP 提供与不同摄取设备的兼容性和低延迟流媒体的稳定性,但是,您需要一个特定的 Flash Media Server 来使用 RTMP 分发您的内容,所以RTMP 适用于主要的第三方流应用程序和较旧的硬件编码器;

RTSP 最适用于 IP 摄像机和运行 IP 摄像机的设备,例如无人机。

朋友们,你们明白了吗?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值