RTSP 协议是什么

IP 摄像机如何传输视频,以及为什么 RTSP 不能在浏览器中直接打开

RTSP 全称为 Real Time Streaming Protocol(实时流传输协议)。IP 摄像机、录像机和媒体服务器使用它来控制视频流。

RTSP 让客户端能够找到所需的流、协商数据传输方式、开始观看,并在结束时干净地关闭会话。

检测 RTSP 地址
画面通过 RTSP 协议从 IP 摄像机传输为数字视频流的示意图
IP 摄像机产生视频流,RTSP 负责控制客户端如何连接到该视频流。

通俗理解 RTSP

可以把 RTSP 比作视频流的遥控器。它传递各种指令:请求视频信息、准备连接、开始播放、暂停或停止。

RTSP 本身并不是一种压缩画面的方式。视频通常由摄像机以 H.264H.265 编码,媒体数据包则通常由 RTP 协议承载。

H.264 / H.265 — 负责视频编码
RTSP — 负责控制会话
RTP — 负责承载媒体数据包
人们常说“RTSP 传输视频”。但严格来说,RTSP 主要负责控制流媒体会话,音视频数据本身通常由 RTP 传送。

RTSP 的应用场景

只要需要从特定来源获取实时视频流,就常会用到这一协议:

大多数专业级 IP 摄像机都支持 RTSP,但部分消费级云摄像机可能默认缺失或关闭该协议。

连接是如何建立的

建立连接时,客户端与摄像机会依次经历以下几个步骤:

  1. 建立连接。客户端连接到摄像机的 RTSP 地址,通常使用 TCP 554 端口。
  2. DESCRIBE。客户端请求获取流的描述信息:可用的音视频、编码格式及各项参数。
  3. SETUP。双方协商传输方式——例如通过 UDP 承载 RTP,或将 RTP 嵌入基于 TCP 的 RTSP 连接中。
  4. PLAY。客户端请求开始媒体流的传输。
  5. TEARDOWN。观看结束后,客户端关闭会话并释放相应资源。
客户端 → DESCRIBE → SETUP → PLAY → 摄像机发送视频 → TEARDOWN

摄像机也可能要求身份验证,此时客户端需按设备支持的方式发送用户名和密码。

RTSP 地址由哪些部分组成

典型的地址格式如下:

rtsp://login:password@ip-address:port/stream-path

路径格式取决于厂商、型号和固件版本。常见品牌的示例可参见指南《在哪里找到摄像机的 RTSP 地址》

主码流与子码流

一台摄像机可以提供视角相同、但参数不同的多路视频流:

每路视频流可以有各自的 RTSP 路径,例如地址结尾或配置编号会决定摄像机返回哪一路视频流。

基于 TCP 与 UDP 的 RTSP

在执行 SETUP 命令之后,媒体数据可以通过不同方式传输。

基于 UDP 的 RTP

UDP 具有较低的延迟,但可能会丢失个别数据包。传输过程中可能会用到额外的动态端口,这会增加穿越 NAT 和防火墙的难度。

基于 TCP 的 RTP

媒体数据包在已建立的 TCP 连接内传输。这种方式更容易穿过路由器和防火墙,丢失的数据会被重新发送,但在网络状况较差时延迟可能增大。

基于 TCP 的 RTSP 常用于通过互联网远程连接摄像机。

554 端口与互联网访问

RTSP 的标准端口是 554,不过可以在摄像机设置中修改。在局域网内,客户端可以直接访问设备的 IP 地址。

若要让网络外部的服务器直接连接摄像机,通常需要公网 IP 或 DDNS,并将某个外部 TCP 端口映射到摄像机的 RTSP 端口。

公网地址:10554 → 路由器 → 摄像机 192.168.1.100:554

常见路由器的分步示例可参见页面《如何设置端口映射》

在 CGNAT 环境下,无法建立直接的入站连接。此时可以使用 MyVMS Bridge,或无固定 IP 时的 RTMP 推流方案。

为什么浏览器无法打开 RTSP

现代浏览器通常没有内置的 RTSP 支持,无法像播放普通网页视频一样播放 rtsp:// 格式的地址。

rtsp.me 会连接摄像机的 RTSP 视频流并进行处理,再以浏览器兼容的格式提供网页播放器。

IP 摄像机 → RTSP → rtsp.me → 网页播放器 → 浏览器

现成的播放器既可以通过链接打开,也可以嵌入到网站中,而无需公开摄像机原始地址及登录凭据。

RTSP、ONVIF、RTMP 与 HLS

这些技术解决的问题各不相同,可以配合使用:

ONVIF 可以帮助你获取 RTSP 地址。当摄像机主动发送视频流时会用到 RTMP Push。HLS 及其他网页格式则用于观看端。

编码格式与摄像机参数

RTSP 连接可以承载多种编码格式的视频。标准接入建议使用 H.264;rtsp.me 也支持 H.265,作为一项付费功能提供。

为获得稳定的直播效果,建议帧率设为 25 FPS、GOP 设为 50 帧(即每 2 秒一个 I 帧),并关闭 Smart Codec。详细说明请参见页面《推荐的 IP 摄像机设置》

RTSP 的安全性

RTSP 地址中通常包含摄像机的地址及访问凭据,因此应像对待密码一样谨慎处理。

普通 RTSP 不应被视为加密通道。如果摄像机支持 RTSPS,请使用安全连接,并确认其 TLS 设置和证书兼容。

什么是 RTSPS

RTSPS 是基于安全 TLS 连接的 RTSP。它的作用类似于网站中的 HTTPS:身份验证指令、流描述信息以及会话控制都在加密通道内传输。

安全流的地址以 rtsps:// 开头:

rtsps://login:password@camera-address:port/stream-path

rtsp.me 支持通过 RTSPS 接入 IP 摄像机和媒体服务器。在源设置中,请填写完整的 rtsps:// 地址以及设备上配置的端口。

RTSPS 保护的是什么

RTSPS 使用 TLS 对 RTSP 连接进行加密。如果 RTP 媒体数据包以交错 TCP 模式在同一连接内传输,它们同样会经过这条安全通道。

如果摄像机以独立的 UDP 流方式发送 RTP,仅靠 RTSPS 不足以加密这些媒体数据包,还需要摄像机支持 SRTP 或其他安全机制。

连接前需要检查的事项

仅将 rtsp:// 前缀替换为 rtsps:// 并不会自动启用加密。必须在摄像机或媒体服务器上启用并配置 RTSPS。

如何接入摄像机

  1. 确认摄像机支持 RTSP 或 RTSPS。
  2. 找到与您的型号及视频流对应的正确 RTSP 或 RTSPS 地址。
  3. 设置好网络访问,或选择其他接入方式。
  4. rtsp.me 首页检测完整的 RTSP 地址。
  5. 检测成功后,即可获取用于网站的视频流及播放器代码。

完整流程详见指南《如何在网站上创建实时直播》

常见问题

什么是 RTSP?
这是一种用于控制流媒体会话的协议。它帮助客户端获取流的描述信息、建立传输方式,并启动来自摄像机的视频。
RTSP 是一种编码格式吗?
不是。RTSP 负责控制会话,视频通常以 H.264 或 H.265 编码,并通过 RTP 媒体数据包传输。
使用的是哪个端口?
标准 RTSP 端口是 554,但摄像机或端口映射规则可能使用其他数值。
什么是 RTSPS,rtsp.me 是否支持?
RTSPS 是基于 TLS 的安全 RTSP 连接。当设备的端口、TLS 及证书设置兼容时,rtsp.me 支持 rtsps:// 地址。
RTSP 能在浏览器中打开吗?
通常不能。rtsp.me 会接收摄像机的视频流,并提供兼容的网页播放器。
RTSP 与 ONVIF 有什么区别?
RTSP 用于流媒体会话本身,而 ONVIF 用于兼容设备的发现、配置与控制。ONVIF 可以告诉你摄像机的 RTSP 地址。
是否需要公网 IP?
通过互联网直接连接摄像机通常需要公网 IP 或 DDNS,并配合端口映射。若不具备这些条件,可以使用 MyVMS Bridge,或在兼容的摄像机上使用 RTMP Push。

检测您摄像机的视频流

找到您摄像机的 RTSP 或 RTSPS 地址,并在 rtsp.me 上进行远程检测。检测成功后,即可将该视频流转换为面向浏览器和您网站的在线直播。

检测摄像机地址