当前位置: 首页 > wzjs >正文

远程时代网站建设啥是网络推广

远程时代网站建设,啥是网络推广,wordpress建站注册新用户,新都网站开发ONVIF协议全解析:版本、Profile与关键流程实现 一、ONvif版本详解 1. 版本演进与核心更新 版本发布时间核心特性ONVIF 1.02008初始版本,支持设备发现、基础媒体流(RTSP)。ONVIF 2.02010引入Profile S(视频设备&#…

ONVIF协议全解析:版本、Profile与关键流程实现


一、ONvif版本详解

1. 版本演进与核心更新
版本发布时间核心特性
ONVIF 1.02008初始版本,支持设备发现、基础媒体流(RTSP)。
ONVIF 2.02010引入Profile S(视频设备)、Profile G(存储设备),支持PTZ控制。
ONVIF 2.42014新增Profile C(IO设备),扩展报警输入/输出功能。
ONVIF 20182018发布Profile T(高级视频设备),支持H.265、元数据、视频分析。
ONVIF 20212021强制TLS加密,增强事件订阅模型,支持OAuth 2.0。
2. 版本兼容性策略
  • 命名空间动态适配:不同版本接口的命名空间不同(如ver10ver20),需生成多版本代码。
  • 功能降级:通过GetCapabilities接口检测设备能力,自动切换功能(如H.264→H.265)。
  • 鉴权兼容:支持WS-Security Digest(2.0+)和Basic Auth(1.0旧设备)。

二、Profile详解:功能与适用场景

1. Profile S(基础视频流设备)
  • 适用设备:网络摄像头(IPC)、视频编码器。
  • 核心功能
    • 设备发现(WS-Discovery)。
    • 实时视频流(RTSP/RTP)。
    • PTZ云台控制(预置位、巡航)。
    • 事件订阅(移动侦测、报警输入)。
  • 必选接口DeviceServiceMediaServicePTZServiceEventService
2. Profile T(高级视频设备)
  • 适用设备:支持智能分析的高端IPC。
  • 扩展功能
    • H.265/HEVC编码。
    • 多码流传输(主码流+子码流)。
    • 元数据叠加(人脸框、结构化数据)。
    • 视频分析(区域入侵、人数统计)。
  • 必选接口:在Profile S基础上增加AnalyticsService
3. Profile G(存储设备扩展)
  • 适用设备:支持本地存储的IPC或NVR。
  • 核心功能
    • 存储管理(SD卡、NAS)。
    • 录像检索与回放。
    • 视频片段下载。
  • 必选接口RecordingServiceReplayService
4. Profile C(输入输出设备)
  • 适用设备:带报警输入/输出接口的IPC或门禁设备。
  • 核心功能
    • 报警触发(红外传感器、门磁信号)。
    • 联动输出(控制继电器、灯光)。
  • 必选接口DeviceIOService

三、关键流程实现与C++代码示例

1. 设备发现(WS-Discovery)

流程

  1. 客户端发送UDP多播Probe请求(端口3702)。
  2. 设备响应ProbeMatch消息,返回服务地址(XAddrs)和支持的Profile。

设备端代码

#include <wsddapi.h>
// 响应Probe请求
int onvif_probe_handler(struct soap *soap, const char *message_id, ...) {struct wsdd__ProbeMatchesType resp;resp.ProbeMatch->XAddrs = "http://192.168.1.100/onvif/device_service";resp.ProbeMatch->Scopes = "onvif://www.onvif.org/Profile/S";return soap_wsdd_ProbeMatches(soap, NULL, message_id, endpoint, &resp);
}
// 启动WS-Discovery服务
soap_wsdd_listen(soap, -1);

客户端代码

soap_wsdd_search(soap, SOAP_WSDD_ADHOC, "dn:NetworkVideoTransmitter", NULL);

2. 鉴权(WS-Security)

流程

  1. 客户端生成UsernameToken(包含Nonce、Timestamp、PasswordDigest)。
  2. 服务端校验密码哈希和时间戳。

客户端添加安全头

#include <wsseapi.h>
soap_wsse_add_UsernameTokenDigest(proxy.soap, "user", "admin", "password");

设备端校验密码

int validate_user(struct soap *soap, const char *username, const char *password) {if (strcmp(username, "admin") == 0 && strcmp(password, "123456") == 0)return SOAP_OK;return SOAP_FAULT;
}

3. 媒体流获取(GetStreamUri)

设备端实现

int MediaServiceService::GetStreamUri(...) {resp->MediaUri->Uri = "rtsp://192.168.1.100:554/live/main";return SOAP_OK;
}

客户端调用

MediaBindingProxy proxy;
_trt__GetStreamUri req;
req.StreamSetup->Stream = tt__StreamType__RTP_Unicast;
proxy.GetStreamUri(&req, resp);
string rtspUrl = resp.MediaUri->Uri; // 播放RTSP流

4. 事件订阅(Event Subscription)

客户端订阅事件

EventBindingProxy proxy;
_tev__CreatePullPointSubscription req;
proxy.CreatePullPointSubscription(&req, resp);
string subscriptionId = resp.SubscriptionReference.Address;

设备端推送事件

void send_event(struct soap *soap, const char *topic, const char *message) {soap_wsdd_event_ProbeMatches(soap, NULL, topic, message, &resp);
}

5. PTZ控制(ContinuousMove)

客户端调用云台转动

PTZBindingProxy proxy;
_tptz__ContinuousMove req;
req.Velocity->PanTilt->x = 0.5; // 水平速度
req.Velocity->PanTilt->y = 0.3; // 垂直速度
proxy.ContinuousMove(&req, resp);

四、多版本与多Profile兼容实现

1. 动态生成多版本代码
# 生成2.0版本代码
wsdl2h -c -s -o onvif_2.0.h devicemgmt-2.0.wsdl media-2.0.wsdl
soapcpp2 -j -CL onvif_2.0.h# 生成2018版本代码
wsdl2h -c -s -o onvif_2018.h devicemgmt-2018.wsdl media-2018.wsdl
soapcpp2 -j -CL onvif_2018.h
2. 运行时动态适配
// 根据命名空间选择代理类
if (namespace_uri.find("ver10") != string::npos) {auto proxy = new DeviceBindingProxy_2_0(SOAP_C_UTFSTRING);
} else if (namespace_uri.find("ver20") != string::npos) {auto proxy = new DeviceBindingProxy_2018(SOAP_C_UTFSTRING);
}

五、验证与调试工具

  1. ONVIF Test Tool:官方工具验证Profile合规性。
  2. Wireshark:抓包分析SOAP消息和RTSP流。
  3. VLC/FFmpeg:测试RTSP流播放。
  4. ONVIF Device Manager:可视化测试设备发现和PTZ控制。

六、总结

  • 版本选择:优先支持主流版本(如2018 Profile T),兼顾旧设备(2.0 Profile S)。
  • Profile实现:根据设备类型选择Profile,逐步扩展功能。
  • 关键流程:设备发现→鉴权→媒体流→事件→PTZ控制,通过gSOAP生成代码快速实现。
  • 兼容性:动态适配命名空间,检测设备能力,降级处理。
http://www.dtcms.com/wzjs/417328.html

相关文章:

  • centos6.6做网站seo零基础培训
  • 我做淘宝网站卖东西怎么激活软文代写发布网络
  • 广州软件园 网站建设苏州关键词优化软件
  • 卢湾区网站建设制作上海最新事件
  • 织梦做的网站为什么显示404百度营销网页版
  • 如何自己做软件网站网站新域名查询
  • 网站什么英文字体全球搜索大全
  • 如何预览做好的网站上海城市分站seo
  • 自己做片头的网站站长推荐产品
  • 网站模板怎么用呢网络广告推广公司
  • 做类似58类型网站查询百度关键词排名
  • 兰州疫情最新消息今天又封了成都高新seo
  • 音乐网站制作课程报告互联网推广销售好做吗
  • 那个网站可以做雪花特效企业推广平台有哪些
  • 菏泽做网站热点事件
  • wordpress适合做官网域名年龄对seo的影响
  • 网站页尾信息谷歌搜索入口365
  • 嘉峪关外包网络推广seo权重优化软件
  • 深圳网站制作公司怎么样黄冈网站推广策略
  • 吉安县规划建设局网站百度seo关键词优化费用
  • 做编程网站有哪些内容做网站设计的公司
  • 网红网站建设微博推广价格表
  • 制作书签的作文廊坊seo整站优化软件
  • 网站中的游戏是怎么做的百度快照怎么使用
  • 学校网站建设目的网络推广软件免费
  • 正日商务做网站多少钱关键词云图
  • 动易公安网站网络营销岗位
  • 佛山市专注网站建设平台免费二级域名查询网站
  • 东莞网站建设服务有什一般的电脑培训班要多少钱
  • 白城学做网站网站seo 工具