1. RTSP协议与安防监控的深度绑定RTSPReal Time Streaming Protocol作为音视频传输领域的经典协议在安防监控行业已经服役超过二十年。我第一次接触RTSP还是在2013年调试海康威视的球机时当时为了获取主码流和子码流花了整整三天时间研究各种URL组合方式。如今虽然ONVIF协议逐渐普及但RTSP仍然是设备兼容性最广的拉流方案。为什么RTSP在安防领域如此重要主要因为它的三个特性首先协议本身轻量级适合嵌入式设备实现其次支持点播和直播两种模式完美契合监控场景需求最重要的是几乎所有NVR和IPC厂商都默认开放RTSP服务端口。在实际项目中当ONVIF自动发现失败时手动拼接RTSP地址往往是最后的救命稻草。2. 海康威视RTSP地址全解析2.1 基础地址结构海康设备的RTSP地址主要分为新旧两种格式。老式设备常用这种结构rtsp://[用户名]:[密码][IP地址]:[端口]/[码流类型]/[通道号]/[码流类型]/av_stream比如某款DS-2CD3系列摄像机的地址rtsp://admin:Test1234192.168.1.64:554/h264/ch1/main/av_stream这里h264表示编码格式ch1是通道号main代表主码流sub为子码流。2.2 新式URL格式2016年后推出的设备更多采用这种结构rtsp://admin:12345610.0.1.100:554/Streaming/Channels/[通道标识]通道标识由三位数字组成第一位固定为1IPC或2NVR第二位通道编号从0开始第三位码流类型1为主码流2为子码流例如NVR的第三通道子码流rtsp://admin:12345610.0.1.100:554/Streaming/Channels/2022.3 特殊场景处理回放功能的URL需要添加时间参数rtsp://admin:12345610.0.1.100:554/Streaming/tracks/101?starttime20230801T180000Zendtime20230801T190000Z时间格式必须严格按照ISO 8601标准时区使用Z表示UTC时间。3. 大华设备URL拼接秘籍3.1 实时流地址规范大华的URL结构相对统一主要区别在参数排列rtsp://[用户名]:[密码][IP]:554/cam/realmonitor?channel1subtype0关键参数说明channel从1开始的通道号subtype0主码流1辅码流2第三码流unicast/multicast默认单播可不写实测发现DH-SD6C系列球机有个特殊点当使用800万像素时subtype0对应4K主码流subtype1是1080P子码流。3.2 零通道与智能流大华NVR的零通道设备自身画面这样获取rtsp://admin:admin192.168.1.100:554/cam/realmonitor?channel0subtype0智能分析流则需要添加streamtype参数rtsp://admin:admin192.168.1.100:554/cam/realmonitor?channel1subtype0streamtype14. 宇视科技的特殊规则4.1 基础访问格式宇视的RTSP地址简洁但有个坑点rtsp://admin:passwordIP:554/media/video[通道号]比如获取第二通道rtsp://admin:Admin123-10.0.1.101:554/media/video2注意密码中如果包含符号需要转义这是很多开发者踩过的坑。4.2 多码流支持高端型号支持多达4个码流rtsp://admin:passwordIP:554/media/video1/trackID1 # 主码流 rtsp://admin:passwordIP:554/media/video1/trackID2 # 子码流 rtsp://admin:passwordIP:554/media/video1/trackID3 # 第三码流5. 中小厂商的适配技巧5.1 天地伟业采用类海康的老式结构rtsp://admin:admin192.168.1.100:554/video[通道号]或者更详细的版本rtsp://admin:admin192.168.1.100:554/[NVR通道号]/[摄像机号]/15.2 宇泛智能参数通过query string传递rtsp://192.168.1.100:554/live?channel1type0type0表示主码流1为子码流。6. 实战排错指南6.1 常见错误代码401 Unauthorized检查用户名密码特别注意特殊字符转义404 Not Found确认URL路径是否正确尤其是大小写敏感554 Stream Not Found检查通道号和码流类型组合6.2 抓包分析技巧用Wireshark过滤RTSP交互过程时注意这几个关键点DESCRIBE请求是否返回SDP信息SETUP阶段的Transport头是否包含客户端端口PLAY请求后的RTP包时间戳是否连续6.3 码流切换优化在开发多画面切换功能时建议先TEARDOWN当前会话间隔300ms再发起新SETUP对NVR通道切换使用相同的TCP连接记得某次项目就因为没做延迟处理导致NVR的RTSP服务直接崩溃重启。后来发现是海康某款NVR的固件bug连续快速切换通道会触发缓冲区溢出。