一种宿住C/S宿主程序的Web播放监控视频的方法及系统与流程

文档序号:30648575发布日期:2022-07-05 23:30阅读:160来源:国知局
一种宿住C/S宿主程序的Web播放监控视频的方法及系统与流程
一种宿住c/s宿主程序的web播放监控视频的方法及系统
技术领域
1.本发明涉及视频监控技术领域,尤其涉及一种宿住c/s宿主程序的web播放监控视频的方法及系统。


背景技术:

2.目前,视频监控行业蓬勃发展,广泛应用在安防、智慧城市、智慧园区、物联网和交通等各领域或行业,作为物联网底层最庞大的感知单元,为上层应用提供告警、监控、回放、查找、预览、抓拍和分析等各种功能,极大地提升了行业效率。目前安防领域播放监控视频,普遍采用的是传统的c/s模式,即客户端依据国内外行业标准,自行实现媒体和通信协议,拉流、组帧、解码和渲染等都在客户端内部实现,同时针对第三方提供sdk以实现对接。但是随着近年来html5的火热,对于web播放监控视频的呼声越来越高,web如何播放监控视频成了一个热点问题。
3.目前主流的方式是通过设备厂商提供的流媒体服务器进行拉流播放(rtsp或ws流),但市面上的设备厂商参差不齐,有的厂商受限于技术实力或成本考虑,未能提供拉流播放,这样若要做到web播放监控视频就比较困难。
4.一般认为web开发有如下优点:开发周期短、成本低、ui效果酷炫、运维简单和使用方便等,但物联网兴起后,web和一些设备对接存在滞后或困难,例如,对于众多的视频编码类型:h264、h265和svac等,html5只能支持其中一种(h264)。且对于大多数浏览器而言,若要实现视频流播放,则需要安装插件,但部分主流浏览器基于安全等原因,禁止安装插件,这样一来,又对浏览器播放监控视频造成了新的困难。


技术实现要素:

5.针对背景技术中提到的现有技术的至少一个缺陷或改进需求,本发明提供一种宿住c/s宿主程序的web播放监控视频的方法及系统,用以解决web播放监控视频的难题。
6.为了解决以上技术问题,本发明提供一种宿住c/s宿主程序的web播放监控视频的方法,包括:
7.在web网页上选取一个监控点位,发起监控视频播放;
8.获取javascript通过与.net互操作的环境变量代码所携带的视频点位信息和窗口信息;
9.根据传入的所述窗口信息,生成windows窗口;
10.调用视频服务的查看实时视频的接口,将所述windows窗口的句柄和所述视频点位信息传入,并在所述windows窗口上播放对应所述监控点位的监控视频。
11.根据本发明提供的宿住c/s宿主程序的web播放监控视频的方法,所述在web网页上选取一个监控点位,发起监控视频播放之前还包括:
12.读取所述视频点位信息并加载到所述c/s宿主程序的缓存;
13.调用预先编辑的启动脚本,启动所述视频服务;
14.读取预先配置的web地址并加载,添加所述与.net互操作的环境变量代码,显示所述web网页。
15.根据本发明提供的宿住c/s宿主程序的web播放监控视频的方法,所述在所述windows窗口上播放对应所述监控点位的监控视频之后还包括:
16.调用所述视频服务的关闭视频播放的接口,停止所述监控视频的播放,关闭所述windows窗口。
17.根据本发明提供的宿住c/s宿主程序的web播放监控视频的方法,所述视频点位信息包括点位设备名称信息、通道号信息和ip地址信息中的一种或多种。
18.根据本发明提供的宿住c/s宿主程序的web播放监控视频的方法,所述窗口信息包括窗口相对位置信息和窗口大小信息中的一种或多种。
19.根据本发明提供的宿住c/s宿主程序的web播放监控视频的方法,根据传入的所述窗口信息,通过窗口优化处理后,生成windows窗口;
20.所述窗口优化处理包括全屏处理和隐藏主窗口边框处理中的一种或多种。
21.根据本发明提供的宿住c/s宿主程序的web播放监控视频的方法,所述视频服务是根据厂商提供的sdk开发的独立进程,包括查看实时视频功能和关闭视频播放功能中的一种或多种。
22.根据本发明提供的宿住c/s宿主程序的web播放监控视频的方法,所述c/s宿主程序为在c/s架构下开发的程序,其运行于.net环境,能够当浏览器使用,且支持与所述web网页进行交互操作。
23.本发明还提供一种宿住c/s宿主程序的web播放监控视频的系统,所述系统能够实现上述任一项所述的web播放监控视频的方法的步骤。
24.相对于现有技术,本发明的有益效果包括:
25.(1)本发明以c/s架构的应用程序为宿主程序,让web程序寄宿于其上运行,同时c/s宿主程序可调用底层视频监控的sdk,进行监控视频的播放。如此一来,既能解决web播放监控视频产生的诸如禁止安装插件、拉流播放技术未能全面普及、html5只能支持一种视频编码类型等难题,也能使用b/s架构开发项目,从而可提升开发效率,缩短开发周期,且让项目在设备选型环节不再受制于拉流播放的技术难题,能够较大幅度地节约项目成本。
26.(2)本发明的c/s架构下开发的宿主程序一旦完成,可以作为独立产品投入到任何需要视频播放的项目,只需要修改web地址和视频设备资源配置即可,无需再修改代码,移植复用性强。
27.(3)本发明生成的windows窗口可经过窗口优化处理,使c/s宿主程序在运行中看起来就像web网页弹窗一样,看不出c/s宿主程序的存在,从体验上来说,与使用浏览器几乎一致,从而提升了用户体验。
附图说明
28.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1是本发明实施例提供的宿住c/s宿主程序的web播放监控视频的方法的逻辑流程示意图。
30.图2是本发明实施例提供的宿住c/s宿主程序的web播放监控视频的经窗口优化处理后的最终呈现效果示意图。
具体实施方式
31.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.基于web播放监控视频产生的诸如禁止安装插件、拉流播放技术未能全面普及、html5只能支持一种视频编码类型等难题,本发明从结合浏览器和c/s架构应用程序的各自优点出发,提出一种新的解决方案。
33.在一个实施例中,如图1所示,包含三个程序,其中c/s宿主程序为核心程序,承上启下,既跟web端交互,获得web端的播放参数,又负责生成视频窗口,同时向下调用视频服务进行播放。除此之外,c/s宿主程序还负责加载web网页进行显示。即:无视频播放时,c/s宿主程序正常呈现web内容,当有视频监控播放时,c/s宿主程序根据播放的位置来生成windows小窗口,悬浮于web上,位置做到严丝合缝,致使看起来就跟在web自身上生成的窗口一样,如此一来,就可达到图2所示的效果,可广泛应用在数据可视化系统、智慧建筑、智慧园区、智慧小区和智慧综合治理一张图等平台上。
34.在一个实施例中,通过图1的逻辑流程,达到图2的最终呈现效果,具体需要如下s1-s7的步骤:
35.s1、开发宿主程序。借用开源代码或自行开发c/s架构的宿主程序,运行于.net环境,使之可以当浏览器使用,通过配置url地址,即可查看网页,且支持与web网页进行交互操作。
36.更具体的,包括步骤s1.1-s1.5:
37.s1.1、选择一款合适的webbrowser控件,满足可与javascript交互且可适配主流浏览器的桌面应用程序控件,控件优选为cefsharp。
38.s1.2、将待播的视频设备配置文件整理成xml或json文件,置于宿主程序运行路径下。此一步主要是为了宿主程序的移植复用,通过不同项目的不同配置,做到复用。
39.s1.3、优化宿主程序的ui效果,隐藏主窗口,同时最大化窗口,使宿主程序只承担宿主作用,不承担显示作用,最终呈现的仍是web自身的ui效果。
40.s1.4、定义与javascript交互的环境变量和回调函数。回调函数的参数一般应包含设备点位信息及窗口位置信息(相对于页面位置),且包含调用视频服务播放接口的方法。
41.s1.5、将要加载的web地址做成配置。此一步也是为了宿主程序以后的移植复用做准备。
42.s2、启动宿主程序。宿主程序提前写好视频监控调用方法,等待web调用,视频监控调用方法的参数应包含视频点位信息(点位设备名称信息、通道号信息和ip地址信息等)、
窗口信息(窗口相对位置信息、窗口大小信息)等。启动时,宿主程序会读取视频监控点位配置,该配置主要包含所有视频点位设备的信息,比如名称、通道、ip等,配置文件以xml或json格式为载体置于运行环境下,宿主程序读取后加载到其缓存。
43.更具体的,包括步骤s2.1-s2.3:
44.s2.1、初始化s1.4中定义的与javascript交互的环境变量和回调函数,以便与web交互。
45.s2.2、加载s1.2整理的设备配置文件,将监控点位信息加载至程序缓存。
46.s2.3、读取s1.5配置的web地址,准备启动web。
47.s3、启动视频服务。宿主程序启动后,会执行视频服务启动脚本(提前编写),从而启动视频服务。这里可以是多个视频服务(适用于有多个厂商设备的场景)。视频服务也可以通过配置文件来灵活配置,以适用于不同的应用场景。
48.视频服务是根据厂商提供的sdk开发的独立进程,一般可包含如下功能:查看实时视频,查看视频回放,抓拍,关闭视频播放,云台控制等。一般情况下,开发的b/s架构的web项目会包含查看实时视频的功能,比如点击一个监控点位,查看该点位的视频(这个应用场景在基于gis地图的智慧园区、智慧建筑、智慧综合治理等项目上很常见),基于此,本实施例中只以查看实时视频和关闭视频播放来说明,将这两个功能封装为独立的视频服务。宿主程序启动后,会调用预先编好的启动脚本,启动视频服务。这里将不同厂商的sdk封装为不同的服务,为以后视频服务的复用做准备。
49.s4、加载web。宿主程序读取配置的url地址并加载,显示web网页。优选的,宿主程序做窗口优化处理,比如全屏处理,隐藏主窗口边框处理等,使整个宿主程序看起来就像web网页,看不出宿主程序的存在,从体验上来说,与使用浏览器一致。
50.具体的,宿主程序启动后在s2.3步骤读取地址后,即启动web。web页面需在初始化时添加与.net互操作的环境变量代码(依据所选webbrowser控件的不同,编码方式及内容不同),这样启动时加载环境变量后,即可与.net环境互操作。
51.s5、发起视频播放。网页加载后,会初始化javascript的静态变量,其中有一个变量是引用宿主程序上下文,用于与宿主程序交互(调用宿主程序已经定义好的回调方法)。具体的,从web上点击查看某个视频,javascript响应该事件,传入对应的参数,跳转到宿主程序去执行。
52.具体的,在web网页上选取一个监控点位,点击播放,javascript通过与.net互操作的环境变量代码,携带监控点位相关信息(设备名称、通道号、窗口大小、位置等)进入到宿主程序,调用预先定义好的回调函数。
53.s6、播放视频。宿主程序得到关于视频点位(比如设备名称、通道号、ip等)和窗口信息(位置及大小)的参数后,会首先按参数生成一个windows窗口,该windows窗口悬浮于网页之上,固定于网页的指定区域,且无边框,视觉上看起来就像web弹窗一样。生成窗口后,将窗口的句柄和视频设备的通道号传入视频服务进程,该服务即开始执行视频播放方法,自行播放视频。
54.具体的,宿主程序接收到web前端的事件后,即调用回调函数,该函数首先会根据传入的窗口信息(位置和大小),生成windows窗口,悬浮于指定位置。然后调用视频服务的查看实时视频的接口,将该窗口的句柄和视频通道号传入,视频服务随即开始在窗口上播
放对应视频。生成的悬浮窗口虽是windows窗口,但与web整体的ui保持一致,看上去就像在web网页上弹出的窗口。该窗口双击可以放大至全屏播放,再双击则还原。
55.s7、退出播放。若要退出播放,关闭窗口即可。关闭窗口会先调用视频服务的关闭视频播放的接口,然后关掉窗口。
56.具体的,如果想结束播放,则可点击悬浮窗上的关闭按钮。关闭按钮触发后,会先调用视频服务的关闭视频播放接口来结束播放,然后再关闭窗口。如上所述,则完成了一个监控视频播放的整个周期:发起播放—》执行播放—》退出播放。
57.一般的,在一个项目中,只有视频播放的功能会与宿主程序交互,需要使用.net运行环境和sdk开发,其他功能则仍使用web开发。如此一来,既解决了web无法播放监控视频的难题,又借用了web开发迅速而高效的特点。基于以上整体流程的描述,可提炼出本发明最关键的两点:
58.(1)宿主程序可与web程序交互,即.net的桌面程序可与javascript交互。这一点可由宿主程序(如cefsharp开源控件)保证,需要两边的程序都加载一定的初始化环境变量。基于c/s架构开发的桌面应用程序即为所谓的“宿主程序”,“宿住”在此处语境下是个动词,即为借用之意,发明名称的含义即为:一种借助于c/s宿主程序进行web播放监控视频的方法。
59.(2)宿主程序可与视频服务交互,即两个桌面应用程序互相通信(进程间通信)。有多种方式可以完成,比如剪贴板、windows消息、管道、套接字等,可以根据实际情况选用。
60.本发明的一个实施例还提供一种宿住c/s宿主程序的web播放监控视频的系统,所述系统能够实现上述任一项所述的web播放监控视频的方法的步骤。
61.综上所述,本发明的优点包括以下方面:
62.(1)提升开发效率。市面上很多项目为了播放监控视频,不得不采用c/s架构,本发明仍用b/s架构,提升了项目开发效率,缩短了开发周期,节约了成本。
63.(2)解决痛点问题。借用c/s程序播放视频,绕开web端不支持监控视频播放、无法安装插件等痛点问题。
64.(3)扩展选型范围。目前市面上大小厂商基本都支持sdk播放视频,但是支持web取流播放视频的较少。本发明即可让项目在设备选型环节不再受制于技术难题,有更多选择可能,从而可进一步压缩成本。
65.(4)移植复用。本发明的宿主程序一旦完成,可以作为独立产品,投入到任何需要视频播放的项目,只需修改web地址和视频设备资源配置即可,无需再修改代码。
66.本领域的技术人员容易理解,以上所述仅为本发明的一些较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1