onvif协议

onvif协议是视频监控领域共同制订的一套标准,以探测同一局域网内摄像头信息。

onvif开源代码:

#include 
#include 
#include  
#include 
#include 
#include 
#include 
#include  

/* 发送探测消息(Probe)的目标地址、端口号 */ 
#define CAST_ADDR  "239.255.255.250"  // 多播地址,固定的239.255.255.250 
#define CAST_PORT  3702               // 端口号
 
const char *probe = "
uuid:fc0bad56-5f5a-47f3-8ae2-c94a4e907d70urn:schemas-xmlsoap-org:ws:2005:04:discoveryhttp://schemas.xmlsoap.org/ws/2005/04/discovery/Probe
dn:NetworkVideoTransmitter
"; int main(int argc, char **argv) { int ret; int optval; int s; int len; char recv_buff[4096] = {0}; struct sockaddr_in multi_addr; struct sockaddr_in client_addr; s = socket(AF_INET, SOCK_DGRAM, 0); // 建立数据报套接字 if (s < 0) { perror("socket error"); return -1; } multi_addr.sin_family = AF_INET; // 搜索IPC:使用UDP向指定地址发送探测消息(Probe) multi_addr.sin_port = htons(CAST_PORT); multi_addr.sin_addr.s_addr = inet_addr(CAST_ADDR); ret = sendto(s, probe, strlen(probe), 0, (struct sockaddr*)&multi_addr, sizeof(multi_addr)); if (ret < 0) { perror("sendto error"); return -1; } printf("Send Probe message to [%s:%d]\n\n", CAST_ADDR, CAST_PORT); SLEEP(1); for (;;) { // 接收IPC的应答消息(ProbeMatch) len = sizeof(client_addr); memset(recv_buff, 0, sizeof(recv_buff)); memset(&client_addr, 0, sizeof(struct sockaddr)); ret = recvfrom(s, recv_buff, sizeof(recv_buff) - 1, 0, (struct sockaddr*)&client_addr, &len); printf("===Recv ProbeMatch from [%s:%d]===\n%s\n\n", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port), recv_buff); SLEEP(1); } return 0; }

1、ue设备发送组播、目的端口为3702的udp发现报文,udp报文数据部分为xml格式

2、支持onvif协议的摄像头收到该报文后,会回复ProbeMatch报文

onvif测试工具:

xml格式是通过采用onvif测试工具(ONVIF测试工具(ONVIF Device Test Tool)[email protected])抓取的,在pc上安装该工具后,pc会自动发送onvif发现报文,和pc在同一局域网内的摄像头均回复该报文,onvif测试工具则可以获取所有摄像头相关信息。

onvif协议报文:

发现报文:

onvif协议_第1张图片

应答报文:

onvif协议_第2张图片

 

参考文档:

https://blog.csdn.net/benkaoya/article/details/72476120
https://www.cnblogs.com/attilax/p/6181545.html

https://blog.csdn.net/foreverhot1019/article/details/83301513
ONVIF协议网络摄像机(IPC)客户端程序开发(2):第一次使用IPC摄像头
https://blog.csdn.net/benkaoya/article/details/72426853

你可能感兴趣的:(通信)