RTSP 401 Unauthorized 和 404 Not Found:诊断摄像头 URL 和身份验证失败
如何通过分离凭据、URL 路径、ONVIF 发现和流配置文件证据来解决 RTSP 401 未经授权和 404 未找到摄像头错误。
支持票证中一次又一次出现两个 RTSP 错误:“401 Unauthorized”和“404 Not Found”。它们听起来很简单。一个看起来像是登录问题,另一个看起来像是一个错误的 URL。在实际的相机部署中,两者都可以更加微妙。
摄像头可能会在 Web UI 中接受相同的凭据,但拒绝 RTSP。记录器可以为主流和子流暴露不同的路径。 ONVIF 扫描可能会发现稍后更改的 URL。供应商可能需要频道号、流后缀或配置文件令牌。当路径太长、流被禁用或身份验证模式与客户端不兼容时,某些摄像机还会返回误导性的状态代码。
对于 Google 搜索,用户查询通常是直接的:“RTSP 401 未经授权的摄像机”、“RTSP 404 未找到”、“VLC 工作但 NVR 说没有信号”或“ONVIF 摄像机 RTSP URL 不工作”。一篇有用的文章不应该假装有一个神奇的 URL。它应该展示如何收集证据。
从失败的 RTSP 方法开始
不要只记录最后的错误。记录哪个 RTSP 方法返回它:
选项描述设置- ‘玩’
如果“OPTIONS”失败并返回 401,则身份验证或服务器策略会在请求元数据之前阻止会话。如果“DESCRIBE”失败并显示 401,则摄像机可能会接受连接,但拒绝访问该流路径。如果“DESCRIBE”返回 404,则该路径通常不会映射到流配置文件。如果“DESCRIBE”成功后“SETUP”失败,则 URL 可能有效,但轨道控制路径、传输模式或媒体配置文件有问题。
这种区别很重要,因为下一个操作会发生变化。凭据修复不会修复丢失的流路径。更改 URL 后缀不会修复摘要验证不匹配。
将凭证与流路径分开
一个干净的故障排除矩阵如下所示:
- 相同的用户名/密码适用于相机 Web UI
- RTSP 服务已启用
- RTSP 端口从客户端网络打开
- URL 路径与供应商的主流或子流模式匹配
- 相机上启用了流配置文件
- 认证方式与客户端兼容
- 密码中的特殊字符编码正确
Password characters are a frequent source of false failures. A password that contains @, :, /, ?, #, or spaces may need URL encoding when embedded in an RTSP URL. A better test is to use a client that sends credentials separately rather than relying on an inline URL.
为什么 404 通常表示配置文件或路径,而不是网络
“404 Not Found”表示已到达服务器并足以理解请求以拒绝资源。对于摄像机流,这通常指向以下之一:
- 频道号码错误
- 流后缀错误
- 主码流已禁用
- 子码流已禁用
- 录像机路径与摄像机路径不同
- ONVIF 配置文件令牌已更改
- 需要供应商特定的访问名称
- 仅在设置中启用 RTSP 后,流才存在
最有用的证据是“DESCRIBE”请求 URI 和响应状态。如果摄像机在 SDP 之前返回 404,则还没有媒体会话。在确认 URL 映射到真实流之前,请勿跳转到 RTP 丢失或编解码器调试。
ONVIF 发现有所帮助,但它与证据不同
ONVIF 发现可以提供流 URI 和配置文件信息,但发现的 RTSP URI 仍需要测试。某些系统正确公开 ONVIF,但 RTSP 身份验证或路径行为不同。其他返回的 URI 仅对稍后被禁用或更改的配置文件有效。
诊断顺序应为:
- 发现或输入 RTSP URL
- 运行“选项”和“描述”
- 捕获状态代码和标头
- 检查SDP是否返回
- 然后检查“SETUP”、“PLAY”、RTP 和编解码器证据
这种顺序可以防止工程师将每次故障都视为“相机离线”问题。
应如何使用 RTSP Inspector
RTSP Inspector 不是播放器、ONVIF 管理器或摄像机发现产品。它的作用是使 RTSP 事务足够可见以解释发生的情况。对于 401 和 404 情况,有用的输出是:
- 请求URI
- 失败的方法
- 状态码
- 认证边界
- SDP是否被退回
- 失败是否发生在媒体谈判之前
- 推荐的下一个所有者:凭据、相机配置文件、供应商 URL 格式、网络端口或流支持
这正是现场集成商或视频平台工程师在升级到摄像机供应商或盲目更改录像机设置之前需要的证据。
当支持票显示“RTSP 无法工作”时,请询问方法、状态代码和 SDP 边界。这将一般性投诉转变为可解决的案例。