You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中从支持ONVIF的VMS及录像设备获取RTSP URL

ONVIF获取RTSP URL常见问题解答

问题1:查找并关联不同摄像头对应媒体配置文件的方法

  • 先调用GetDeviceInformation接口获取设备基础信息,和摄像头的物理通道/序列号做匹配:单路摄像头返回的所有配置文件都归属于该设备,多路NVR的配置文件会按通道区分。
  • 解析GetProfiles返回的每个Profile结构体的Name/token字段,大部分厂商会在Name字段内置通道号、摄像头点位名称标识,可直接通过该字段做关联。
  • 如果Name字段无有效标识,可调用GetVideoSourceConfiguration接口,读取对应配置文件关联的视频源信息:视频源的SourceToken和摄像头通道是一一绑定的,你可以提前枚举所有摄像头通道的视频源token,即可和配置文件完成对应绑定。
  • 注意:同一个摄像头会存在多个不同配置的Profile,分别对应主码流、子码流、第三码流,可通过VideoEncoderConfiguration里的分辨率、码率参数区分你需要的码流类型。

问题2:从VMS服务器获取RTSP URL的方法

  • 首先确认你对接的VMS是否支持ONVIF标准的媒体服务,部分厂商VMS默认关闭ONVIF媒体服务,需要先在VMS后台开启ONVIF对接权限、添加允许对接的IP白名单。
  • VMS的ONVIF服务地址和直连设备的地址不同,一般是http://<VMS_IP>:<端口>/onvif/device_service,端口号不同厂商有差异,常见为80、8000、8080等,需要先向厂商确认或者通过端口扫描获取。
  • 对接VMS时需要先完成鉴权流程,大部分商用VMS的ONVIF接口都启用了摘要认证,你需要在所有请求头携带合规的鉴权信息,否则会返回401错误导致无法获取配置文件和流地址。
  • 鉴权通过后按照和直连设备相同的流程调用GetProfiles获取对应摄像头的配置文件,再调用GetStreamUri即可获取VMS转发的RTSP URL。
  • 部分厂商VMS的RTSP URL会做自定义加密或者需要额外的会话校验,按照标准流程获取后如果无法播放,需要联系VMS厂商确认是否有私有扩展要求。

内容的提问来源于stack exchange,提问作者Arul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 03:24:03