RTSP

实时流传输协议

定义

RTSP(Real Time Streaming Protocol)是 IETF 制定的流媒体控制协议,用于 IP 摄像头的视频拉流、播放控制。视频边缘分析设备通常支持 RTSP、ONVIF、GB28181 等协议接入海康、大华、宇视等品牌摄像头,实现本地解码与 AI 推理。

协议特性

RTSP 为应用层协议,基于 TCP 或 UDP,默认端口 554。支持 DESCRIBE(获取 SDP)、SETUP(建立传输)、PLAY/PAUSE/TEARDOWN 等命令。媒体传输通常采用 RTP over UDP 或 RTP over RTSP。视频编码多为 H.264/H.265,音频为 G.711/AAC。RTSP URL 格式如 rtsp://ip:554/stream。通过 ONVIF 可发现设备并获取 RTSP 地址。

应用场景

视频边缘分析设备通过 RTSP 拉取摄像头视频流,经解码后送入 AI 推理(目标检测、行为分析等),结果上报或级联至 GB28181 平台。NVR、VMS、播放器均支持 RTSP。与 HTTP-FLV、WebRTC 等相比,RTSP 为传统安防主流,兼容性好。

控制会话与媒体承载

控制面建立后再走媒体面

实时流协议本身搬运的是控制命令,不是像素。客户端先描述需求,服务器返回会话描述,里面写着编码、时钟速率和媒体通道;双方再约定用哪个端口传送图像,然后才开始播放。图像多由实时传输协议承载,可以走用户数据报,也可以嵌在控制连接里。只检测控制端口通了,不能说明画面能出来,媒体端口被防火墙丢掉时,控制命令全部成功,播放器却一直在转圈。

地址里的路径对应摄像机里的某一路配置,主码流和子码流路径不同。路径写错会连上设备但拿到别的通道,或者直接被拒绝。会话有状态:没有先建立传输就发播放,服务器按协议应拒绝。保活靠会话里的询问或媒体报文,超时后服务器拆掉会话,客户端若仍往旧端口送命令,表现为播一会儿就断。

播放器要能消化媒体描述

使用条件是播放端或分析端真正实现了对方返回的编码和传输方式。描述里如果是一种解码器没有的编码,会话仍能建立,解码输出却是花屏或静音。时间戳不连续时,播放器若按到达时间硬播,动作会一顿一顿。分析盒子应在拉流前确认分辨率和帧率,避免把主码流引进算力不够的进程。需要把同一路再交给 VMS 录像时,要明确是再拉一路还是从盒子转发,两路同时拉主码流会把摄像机的并发会话数用完。

它适合监控局域网里相对稳定的拉流。穿过多层地址转换时,媒体端口的协商地址可能是摄像机的内网地址,公网播放器按这个地址去连,控制成功、媒体失败。这时要改传输方式或在边界做应用层转发,而不是把控制端口反复重启。

鉴权、端口和保活

鉴权失败常被当成地址错误。用户名密码以摘要方式交换,时钟差太多时摘要失效,摄像机返回 401,客户端若只显示“连接失败”,维护人员会去改路径。应把状态码记进日志。第二个错误是端口占用:默认控制端口被改掉后,扫描仍打 554,设备在线却没有任何会话。第三个是保活方向不一致,一端指望媒体报文刷新超时,另一端在暂停时停掉媒体,会话被拆,恢复播放要整段重来。

多客户端同时拉流会碰到摄像机的会话上限,后打开的画面黑屏,先打开的也变卡。应在接入设计里限制路数,分析任务固定用子码流。组播地址若没人管理,两台摄像机推到同一组,画面串流。最后不要把控制协议当成可以随意断线重连的文件下载,重连要重新描述、建立和播放,跳过任何一步都会留下半开会话,直到摄像机重启才清掉。

会话上限被占满后,新的播放请求会排队或直接被拒,已有画面并不报错。接入设计要留出维护人员临时预览的余量,并在摄像机侧能看到当前会话列表,否则只能靠断电来清掉僵死连接。

相关术语

返回硬件类知识库