设为首页 加入收藏

TOP

Linux下onvif客户端获取ipc摄像头 GetStreamUri:rtsp地址(h264、h265)(二)
2019-05-23 14:38:30 】 浏览:246
Tags:Linux onvif 客户端 获取 ipc 摄像头 GetStreamUri rtsp 地址 h264 h265
..............................................h264通道....................................................
struct _trt__GetStreamUri trt__GetStreamUri; struct _trt__GetStreamUriResponse response; trt__GetStreamUri.StreamSetup = (struct tt__StreamSetup*)soap_malloc(soap, sizeof(struct tt__StreamSetup)); if (NULL == trt__GetStreamUri.StreamSetup){ printf("soap_malloc is error\n"); ret = -1; } trt__GetStreamUri.StreamSetup->Stream = tt__StreamType__RTP_Unicast;//stream type trt__GetStreamUri.StreamSetup->Transport = (struct tt__Transport *)soap_malloc(soap, sizeof(struct tt__Transport)); if (NULL == trt__GetStreamUri.StreamSetup->Transport){ printf("soap_malloc is error\n"); ret = -1; } trt__GetStreamUri.StreamSetup->Transport->Protocol = 1; trt__GetStreamUri.StreamSetup->Transport->Tunnel = 0; trt__GetStreamUri.StreamSetup->__size = 1; trt__GetStreamUri.StreamSetup->__any = NULL; trt__GetStreamUri.StreamSetup->__anyAttribute = NULL; trt__GetStreamUri.ProfileToken = (char *)soap_malloc(soap, 128*sizeof(char ));// if (NULL == trt__GetStreamUri.ProfileToken){ printf("soap_malloc is error\n"); ret = -1; } strcpy(trt__GetStreamUri.ProfileToken, taken); ONVIF_SetAuthInfo(soap,"admin","123456"); //鉴权 soap_call___trt__GetStreamUri(soap, media_addr, NULL, &trt__GetStreamUri, &response); if(soap->error){ ret = -1; printf("soap error: %d, %s, %s\n", soap->error, *soap_faultcode(soap), *soap_faultstring(soap)); return ret; }else{ printf("rtsp_addr: %s\n", response.MediaUri->Uri); } //...............................................h264通道.................................................... /* //...............................................h265通道.................................................... struct _tr2__GetStreamUri tr2__GetStreamUri; struct _tr2__GetStreamUriResponse tr2__GetStreamUriResponse; tr2__GetStreamUri.Protocol = (char *)soap_malloc(soap, 128*sizeof(char));// if (NULL == tr2__GetStreamUri.Protocol){ printf("soap_malloc is error\n"); ret = -1; } tr2__GetStreamUri.ProfileToken = (char *)soap_malloc(soap, 128*sizeof(char ));// if (NULL == tr2__GetStreamUri.ProfileToken){ printf("soap_malloc is error\n"); ret = -1; } strcpy(tr2__GetStreamUri.Protocol, "tcp"); strcpy(tr2__GetStreamUri.ProfileToken, taken); ONVIF_SetAuthInfo(soap,"admin","123456"); //鉴权 soap_call___tr2__GetStreamUri(soap, media_addr2, NULL, &tr2__GetStreamUri, &tr2__GetStreamUriResponse); if(soap->error){ ret = -1; printf("soap error: %d, %s, %s\n", soap->error, *soap_faultcode(soap), *soap_faultstring(soap)); return ret; }else{ printf("rtsp_addr: %s\n", tr2__GetStreamUriResponse.Uri); }*/ //...............................................h265通道.................................................... ONVIF_soap_delete(soap); return ret; }

ps:一般情况是如果一开始用的是_tr2(h265),那么获取信息的时候应该就会一直用tr2(h265)通道。但是有些摄像头比较奇葩,一开始走的都是_tr2,也就是h265的通道(如get_profiles),但是在获取onvif的uri(rtsp地址)的时候本该走_tr2(h265)通道,却走了_trt(h264)的通道才能获取

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

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目