设为首页 加入收藏

TOP

Linux下onvif客户端获取ipc摄像头 获取能力:GetCapabilities(二)
2019-05-23 14:38:26 】 浏览:190
Tags:Linux onvif 客户端 获取 ipc 摄像头 能力 GetCapabilities
5
char sercer_addr[] = "http://172.168.0.211/onvif/device_service"; //设备搜索得到的地址 106 107 struct SOAP_ENV__Header header; 108 struct soap* soap = ONVIF_Initsoap(&header, NULL, NULL, 5); 109 110 struct _tds__GetCapabilities *req; 111 struct _tds__GetCapabilitiesResponse *Response; 112 113 if(NULL == (req = (struct _tds__GetCapabilities *)calloc(1,sizeof(struct _tds__GetCapabilities)))) 114 { 115 printf("calloc is error \n"); 116 ret = -1; 117 return ret; 118 }else{ 119 req->__sizeCategory = 1; 120 req->Category = (enum tt__CapabilityCategory *)soap_malloc(soap, sizeof(int)); 121 *(req->Category) = (enum tt__CapabilityCategory)5; //5表示:tt__CapabilityCategory__Media 122 123 ONVIF_SetAuthInfo(soap,"admin","hk123456"); //鉴权,输入摄像头的用户名、密码 124 ret = soap_call___tds__GetCapabilities(soap, sercer_addr, NULL,req, Response); 125 if(soap->error){ 126 ret = -1; 127 printf("soap error: %d, %s, %s\n", soap->error, *soap_faultcode(soap), *soap_faultstring(soap)); 128 return ret; 129 }else{; 130 if(NULL != Response->Capabilities) 131 { 132 if (Response->Capabilities->Media != NULL){ 133 if (Response->Capabilities->Media->XAddr != NULL){ 134 printf(" media_addr: %s \n", Response->Capabilities->Media->XAddr); 135 } 136 } 137 } 138 } 139 } 140 141 if(NULL != req) 142 { 143 free(req); 144 req = NULL; 145 } 146 147 ONVIF_soap_delete(soap); 148 return ret; 149 }

 

在编译之前要把:stdsoap2.c  soapC.c  md5.c dom.c mecevp.c smdevp.c threads.c wsaapi.c wsseapi.c soapClient.c   把这些.c 还有有些配套的.h  拷贝到当前工作目录下。

 

 

如果出现以下错误要在编译的时候加:-DWITH_OPENSSL

/tmp/cccao7U5.o:在函数‘soap_mec_init’中:
mecevp.c:(.text+0xe):对‘soap_ssl_init’未定义的引用
/tmp/ccV2yl3Q.o:在函数‘soap_smd_init’中:
smdevp.c:(.text+0x24c):对‘soap_ssl_init’未定义的引用

 

 

编译:gcc -o test get_GetCapabilities_test.c stdsoap2.c soapC.c md5.c dom.c mecevp.c smdevp.c threads.c wsaapi.c wsseapi.c soapClient.c -I import/ -DWITH_OPENSSL -lssl -lcrypto -ldl 

结果:成功得到我们想要的媒体地址

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux下onvif客户端获取ipc摄像头.. 下一篇Onvif获取rstp地址GetCapabilitie..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目