
onvif
文章平均质量分 69
快活林高老大
从零开始,重新出发!
展开
-
linux设备上的Onvif 实现15: 连接RTSP获取视频流流程图
正确的鉴权过程是添加用户名和密码的加密信息,重发DESCRIBE命令。收到200应答表示鉴权成功,以后的SETUP、PLAY、TEARDOWN命令中都要携带用户名和密码的加密信息,否则统统返回401失败。原创 2022-10-10 09:22:00 · 835 阅读 · 0 评论 -
linux设备上的Onvif 实现15: 连接RTSP获取视频流流程图
1 背景前文已经获取摄像头的流媒体地址,遵循RTSP规范就可以直接获取视频流了。RTSP的使用流程主要是以下命令:OPTIONS、DESCRIBE、SETUP、PLAY、TEARDOWN。其中DESCRIBE命令可能会返回401应答,表示需要鉴权。正确的鉴权过程是添加用户名和密码的加密信息,重发DESCRIBE命令。收到200应答表示鉴权成功,以后的SETUP、PLAY、TEARD原创 2013-09-11 15:32:51 · 4482 阅读 · 2 评论 -
关于ONVIF系列文章版权声明
本博客里面的关于ONVIF系列文章都是本人原创作品,保留一切版权。首发于http://gaohtao.blog.163.com/读者转发时请注明原始链接出处。linux设备上的Onvif 实现1~~linux设备上的Onvif 实现15原创 2013-09-11 15:35:32 · 1857 阅读 · 0 评论 -
Onvif鉴权实现方式
今天终于调试通过了鉴权过程,详细记录如下:1原理在ONVIF_WG-APG-Application_Programmer's_Guide.pdf文档中第6章描述了onvif加密方式。Soap通信的验证机制是WS_UsernameToken,流加密的方式是HTTPS。本文只研究了WS_UsernameToken方式。 我们知道onvif的用户验证是基于WS_Usern原创 2013-09-30 16:52:40 · 15284 阅读 · 17 评论 -
linux设备上的Onvif 实现13: 获取子通道的配置数据范围
1 背景想要修改配置数据,必须知道摄像头支持的数据范围,这样才能设置成正确的数据。2 函数原型SOAP_FMAC5 int SOAP_FMAC6 soap_call___ns8__GetVideoEncoderConfigurationOptions(struct soap *soap, const char *soap_endpoint, const char *soap_actio原创 2013-09-30 17:01:58 · 3328 阅读 · 3 评论 -
linux设备上的Onvif 实现12: 获取媒体配置数据
1 背景通过GetProfiles命令可以获得设备的所有配置信息,这是比较全面的数据。通过GetVideoEncoderConfigurations()函数可以获得单独的媒体配置信息,返回的应答中包括主通道和子通道的数据。2 函数原型SOAP_FMAC5 int SOAP_FMAC6 soap_call___ns8__GetVideoEncoderConfigurations(stru原创 2013-09-30 17:03:15 · 2537 阅读 · 1 评论 -
linux设备上的Onvif 实现11: 修改媒体配置数据的流程
前文已经说明了获取摄像头RTSP地址的完整方法,本文将要更进一步说明当发现摄像头的配置信息不支持的时候如何进行修改。完整的修改流程如下:1 读取媒体配置信息 向媒体信息URI http://192.168.15.240/onvif/Media发送命令,读取两个通道的配置信息。2 读取子通道的配置数据范围。一般2通道,第1是主通道,第2是子通道。3 根据数据范围修改子通道原创 2013-09-30 17:03:56 · 2137 阅读 · 0 评论 -
linux设备上的Onvif 实现10:获取支持通道的RTSP地址
1 背景前文已经判断出了支持的通道,对于主通道子通道都支持的摄像头,优先选择主通道获取流媒体地址。实际应用中只要取得一个通道的RTSP即可。2 GetStreamUri获取流媒体地址的函数是GetStreamUri,我的版本中是:SOAP_FMAC5 int SOAP_FMAC6 soap_call___ns8__GetStreamUri(struct soap *soap, co原创 2013-09-30 17:05:02 · 3576 阅读 · 0 评论 -
linux设备上的Onvif 实现9:检查是否支持该设备
1 背景前文获取了摄像头的2个通道的视频分辨率、帧率、码率、编码格式等信息,目的是为了判断我的linux设备能否支持该视频解码显示。 如果能够支持那么就大吉大利,一切OK!如果两个通道都不支持,那么就需要更麻烦的自动修改配置参数过程了,详细修改过程见后文说明。2 我的判断函数我的判断标准是:#define MAXWIDTH 640#define原创 2013-09-30 17:07:05 · 2506 阅读 · 2 评论 -
linux设备上的Onvif 实现8:编写媒体信息获取程序
1 背景 在前文中获取到了媒体信息URI http://192.168.15.240/onvif/Media, 本文将向这个地址查询设备的具体媒体配置信息,将返回视频源分辨率、编码器分辨率、编码格式、帧率、码率、多播地址等信息。2 GetProfiles 获取媒体信息函数是GetProfiles,在我的版本中实际名称是:SOAP_FMAC5 int SOAP_FMAC原创 2013-09-30 17:08:36 · 5326 阅读 · 7 评论 -
linux设备上的Onvif 实现7:编写设备能力获取程序
1 背景说明要和摄像头直接通信,第一步必须获取webserver地址,通过该地址才能进一步获得设备的能力、提供的媒体频信息等内容。webserver地址就是在probe应答包中, 具体是XAddrs:http://192.168.15.240/onvif/device_service,接下来的获取设备能力函数将使用此地址进行通信。2GetCapabilities命令说明GetC原创 2013-09-30 17:09:38 · 4639 阅读 · 19 评论 -
linux设备上的Onvif 实现5:实现Probe命令检测设备
学习Onvif的最关键步骤就是设备发现,一般来说开发的设备都是客户端,只要能被服务端正确发现就大功告成啦!本文分别实现了客户端和服务端的识别流程,可以配合起来运行测试。第一部分:实现Probe检测实例代码目录:\\192.168.0.234\work\gaoht\gsoap\test\\192.168.0.234\work\gaoht\gsoap\probe-sampleG原创 2013-09-30 17:12:11 · 9415 阅读 · 17 评论 -
linux设备上的Onvif 实现4:成功编译gsoap 2.8.15
前言 本说明示例是gsoap 2.8.15 gsoap工具包中支持的平台是:linux386、macosx、win32,没有提供嵌入式arm平台,本文将指导完成交叉工具编译生成嵌入式平台工具。工作目录:\\192.168.0.234\work\gaoht\gsoap \gsoap-2.8\ 解压后的目录 \target\ 编译后的安装目录交叉编原创 2013-09-30 17:12:55 · 6471 阅读 · 5 评论 -
linux设备上的Onvif 实现3:gsoap框架基础知识
一样可以在网上搜索到的参考资料,仅供参考。根据我的实践,这些都不能必然保证成功,后面我会详细列出我的实现步骤。gsoap安装过程.docGSoap工具的安装和使用.docgSOAP服务开发指南V2._0.docgSOAP学习体会.docgsoap中文文档.pdflinux下gsoap使用及移植.pdfsoapdoc2.pdfsoap协议规范.docWebServ原创 2013-09-30 17:13:33 · 3649 阅读 · 0 评论 -
linux设备上的Onvif 实现2:ONVIF框架基础知识
学习ONVIF框架的一些基础知知识,可以从网上下载到。基于onvif的网络视频监控(论文).pdfws-discovery.pdfonvif总结.docxONVIF码流格式.pdfONVIF测试工具及方法.docONVIF_简介.pptonvif_2.1.rar 协议规范原创 2013-09-30 17:14:06 · 4760 阅读 · 0 评论 -
linux设备上的Onvif 实现1: 研究计划
linux设备上的Onvif 实现1: 研究计划ONVIF开发计划 预研步骤学习ONVIF框架,基础知识 学习gsoap框架,介绍,示例 编译gsoap工具包 下载gsoap 2.8.15 在0.234服务器上运行编译原创 2013-09-30 17:15:15 · 6032 阅读 · 5 评论 -
Linux设备上的Onvif实现16:实现Onvif鉴权
2013-09-30 16:39:27今天终于调试通过了鉴权过程,详细记录如下:1原理在ONVIF_WG-APG-Application_Programmer's_Guide.pdf文档中第6章描述了onvif加密方式。Soap通信的验证机制是WS_UsernameToken,流加密的方式是HTTPS。本文只研究了WS_UsernameToken方式。 我们知原创 2014-02-10 11:01:10 · 9688 阅读 · 14 评论 -
Linux设备上的Onvif实现17:实现RTSP摘要认证
1 RTSP协议中定义了两种认证方法,基本认证(basic authentication),摘要认证(digest authentication)。基本认证是http1.0提出的认证方案,其密码传输的加密算法(base64)是可逆算法,很容易被截获破解。摘要认证是http1.1提出的替代方案,其密码经过MD5哈希转换因此具有更高的安全性。 本文只介绍摘要认证。2 网络上有一篇文章介绍RTSP摘原创 2014-03-27 11:12:26 · 3943 阅读 · 2 评论 -
Linux设备上的Onvif实现18: ONVIF视频监视功能开发问题总结
ONVIF视频监视功能开发问题总结高洪涛 2014-5-16我从去年8月份开始学习ONVIF,经历了各种困难,有时简直要暴走发狂,终于能够达成计划目标,实现了预订功能。痛苦已经过去,现在是写个问题总结的时候了,希望能记录遇到的问题,以便将来遗忘时参考。测试的摄像头有2种品牌3种型号。分别是海康的2款枪机,DS-2CD3312D-I台湾升泰科技(AVTECH)的一款家用IPC,原创 2014-05-26 15:50:21 · 4641 阅读 · 5 评论 -
linux设备上的Onvif 实现6:获取摄像头的流媒体地址完整流程
本文是第6篇文章,介绍了获取摄像头的流媒体地址的完整过程。 之前5篇文章都是为了本文打基础,通过Probe命令识别摄像头是为了建立直接联系,最终目的是是为了获取流媒体地址,这样才能使用RTSP传输视频流。整体流程:Probe: 发现网络摄像头,获取webserver地址 http://192.168.15.240/onvif/device_serviceGetCap原创 2013-09-30 17:10:15 · 12270 阅读 · 2 评论 -
linux设备上的Onvif 实现20:海康摄像头H264码流错误
2014-07-02 本周测试一台海康的网络摄像头,型号是DS-2CD8264FWD-EI, 出厂日期是2012-11,软件版本是V4.0.1-120508,发现H264码流保存下来的文件无法播放,经过几天分析,确认是码流中有异常错误。 分析接收到的每一帧数据,码流开始时SPS、PPS、I帧,然后是多个P帧,继续SPS、PPS、I帧,依次循环下去。I帧数据比较大,需要将多包数据组成一帧。原创 2015-04-20 23:54:04 · 5799 阅读 · 0 评论 -
linux设备上的Onvif 实现21:解决大华摄像头无法使用问题
好长时间没有再写该系列文章了,最近刚好摸索着解决了大华摄像头无法使用问题,记录下来,应该对其他博友有所帮助。之前虽然写了一大堆文章说明了如何使用gsoap连接摄像头,但这是针对一台海康的摄像头开发的,一旦使用了同品牌不同型号摄像头或者其他牌子的摄像头就可能出现兼容性问题,导致无法使用。我就是碰到了这个问题,测试过的多个品牌型号摄像头,有的能直接使用,有的不能使用,问题各部相同。本文就是针对大华摄像原创 2015-04-20 23:51:57 · 9844 阅读 · 7 评论 -
linux设备上的Onvif 实现19:发现及鉴权示例程序
前面讲述了一大堆函数用法,现在给出原创 2014-06-19 19:17:59 · 3167 阅读 · 1 评论