admin管理员组文章数量:1539010
2024年7月2日发(作者:)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.4
(22)申请日 2018.11.30
(71)申请人 四川九州电子科技股份有限公司
地址 621000 四川省绵阳市科创园区九洲大道259号
(72)发明人 蔡晓春 钟其元 李诗龙
(74)专利代理机构 四川省成都市天策商标专利事务所
代理人 刘兴亮
(51)
(10)申请公布号 CN 109361871 A
(43)申请公布日 2019.02.19
权利要求说明书 说明书 幅图
(54)发明名称
一种将网络摄像头模拟为USB摄
像头的方法
(57)摘要
本发明公开了一种将网络摄像头模
拟为USB摄像头的方法,包括:将网络摄
像头交互协议封装在Linux内核层,Linux
内核加载设备驱动后,完成网络摄像头交
互协议和网络摄像头发现协议的初始化;
搜索到在线设备后,在/dev路径下生成一
个设备节点,用于将对摄像头的操作转换
为对Linux标准驱动的操作;设备参数配
置,用于对单个设备进行参数配置,或者
配置参数模板,用于对设备进行批量设
置;设备控制,用于对单个设备实现抓
拍、读取音视频流、以及遮挡报警的上
报。本发明应用程序不需要关注网络摄像
头的协议细节,简化应用程序的实现,大
幅度提高应用的开发效率。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种将网络摄像头模拟为USB摄像头的方法,其特征在于,包括:
步骤S100:将网络摄像头交互协议封装在Linux内核层,Linux内核加载设备驱动
后,完成网络摄像头交互协议的初始化和网络摄像头发现协议的初始化;
步骤S200:搜索在线设备,发现在线设备后,在/dev路径下生成一个设备节点,
用于将对摄像头的操作转换为对Linux标准驱动的操作;
步骤S300:设备参数配置,用于对单个设备进行参数配置,或者配置参数模板,
用于对设备进行批量设置;
步骤S400:设备控制,用于对单个设备实现抓拍、读取音视频流、以及遮挡报警
的上报。
2.根据权利要求1所述的一种将网络摄像头模拟为USB摄像头的方法,其特征在
于,所述步骤S200具体包括:
步骤S210:根据设定的搜索模式主动搜索局域网中符合网络摄像头协议的在线设
备;
步骤S220:在线设备接入时,在/dev下生成一个设备节点。
3.根据权利要求2所述的一种将网络摄像头模拟为USB摄像头的方法,其特征在
于,所述搜索模式包括自动搜索和手动搜索,所述自动搜索用于通过向固定的地址
发送组播消息搜索与系统在同一个子网内的在线设备,所述手动搜索用于通过向指
定的地址发送组播消息搜索指定的子网内的在线设备。
4.根据权利要求1所述的一种将网络摄像头模拟为USB摄像头的方法,其特征在
于,所述步骤S200包括:新设备接入局域网时,以组播的形式向局域网发送信息,
设备发现程序接收到组播信息后,进行安全认证,获取设备的具体信息。
5.根据权利要求1所述的一种将网络摄像头模拟为USB摄像头的方法,其特征在
于,所述步骤S300具体包括:
A、修改网络摄像头的网络配置;
B、获取/修改网络摄像头的视频分辨率、码率、帧率、OSD和云台控制;
C、修改网络摄像头的系统日期时间;
D、获取网络摄像头的厂家信息和版本信息。
6.根据权利要求1所述的一种将网络摄像头模拟为USB摄像头的方法,其特征在
于,所述步骤S400中的设备控制包括:
周期访问接入的设备,用于判断设备是否在线;
通过open函数、close函数打开或关闭设备,通过ioctl函数完成设备访问,所述设
备访问包括设备信息的修改、设备控制和网络媒体流的获取;
设备断开连接时,删除/dev下的设备节点。
说 明 书
技术领域
本发明涉及网络摄像头的驱动程序技术领域,具体的说,是一种将网络摄像头模拟
为USB摄像头的方法。
背景技术
网络摄像头是网络设备,需要有通讯协议,早期没有统一的规范,网络摄像头硬件
提供商都采用私有协议。随着视频监控的网络化应用,产业链的分工将越来越细。
有些厂商专门做摄像头,有些厂商专门做视频服务器,有些厂商则可能专门做平台
等,然后通过集成商进行集成,提供给最终客户。私有协议无法胜任这种产业合作
模式,行业标准化的接口由此应运而生。目前,网络摄像头的标准协议应用最为广
泛的是ONVIF协议,ONVIF规范描述了网络视频的模型、接口、数据类型以及数
据交互的模式,并复用了一些现有的标准。ONVIF规范的目标是实现一个网络视
频框架协议,使不同厂商所生产的网络视频产品(包括摄录前端、录像设备等)完全
互通。ONVIF规范中设备管理和控制部分所定义的接口均以WebServices的形式提
供。ONVIF规范涵盖了完全的XML及WSDL的定义。每一个支持ONVIF规范的
终端设备均须提供与功能相应的Web Service。服务端与客户端的数据交互采用
SOAP(简单的访问协议)协议。ONVIF中的其他部分比如音视频流则通过
RTP/RTSP(实时媒体流协议)进行获取。摄像头应用管理程序需要集成复杂的
ONVIF协议,用来管理摄像头设备。对于同时也要接入USB接口摄像头,应用程
序需要同时处理两种设备,这样给应用程序带来了复杂性,需要分别对IPC和
USB摄像头进行处理。
发明内容
本发明的目的在于提供一种将网络摄像头模拟为USB摄像头的方法,用于解决现
有技术中应用程序需要同时处理网络摄像头和USB摄像头应用程序比较复杂的问
题。
本发明通过下述技术方案解决上述问题:
一种将网络摄像头模拟为USB摄像头的方法,包括:
步骤S100:将网络摄像头交互协议封装在Linux内核层,Linux内核加载设备驱动
后,完成网络摄像头交互协议的初始化和网络摄像头发现协议的初始化;
步骤S200:搜索在线设备,发现在线设备后,在/dev路径下生成一个设备节点,
用于将对摄像头的操作转换为对Linux标准驱动的操作;
步骤S300:设备参数配置,用于对单个设备进行参数配置,或者配置参数模板,
用于对设备进行批量设置;
步骤S400:设备控制,用于对单个设备实现抓拍、读取音视频流、以及遮挡报警
的上报。
Linux驱动程序,将网络摄像头模拟为USB摄像头,隐藏了复杂的网络摄像头交互
协议,协议的实现封装在了linux kernel层。Linux内核加载对应设备驱动后,即可
完成协议的初始化,当有新设备的接入,会在/dev路径下生成一个设备节点,对摄
像头的操作变成对linux标准驱动的操作。对设备的控制和参数的设置、获取也通
过标准的linux驱动方式调用。应用程序不需要关心设备的型号,设备接入方式,
和设备间的连接协议,拥有非常高效率的开发方式。Linux驱动程序包括设备发现、
设备参数配置和设备控制。设备发现,用于搜索在线设备,符合ONVIF协议规范
的设备可以被查找到;所述设备参数配置主要用于对单个设备进行参数配置以及配
置参数模板,方便用于对设备进行批量设置;所述设备控制部分主要用于对单个设
备实现抓拍、读取音视频流、以及遮挡报警的上报等功能。
进一步地,所述步骤S200具体包括:
步骤S210:根据设定的搜索模式主动搜索局域网中符合网络摄像头协议的在线设
备;
步骤S220:在线设备接入时,在/dev下生成一个设备节点。
进一步地,所述搜索模式包括自动搜索和手动搜索,所述自动搜索用于通过向固定
的地址发送组播消息搜索与系统在同一个子网内的在线设备,所述手动搜索用于通
过向指定的地址发送组播消息搜索指定的子网内的在线设备。
进一步地,所述步骤S200包括:新设备接入局域网时,以组播的形式向局域网发
送信息,设备发现程序接收到组播信息后,进行安全认证,获取设备的具体信息。
进一步地,所述步骤S300具体包括:
A、修改网络摄像头的网络配置;
B、获取/修改网络摄像头的视频分辨率、码率、帧率、OSD和云台控制;
C、修改网络摄像头的系统日期时间;
D、获取网络摄像头的厂家信息和版本信息。
进一步地,所述步骤S400中的设备控制包括:
周期访问接入的设备,用于判断设备是否在线;
通过open函数、close函数打开或关闭设备,通过ioctl函数完成设备访问,所述设
备访问包括设备信息的修改、设备控制和网络媒体流的获取;
设备断开连接时,删除/dev下的设备节点。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明简化应用程序的实现,大幅度提高应用的开发效率,应用程序不需要关
注网络摄像头的协议细节,设备型号,接入方式,所有关于网络摄像头的操作,被
简化为linux标准设备的操作。
(2)本发明在需要同时接入网络摄像头和USB摄像头的应用场景具有非常大的优势,
应用程序并不需要做特殊处理即可以完成对两类不通设备的控制和管理。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1所示,一种将网络摄像头模拟为USB摄像头的方法,用于将网络摄像
头模拟为USB摄像头,应用程序只需要通过调用标准的linux设备驱动接口,就可
以完成对网络摄像头的管理。下面结合附图对本发明进行详细说明。
软件整体框架,包括设备发现、设备参数配置和设备控制。程序以linux ko(内核驱
动)的方式呈现。其中设备发现功能主要用于搜索在线设备,包括自动搜索和手动
搜索两种搜索模式。设备参数配置主要用于对单个设备进行参数配置以及配置参数
模板,方便用于批量设置。设备控制,包括对单个设备实现抓拍、读取音视频流、
以及遮挡报警的上报等操作。
所述程序执行流程,包括以下步骤,
步骤1:加载设备驱动
程序以ko(linux设备驱动)的形式存在,linux内核启动,完成网络初始化后,即可
通过linux标准命令加载网络摄像头对应设备驱动。设备驱动首先初始化本地的运
行环境,然后初始化网络摄像头发现协议,等待用户的下一步操作;
步骤2:设备发现
通过应用程序设置的搜索模式,在局域网中进行搜索。当有新设备接入到局域网,
会以组播的形式向局域网中发送信息。设备发现程序接收到组播信息后,会进一步
进行安全认证,获取设备的具体信息。同时设备发现程序也可以主动搜索局域网中
是否有符合网络摄像头协议的设备。
步骤3:创建设备节点
当设备发现程序搜索到新的设备后,会在/dev下添加一个设备节点。这样对于网络
摄像头的操作就和usb摄像头的操作类似了。可以通过open方法打开对应设备节
点,完成对设备的参数设置以及进一步的操作。
步骤4:心跳
设备节点添加后,为了判断是否在线,需要定期的交互。驱动程序实现了周期访问
接入的设备。
步骤5:设备访问
设备访问是程序的关键,设备访问包括设备信息的获取,设备信息的修改,以及设
备控制,和网络媒体流的获取。访问的方式为,通过open,close打开关闭设备,通
过ioctl完成对设备进行具体的操作。
步骤6:设备断开连接
设备断开连接,分为正常断开和异常断开。正常断开,驱动程序会收到设备离开的
消息。异常断开,如断电,网络故障。对于以上两种情况。驱动程序都会删除/dev
下的设备节点。
步骤7:设备卸载
设备卸载实现了网络摄像头驱动的卸载功能,应用程序可以通过此步骤完成对程序
的卸载。
本发明改变了IPC摄像头应用程序的复杂实现方式,应用程序可以更简单方便的
完成对IPC设备的管理。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明
较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域
技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申
请公开的原则范围和精神之内。
版权声明:本文标题:一种将网络摄像头模拟为USB摄像头的方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/shuma/1719855508a801083.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论