定义
ONVIF(Open Network Video Interface Forum)是安防行业开放标准,基于 Web Services,规定 IP 摄像头的发现、配置、流媒体接口。支持 ONVIF 的摄像头可与不同品牌 NVR、VMS(视频管理系统)、视频边缘分析设备互联。视频边缘设备通常同时支持 RTSP、ONVIF、GB28181。
核心功能
设备发现(WS-Discovery);设备管理(网络、系统、图像配置);媒体配置(编码、分辨率、帧率);流媒体(RTSP 地址获取、PTZ 云台控制);事件订阅(移动侦测、报警)。ONVIF 规范有多个 Profile(如 S、G、T),不同 Profile 支持不同功能集。视频边缘分析设备通过 ONVIF 发现并拉取摄像头视频流,经 AI 分析后上报事件或级联至 GB28181 平台。
与 GB28181 对比
GB28181 为中国国标,侧重平台级联与公安联网;ONVIF 为国际标准,侧重设备互联。摄像头多支持 ONVIF;公安平台要求 GB28181。视频网关可将 ONVIF 设备转换为 GB28181 设备接入国标平台。
能力档与媒体配置树
发现之后还要拉媒体描述
开放视频接口把摄像机拆成几组服务。发现服务只回答“网上有一台设备”,设备服务给出厂商、能力和系统时间,媒体服务才列出编码配置、分辨率和可以取流的地址。分析或录像主机若停在发现阶段,最多得到一个名字,拿不到可播放的流。取流地址通常还要再交给流媒体控制协议去建立会话,两个步骤缺一,画面都出不来。
配置在设备里是一棵树:视频源下面挂编码配置,编码配置再挂到具体的配置档。调用者必须使用设备返回的令牌,不能自己编一个通道号。有的摄像机每个通道有主码流和子码流两套配置,分析任务若误选主码流,带宽和解码负载会超出边缘盒子的设计。
只有对应档位才有回放或云台
规范按档位划分功能集合。只实现实时视频档的摄像机,可以预览,不一定能按时间回放,也不一定暴露云台。采购和联调要先写出需要发现、实时流、云台还是录像检索,再核对双方声明的档位,而不是看到接口名称就认为功能齐全。事件订阅同样单独存在:移动侦测、遮挡和开关量是否上报,要在事件服务里逐项试,不能从“能看到画面”推断出来。
使用条件还包括时间同步和账号。设备时间不准,事件时间和录像时间对不上,检索会空。账号若只有预览权,媒体服务能拉流,云台和配置修改会被拒绝,日志里却容易被写成“设备不兼容”。跨网段时,发现所用的组播往往到不了路由另一侧,需要改用已知地址直接访问设备服务。
账号、时间和多播冲突
容易出错的是多播发现被当成唯一手段。交换机开了隔离、或者中间有三层设备,列表为空,摄像机其实在线上。应保留按地址添加的路径。第二是鉴权方式不一致,一端发送摘要认证,一端只接受用户名口令的另一种封装,握手反复失败,表现为地址可通但服务超时。第三是同时有人改配置,配置令牌失效,上一轮拿到的取流地址被设备丢弃。
把多台摄像机送进 VMS 之前,先在单台设备上把档位、码流和时间核对完。级联到上级平台时再做协议转换,不要一边转换一边改摄像机编码。云台绝对移动和相对移动混用,预置位会越走越偏。最后确认分析主机拉的是子码流还是主码流,避免录像和智能分析抢同一路高码率。
设备重启后配置档可能回到出厂编码,取流地址的令牌全部作废。采集侧若缓存旧地址不重新读取媒体服务,会连续报连接失败,而摄像机本身已经在线。上电流程里应把发现、对时、读取配置档和取流写成固定顺序,不要依赖上一次会话留下的地址。