CN117499736A - 基于windows操作系统的web浏览器插件播放前端摄像机视频的方法 - Google Patents
基于windows操作系统的web浏览器插件播放前端摄像机视频的方法 Download PDFInfo
- Publication number
- CN117499736A CN117499736A CN202311841015.6A CN202311841015A CN117499736A CN 117499736 A CN117499736 A CN 117499736A CN 202311841015 A CN202311841015 A CN 202311841015A CN 117499736 A CN117499736 A CN 117499736A
- Authority
- CN
- China
- Prior art keywords
- plug
- control program
- browser
- playing
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000013515 script Methods 0.000 claims abstract description 30
- 238000010276 construction Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 18
- 238000009877 rendering Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 12
- 230000001788 irregular Effects 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 238000005538 encapsulation Methods 0.000 claims description 3
- 238000009434 installation Methods 0.000 claims description 3
- 238000011900 installation process Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000011664 signaling Effects 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4438—Window management, e.g. event handling following interaction with the user interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/485—End-user interface for client configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种基于windows操作系统的web浏览器插件播放前端摄像机视频的方法,当浏览器web网页端程序在调用时,直接引入JS文件脚本,然后调用构造函数进行插件对象的创建;当浏览器web端调用启动插件的方法插件启动成功后,插件需要嵌入到web浏览器窗口中,对插件进行实时更新。通过接口服务获取到播放地址。浏览器web端程序通过接口获取到播放地址后,向插件发送播放实时视频的请求。当插件收到播放请求和播放地址时,通知插件进行视频播放,插件实现播放视频以及音频。采用方案通过浏览器插件可以兼容播放H265编码格式的视频,播放实时流传输协议协议的视频,保障实时性;提高播放路数和解码性能;提高视频的打开速度,减少延迟。
Description
技术领域
本发明属于应用于软件开发视频安防视频播放技术领域,具体涉及一种基于windows操作系统的web浏览器插件播放前端摄像机视频的方法。
背景技术
在当前的视频安防领域,随着社会接入的摄像机数量不断增加,视频浏览需求日益增长。在前端设备编码方面,大部分采用的是H265编码格式。与传统的H264编码格式相比,在相同的视频质量下,H265编码能够节省传输带宽,因此在许多场景下,摄像机设置码流格式都采用H265编码格式。
在web浏览器上播放前端摄像机视频时,通常采用基于开源播放器封装的JavaScript脚本,通过HTML5的方式进行播放。这些开源播放器包括流媒体视频播放器、基于HTTP的流媒体传输协议、视频播放器、FLV等,它们通过JavaScript脚本获取标准协议的码流,然后在浏览器端进行视频解码和播放。这些标准协议包括RTMP、HLS、WSS、FLV等。然而,一些协议需要浏览器支持Flash插件才能播放,而实时流传输协议协议则无法播放,且实时性延迟较大。
目前的技术至少存在以下不足:
1.开源的播放器JavaScript脚本大多只能播放H264编码格式的视频流,不能播放H265编码格式的。
2.开源的播放器封装的JavaScript脚本解码依赖于浏览器的性能,因此播放路数有限制。当播放路数较多时,会造成浏览器内存和CPU占用率高,使用卡顿、闪退等现象。
3.对于浏览器的播放支持有限制,依赖于电脑安装Flash插件。然而,许多主流浏览器如新版本的谷歌浏览器、360浏览器、火狐浏览器等已经不支持加载Flash模块了。
4.开源的播放器封装的JavaScript脚本播放视频和加载视频比较缓慢,通常在3-5秒。
5.开源的播放器封装的JavaScript脚本无法播放实时流传输协议协议。通过HLS、RTMP、FLV、WSS协议的实时性没有实时流传输协议延迟小。如果要播放实时流传输协议协议,需要安装VLC插件,同时对于浏览器的兼容性比较差。
6.播放地址是透明的,没有加密,容易被别人获取到并直接播放。
发明内容
有鉴于目前相关现有技术存在的不足,本发明提供一种基于windows操作系统的web浏览器插件播放前端摄像机视频的方法,本发明提供的方法能够解决开源播放器封装的js脚本不能播放H265编码格式视频的问题;解决开源播放器封装的js脚本不能播放实时流传输协议协议视频的问题;解决开源播放器封装的js脚本播放性能路数少,解码性能低的问题;解决开源播放器封装的js脚本对于不同协议的视频播放在不同浏览器下的兼容性问题;解决开源播放器封装的js脚本加载播放视频缓慢的问题以及播放地址加密安全性问题。
为实现上述目的,本发明采用的技术方案为:一种基于windows操作系统的web浏览器插件播放前端摄像机视频的方法,包括如下步骤:
S1、在windows操作系统中通过exe形式的安装包安装插件程序,安装过程完成后,会自动拉起插件后台管理进程;
S2、浏览器web网页端和插件之间的通信通过封装的js脚本实现,js脚本主要负责封装与插件之间的协议交互,并发送请求,同时,把相关的控制信令封装成web端浏览器可以调用的js方法;
S3、当浏览器web网页端程序在调用插件时,可以直接引入js文件脚本,并通过调用构造函数进行插件对象的创建;
S4、当浏览器web端调用启动插件的方法插件启动成功后,插件需要嵌入到web浏览器窗口中,作为浏览器的一部分,需要对插件进行实时更新;
S5、插件启动成功后,浏览器web端程序需要插件播放视频时,通过接口服务获取到播放地址,在获取播放地址的时候,传入播放视频设备的编码以及插件的唯一标识id;唯一标识id是插件启动时返回的唯一标识,用于采用对称加密算法作为密钥对播放地址的加密和解密;
S6、浏览器web端程序通过接口获取到播放地址后,向插件发送播放实时视频的请求;
S7、当插件收到播放请求和播放地址时,会通知插件进行视频播放,插件负责实现视频和音频的播放功能。
进一步的,插件安装成功后主要包括两部分内容:其一为控制程序,其二为插件,形式均为exe执行程序;
控制程序为插件的控制层,在插件程序安装完成后就会启动,以后台服务的形式存在,用户不可见;其主要职责是用于管理一个或多个插件,以及转发控制命令给插件;控制程序启动时会监听一个控制端口,用于接收来自web端的控制命令;控制程序还会监听一个转发端口,用于控制程序与插件之间的通信,主要是转发来自web端的控制命令给插件;
插件为插件窗口渲染层,即插件窗口,本质上是融合了解码和窗口渲染的程序;插件启动后,会主动与控制程序的转发端口建立连接,并将自身的唯一标识id上报给控制程序。
进一步的,控制程序监听转发端口用于控制程序与插件之间的通信,转发来自web端的控制命令给插件的步骤中,控制程序启动流程如下:
控制程序负责监听控制端口,接受HTML的连接;
收到启动插件的请求后,创建唯一标识id,创建插件进程,同时携带唯一标识id以及浏览器标识;
判定是否在指定时间段内得到插件响应;若是,则向HTML发送成功的响应报文,含插件的唯一标识id;若否,则向HTML发送失败的响应报文;
插件启动后,会主动与控制程序的转发端口建立连接,并将自身的唯一标识id上报给控制程序的步骤中,插件启动流程如下:
插件尝试与控制程序建立连接;
若连接成功,则根据浏览器标识查找浏览器HWND,并将插件主窗口设置为浏览器的子窗口,发送启动成功的响应,含唯一标识id。
进一步的,在步骤S3中、当浏览器web网页端程序在调用时,直接引入js文件脚本,然后调用OwebControl=new ArgeswebControlPlug({})的构造函数进行插件对象的创建,构造函数中参数包括的关键信息有初始化插件对象嵌入的html元素id,初始化播放窗口数量,以及相关的点击事件的回调函数;
浏览器web网页端程序启动插件的具体过程如下:
web网页端程序通过封装的js方法,发送包含当前浏览器信息的启动命令到控制程序;
控制程序负责启动插件,即拉起插件进程,并将浏览器信息传递给插件进程;
插件启动后,根据收到的浏览器信息,通过查找或枚举的方式定位浏览器窗口,并通过windows API将自身主窗口设置为浏览器的子窗口,同时将该窗口Z轴顺序置顶,以达到插件作为浏览器网页一部分的目的;同时与控制程序的转发端口建立连接,并将自身的唯一标识id上报给控制程序,控制程序会保存唯一标识id与具体插件的对应关系;
控制程序将包含此唯一标识id的启动结果回复给web端;web端需要保存此唯一标识id与该插件的对应关系,以应对多个插件的情况。
进一步的,web端调用插件流程如下:
HTML(web端应用程序)尝试与控制程序建立连接;判断是否连接成功;若连接成功,则向控制程序发送查询浏览器类型请求,判断是否查询成功;向控制程序发送启动插件请求;判断是否成功拿到插件的唯一标识id;若成功,则保存插件的唯一标识id。
进一步的,浏览器web网页端程序启动插件的过程中,存在一个网页加载了多个插件、一个浏览器的多个网页均加载了插件或者多个浏览器加载了多个插件的情况;由于web端已经保存了唯一标识id与插件的对应关系,向控制程序发送控制命令的时候,同时携带需要控制的插件的唯一标识id,以达到控制多个插件中的指定插件的目的;
进一步的,插件整体时序流图如下:
HTML向控制程序发起启动插件请求;控制程序向插件发起启动插件进程;启动成功,插件向控制程序发送携带的唯一标识id,控制程序将接受到的唯一标识id返回至HTML;
HTML向控制程序发起控制请求,包括显示/隐藏插件和插件位置;唯一标识id作为插件的唯一标识;控制程序转发控制请求,根据唯一标识id判断转发给哪个插件;插件进行控制处理,并将控制请求处理结果返回控制程序,由控制程序再转发至HTML;
HTML向控制程序发起业务请求,包括播放,唯一标识id作为插件的唯一标识;控制程序转发业务请求,根据唯一标识id判断转发给哪个插件,插件进行控制处理,并将控制请求处理结果返回控制程序,由控制程序再转发至HTML;
HTML向控制程序发起关闭请求,唯一标识id作为插件的唯一标识,控制程序释放唯一标识id,并向HTML发出关闭请求的响应;同时,控制程序转发关闭请求至插件,根据唯一标识id判断转发给哪个插件,插件收到关闭请求后,进程退出。
进一步的,对浏览器窗口进行操作需要改变插件位置或大小,其方法为:web端在监听到操作变化时,将插件需要做出的改变发送给控制程序,控制程序则会转发给插件,由插件自身完成操作,操作至少包括显示/隐藏插件、调整插件的位置或大小;
在需要改变插件位置或大小时调用插件对象的OwebControl.JS_SetPosition()方法控制插件位置或大小的变化,该方法根据当前插件嵌入对象元素的位置和大小转换为插件坐标和宽度高度信息,并将这些信息以及对应插件的唯一标识id发送给控制程序,然后控制程序根据唯一标识id将这些信息转发给对应的插件,去插件自身完成位置或宽度高度的改变;
在浏览器缩小到任务栏和从任务栏放大显示时,需要显示或隐藏插件时调用OwebControl.JS_SetShow()或OwebControl.JS_SetHide(),通过控制程序将命令转发给对应的插件,由插件自身完成显示或隐藏的操作。
进一步的,当需要插件只应显示部分窗体时,调用OwebControl.JS_SetPosition()时,需要同时将无需显示部分的信息发送到插件,由插件利用windows的不规则区域机制,在windows绘制窗口时不绘制不需要显示的部分;
当网页移动导致插件只有部分处于浏览器客户区时,具体处理方式如下:
HTML实时计算插件的摆放位置,包括横坐标、纵坐标、宽度、高度,经过控制程序转发至插件,插件调整自身位置为(横坐标, 纵坐标),调整自身大小为(宽度, 高度);
HTML同时需要发送插件无需显示的部分信息:margin.top(上边缘距离顶部的距离),此值大于0时标识插件上侧有位于浏览器客户区之外的部分,高度为margin.top(上边缘距离顶部的距离);插件根据这些参数,利用windows的不规则区域机制,将浏览器客户区之外的部分排除在渲染范围之外:
首先以坐标(0,0),大小(宽度, 高度)创建一个区域1;其次以坐标(0,margin.top),大小(宽度,纵坐标-margin.top)创建一个区域2;对区域1和区域2进行与计算,得到实际需要显示的区域3。
进一步的,由于网页本身会存在网页元素和插件重合导致插件被遮挡的情况,所需要将插件主窗口作为网页窗口子窗口的最上层窗口,即Z轴置顶;但是此时插件可能会遮挡不应遮挡;
解决方法是:调用OwebControl.JS_SetPosition()时,需要同时将由重叠的不应被插件遮挡的网页元素的位置以及宽高发送到插件,由插件利用windows的不规则区域机制,在windows绘制窗口时不绘制与网页元素重合的部分;支持多个重叠元素;
当网页有弹框时,具体处理方式如下:
HTML实时计算插件的摆放位置,包括横坐标、纵坐标、宽度、高度,经过控制程序转发至插件,插件调整自身位置为(横坐标, 纵坐标),调整自身大小为(宽度, 高度);
同时HTML需要发送弹框的位置信息:遮罩层横坐标、遮罩层纵坐标、遮罩层宽度、遮罩层高度;插件根据这些参数,利用windows的不规则区域机制,将弹框的遮挡的插件部分排除在渲染范围之外:
首先以坐标(0,0),大小(宽度, 高度)创建一个区域1;其次,以坐标(遮罩层横坐标-横坐标, 遮罩层纵坐标-纵坐标),大小(遮罩层宽度,遮罩层高度)创建区域2;以区域1为基准,对区域2进行diff计算,得出实际需要显示的区域3。
进一步的,当插件收到播放请求和播放地址时,会通知插件进行视频播放,插件实现播放视频以及音频,包括两部分功能:
第一部分为:拉流
插件通过判断收到的地址,如果是实时流传输协议地址,通过实时流传输协议客户端进行拉流;如果是私有协议地址,则通过自研封装的数据传输通道进行码流的传输;
第二部分为:播放
插件收到视频/音频流之后,就会通过解码库对其进行解码以及渲染操作;
解码库中的解码方式,支持软解以及硬解;渲染方式,支持GDI 图形设备接口、表面绘图接口、开放图形库;能够节省主机资源,以达到同时播放尽可能多的路数的视频/音频的目的。
本发明采用以上技术方案,具体如下有益效果:
1、通过浏览器插件可以兼容播放H265编码格式的视频;
2、通过浏览器插件可以播放实时流传输协议协议的视频,保障实时性;
3、通过浏览器插件可以播放32路实时视频,提高播放路数和解码性能;
4、浏览器插件可以兼容IE,edge,火狐,谷歌,360浏览器,搜狐等浏览器的使用,兼容性比较好;
5、浏览器插件和浏览器之间的播放地址加密传输,增强安全性;
6、通过浏览器插件播放视频可以提高视频的打开速度,减少延迟。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明web浏览器插件播放前端摄像机视频的方法流程图;
图2是本发明控制程序启动流程图;
图3是本发明插件启动流程图;
图4是本发明web端调用插件流程图;
图5是本发明网页与插件的外部关系示意图;
图6是本发明插件整体时序流图;
图7是本发明插件位置大小计算示意图;
图8是本发明插件只需部分显示时的处理示意图;
图9是本发明插件与网页元素发生重叠时的处理示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
请参阅图1,本实施例提供一种基于windows操作系统的web浏览器插件播放前端摄像机视频的方法,包括如下步骤:
S1、在windows操作系统中通过exe形式的安装包安装插件程序,安装过程完成后,会自动拉起插件后台管理进程;
S2、浏览器web网页端和插件之间的通信通过封装的js脚本实现,js脚本主要负责封装与插件之间的协议交互,并发送请求,同时,把相关的控制信令封装成web端浏览器可以调用的js方法;其中主要方法包括插件启动、插件隐藏、插件显示、关闭插件、实时视频播放、播放窗口设置等方法封装。
S3、当浏览器web网页端程序在调用插件时,可以直接引入js文件脚本,并通过调用构造函数进行插件对象的创建;
S4、当浏览器web端调用启动插件的方法插件启动成功后,插件需要嵌入到web浏览器窗口中,作为浏览器的一部分,需要对插件进行实时更新;
S5、插件启动成功后,浏览器web端程序需要插件播放视频时,通过接口服务获取到播放地址,在获取播放地址的时候,传入播放视频设备的编码以及插件的唯一标识id;唯一标识id是插件启动时返回的唯一标识,用于采用对称加密算法作为密钥对播放地址的加密和解密;这样能够保证每个插件获取的地址只能通过这个插件才能解密和播放,达到播放地址安全传输和视频播放安全的效果。
S6、浏览器web端程序通过接口获取到播放地址后,向插件发送播放实时视频的请求;具体的,浏览器web端程序通过接口获取到播放地址后,通过调用OwebControl.JS_Video(url,id,name)方法向插件发送播放实时视频的请求,其中url代表视频播放地址,id代表摄像机编码,name代表摄像机名称,其中播放地址包括两种,一种是标准的实时流传输协议协议地址,一种是私有协议地址。
S7、当插件收到播放请求和播放地址时,会通知插件进行视频播放,插件负责实实现频和音频的播放功能。
本发明提供一种基于windows操作系统的web浏览器插件播放前端摄像机视频的方法,本发明提供的方法能够解决开源播放器封装的js脚本不能播放H265编码格式视频的问题;解决开源播放器封装的js脚本不能播放实时流传输协议协议视频的问题;解决开源播放器封装的js脚本播放性能路数少,解码性能低的问题;解决开源播放器封装的js脚本对于不同协议的视频播放在不同浏览器下的兼容性问题;解决开源播放器封装的js脚本加载播放视频缓慢的问题以及播放地址加密安全性问题。
本实施例中插件安装成功后主要包括两部分内容:其一为控制程序,其二为插件,形式均为exe执行程序。
控制程序为插件的控制层,在插件程序安装完成后就会启动,以后台服务的形式存在,用户不可见;其主要职责是用于管理一个或多个插件,以及转发控制命令给插件。控制程序启动时会监听一个控制端口(wss协议),用于接收来自web端的控制命令,如:启动插件、显示/隐藏插件、改变插件的位置和大小等。另外控制程序还会监听一个转发端口(wss协议),用于控制程序与插件之间的通信,主要是转发来自web端的控制命令给插件,如:显示/隐藏插件、改变插件的位置和大小等。
插件为插件窗口渲染层,即插件窗口,本质上是融合了解码和窗口渲染的程序。插件启动后,会主动与控制程序的转发端口建立连接,并将自身的唯一标识id上报给控制程序。
如图2所示,本实施中控制程序监听转发端口用于控制程序与插件之间的通信,转发来自web端的控制命令给插件的步骤中,控制程序启动流程如下:
控制程序监听控制端口,接受HTML的连接;
收到启动插件的请求后,创建唯一标识id,创建插件进程,同时携带唯一标识id以及浏览器标识;
判定是否在指定时间段内得到插件响应;若是,则向HTML发送成功的响应报文,含插件的唯一标识id;若否,则向HTML发送失败的响应报文;
如图3所示,本实施例中插件启动后,会主动与控制程序的转发端口建立连接,并将自身的唯一标识id上报给控制程序的步骤中,插件启动流程如下:
插件尝试与控制程序建立连接;
若连接成功,则根据浏览器标识查找浏览器HWND,并将插件主窗口设置为浏览器的子窗口,发送启动成功的响应,含唯一标识id。若连接不成功,则进程终止。
作为一种优选的实施方式,本实施例在步骤S3中、当浏览器web网页端程序在调用时,直接引入js文件脚本,然后调用OwebControl = new ArgeswebControlPlug({})的构造函数进行插件对象的创建,构造函数中参数包括的关键信息有初始化插件对象嵌入的html元素id,初始化播放窗口数量,以及相关的点击事件的回调函数;
浏览器web网页端程序启动插件的具体过程如下:
1、web网页端程序通过封装的js方法,发送包含当前浏览器信息(主要是当前网页标题)的启动命令到控制程序;
2、控制程序负责启动插件,即拉起插件进程,并将浏览器信息传递给插件进程。
3、插件启动后,根据收到的浏览器信息,通过查找或枚举的方式定位浏览器窗口,并通过windows API将自身主窗口设置为浏览器的子窗口,同时将该窗口Z轴顺序置顶(原因及异常处理详见后文),以达到插件作为浏览器网页一部分的目的;同时与控制程序的转发端口建立连接,并将自身的唯一标识id上报给控制程序,控制程序会保存唯一标识id与具体插件的对应关系;
4、控制程序将包含此唯一标识id的启动结果回复给web端;web端需要保存此唯一标识id与该插件的对应关系,以应对多个插件的情况。
如图4所示,本实施例中web端调用插件流程如下:
HTML尝试与控制程序建立连接;判断是否连接成功;若连接成功,则向控制程序发送查询浏览器类型请求;若连接不成功,则判断是否初次尝试,若为初次尝试,则唤醒控制程序尝试与控制程序建立连接;
判断是否查询成功;若成功,则向控制程序发送启动插件请求;判断是否成功拿到插件的唯一标识id;若成功,则保存插件的唯一标识id;
本实施例中多个插件的情况常见场景:一个网页加载了多个插件、一个浏览器的多个网页均加载了插件、以及多个浏览器等等。由于web端已经保存了唯一标识id与插件的对应关系,向控制程序发送控制命令的时候,同时携带需要控制的插件的唯一标识id,以达到控制多个插件中的指定插件的目的。
需要补充说明的是,本实施例中作为一种优选的实施方式,如图5所示,本实施例中展示了网页与插件的外部关系,控制程序的一端与多个HTML(web端应用程序)进行通讯连接,控制程序的另一端连接有多个插件。
优选的,如图6所示,本实施例中插件整体时序流图如下:
HTML(web端应用程序)向控制程序发起启动插件请求;控制程序向插件发起启动插件进程;启动成功,插件向控制程序发送携带的唯一标识id,控制程序将接受到的唯一标识id返回至HTML;
HTML向控制程序发起控制请求,包括显示/隐藏插件和插件位置;唯一标识id作为插件的唯一标识;控制程序转发控制请求,根据唯一标识id判断转发给哪个插件;插件进行控制处理,并将控制请求处理结果返回控制程序,由控制程序再转发至HTML;
HTML向控制程序发起业务请求,包括播放,唯一标识id作为插件的唯一标识;控制程序转发业务请求,根据唯一标识id判断转发给哪个插件,插件进行控制处理,并将控制请求处理结果返回控制程序,由控制程序再转发至HTML;
HTML向控制程序发起关闭请求,唯一标识id作为插件的唯一标识,控制程序释放唯一标识id,并向HTML发出关闭请求的响应;同时,控制程序转发关闭请求至插件,根据唯一标识id判断转发给哪个插件,插件收到关闭请求后,进程退出。
本实施例中当浏览器web端调用启动插件的方法插件启动成功后,因为插件需要嵌入到web浏览器窗口中,作为浏览器的一部分,因此需要对插件的位置进行实时更新。上文中已经提到插件启动后,会将自身主窗口设置为网页的子窗口,此时虽然插件与网页窗口已经建立了父子关系,但是无法应对一些复杂的情况。比如对浏览器窗口进行大小调整、滚动条拖动等需要改变插件位置或大小的情况时,插件自身无法感知浏览器的变化,也就无法做出位置或大小方面的变化。所以,需要web端在监听到这些变化时,将插件需要做出的改变发送给控制程序,控制程序则会转发给插件,由插件自身完成这些操作。比如显示/隐藏插件、调整插件的位置或大小等。例如在需要改变插件位置或大小时调用插件对象的OwebControl.JS_SetPosition()方法控制插件位置或大小的变化,该方法根据当前插件嵌入对象元素的位置和大小转换为插件坐标和宽度高度信息,并将这些信息以及对应插件的唯一标识id发送给控制程序,然后控制程序根据唯一标识id将这些信息转发给对应的插件,去插件自身完成位置或宽度高度的改变。
如图7所示,一般情况,HTML实时计算插件的摆放位置,包括横坐标、纵坐标、宽度、高度,经过控制程序转发至插件,插件调整自身位置为(横坐标, 纵坐标),调整自身大小为(宽度,高度)。
类似的,在浏览器缩小到任务栏和从任务栏放大显示时,需要显示或隐藏插件时调用OwebControl.JS_SetShow()或OwebControl.JS_SetHide(),通过控制程序将命令转发给对应的插件,由插件自身完成显示或隐藏的操作。
本实施例中还提供了异常情况处理方式:由于浏览器滚动条拖动等原因,插件只应显示部分窗体。
解决方案:调用OwebControl.JS_SetPosition()时,需要同时将无需显示部分的信息发送到插件,由插件利用windows的不规则区域机制,在windows绘制窗口时不绘制不需要显示的部分。
如图8所示,特殊情况一,当网页移动导致插件只有部分处于浏览器客户区时,如图8所示:HTML实时计算插件的摆放位置,包括横坐标、纵坐标、宽度、高度,经过控制程序转发至插件,插件调整自身位置为(横坐标, 纵坐标),调整自身大小为(宽度, 高度);
HTML同时需要发送插件无需显示的部分信息:margin.top(上边缘距离顶部的距离),此值大于0时标识插件上侧有位于浏览器客户区之外的部分,高度为margin.top;插件根据这些参数,利用windows的不规则区域机制,将浏览器客户区之外的部分排除在渲染范围之外:
首先以坐标(0,0),大小(宽度, 高度)创建一个区域1;其次以坐标(0,margin.top),大小(宽度,纵坐标-margin.top)创建一个区域2;对区域1和区域2进行与计算,得到实际需要显示的区域3。
注:此处仅为上侧的情况,其他情况,margin.left(左边缘距离左边的距离)大于0表示左侧有不处于浏览器客户区的部分、margin.bottom(下边缘距离底部的距离)大于0表示下侧有不处于浏览器客户区的部分、margin.right(右边缘距离右边的距离)大于0表示右侧有不处于浏览器客户区的部分;margin.left(左边缘距离左边的距离)和margin.top(上边缘距离顶部的距离)值均大于0,则表示插件左侧和上侧均有位于浏览器客户区之外的部分,其他组合同理;实现同理。
作为一种优选的实施方式,本实施例中由于网页本身会存在其他元素,可能会有这些网页元素和插件重合导致插件被遮挡的情况,所以如上文提到,需要将插件主窗口作为网页窗口子窗口的最上层窗口,即Z轴置顶。但是此时插件可能会遮挡不应遮挡的其他网页元素,比如弹窗。
解决方案:与第一种情况类似,调用OwebControl.JS_SetPosition()时,需要同时将由重叠的不应被插件遮挡的网页元素的位置以及宽高发送到插件,由插件利用windows的不规则区域机制,在windows绘制窗口时不绘制与网页元素重合的部分;支持多个重叠元素。
如图9所示,特殊情况二,当网页有弹框时,HTML实时计算插件的摆放位置,包括横坐标、纵坐标、宽度、高度,经过控制程序转发至插件,插件调整自身位置为(横坐标, 纵坐标),调整自身大小为(宽度, 高度);
同时HTML需要发送弹框的位置信息:遮罩层横坐标、遮罩层纵坐标、遮罩层宽度、遮罩层高度;插件根据这些参数,利用windows的不规则区域机制,将弹框的遮挡的插件部分排除在渲染范围之外:
首先以坐标(0,0),大小(宽度, 高度)创建一个区域1;其次,以坐标(遮罩层横坐标-横坐标, 遮罩层纵坐标-纵坐标),大小(遮罩层宽度,遮罩层高度)创建区域2;以区域1为基准,对区域2进行diff计算,得出实际需要显示的区域3。
注:mask(遮罩层)为数组形式,支持多个弹框。
作为一种优选的实施方式,本实施例中当插件收到播放请求和播放地址时,会通知插件进行视频播放,插件实现播放视频以及音频,包括两部分功能:
第一部分为:拉流
插件通过判断收到的地址,如果是RTSP(实时流传输协议)地址,通过实时流传输协议客户端进行拉流;如果是私有协议地址,则通过自研封装的数据传输通道进行码流的传输。这两种方式均可以达到毫秒级的传输延时。
而web端基于video标签进行播放的视频通常是基于hls、flv等协议,这两种协议都是后台先把整个流分成一个个小切片,然后通过HTTP请求的方式进行文件下载,每次只下载一些,这样在后台生成文件和下载的过程中,会造成实时视频流的延迟,具体延迟时间通常在3-5秒。
第二部分为:播放
插件收到视频/音频流之后,就会通过解码库对其进行解码以及渲染操作。该解码库为自研,支持常见的视频格式,如H264、H265等,以及常见的音频格式,如AAC、G711A、G711U等。
解码库中的解码方式,支持软解以及硬解;渲染方式,支持GDI 图形设备接口、表面绘图接口、开放图形库等。能最大化的节省主机资源,以达到同时播放尽可能多的路数的视频/音频的目的。
本实施例中插件中可以设置播放窗口和路数,最大支持32路视频的播放。由于插件编解码和目前常用的其它封装的js脚本不一样,插件不依赖于浏览器,是直接运行在windows操作系统上面的程序,解码库的解码方式支持软解和硬解码方式,即依赖于操作系统的cpu或者gpu卡,因此解码性能和稳定性会比web浏览器更好。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内包括可以对上述实施例进行变化、修改、替换和变型。
Claims (11)
1.基于windows操作系统的web浏览器插件播放前端摄像机视频的方法,其特征在于:包括如下步骤:
S1、在windows操作系统中,通过exe形式的安装包安装插件程序,安装过程完成后,会自动拉起插件后台管理进程;
S2、浏览器web网页端和插件之间的通信通过封装的js脚本实现,js脚本主要负责封装与插件之间的协议交互,并发送请求,同时,把相关的控制信令封装成web端浏览器可以调用的js方法;
S3、当浏览器web网页端程序在调用插件时,可以直接引入js文件脚本,并通过调用构造函数进行插件对象的创建;
S4、当浏览器web端调用启动插件的方法成功后,插件需要嵌入到web浏览器窗口中,作为浏览器的一部分,需要对插件进行实时更新;
S5、插件启动成功后,浏览器web端程序需要插件播放视频时,通过接口服务获取到播放地址,在获取播放地址的时候,传入播放视频设备的编码以及插件的唯一标识id;唯一标识id是插件启动时返回的唯一标识,用于采用对称加密算法作为密钥对播放地址的加密和解密;
S6、浏览器web端程序通过接口获取到播放地址后,向插件发送播放实时视频的请求;
S7、当插件收到播放请求和播放地址时,会通知插件进行视频播放,插件负责实现视频和音频的播放功能。
2.根据权利要求1所述的方法,其特征在于:插件安装成功后主要包括两部分内容:其一为控制程序,其二为插件,形式均为exe执行程序;
控制程序为插件的控制层,在插件程序安装完成后就会启动,以后台服务的形式存在,用户不可见;其主要职责是管理一个或多个插件,以及转发控制命令给插件;控制程序启动时会监听一个控制端口,用于接收来自web端的控制命令;控制程序还会监听一个转发端口,用于控制程序与插件之间的通信,主要是转发来自web端的控制命令给插件;
插件为插件窗口渲染层,即插件窗口,本质上是融合了解码和窗口渲染的程序;插件启动后,会主动与控制程序的转发端口建立连接,并将自身的唯一标识id上报给控制程序。
3.根据权利要求2所述的方法,其特征在于:控制程序监听转发端口用于控制程序与插件之间的通信,转发来自web端的控制命令给插件的步骤中,控制程序启动流程如下:
控制程序负责监听控制端口,接受HTML的连接;
收到启动插件的请求后,创建唯一标识id,创建插件进程,同时携带唯一标识id以及浏览器标识;
判定是否在指定时间段内得到插件响应;若是,则向HTML发送成功的响应报文,含插件的唯一标识id;若否,则向HTML发送失败的响应报文;
插件启动后,会主动与控制程序的转发端口建立连接,并将自身的唯一标识id上报给控制程序的步骤中,插件启动流程如下:
插件尝试与控制程序建立连接;
若连接成功,则根据浏览器标识查找浏览器HWND,并将插件主窗口设置为浏览器的子窗口,发送启动成功的响应,含唯一标识id。
4.根据权利要求3所述的方法,其特征在于:在步骤S3中、当浏览器web网页端程序在调用时,直接引入js文件脚本,然后调用OWebControl = new ArgesWebControlPlug({})的构造函数进行插件对象的创建,构造函数中参数包括的关键信息有初始化插件对象嵌入的html元素id,初始化播放窗口数量,以及相关的点击事件的回调函数;
浏览器web网页端程序启动插件的具体过程如下:
web网页端程序通过封装的js方法,发送包含当前浏览器信息的启动命令到控制程序;
控制程序负责启动插件,即拉起插件进程,并将浏览器信息传递给插件进程;
插件启动后,根据收到的浏览器信息,通过查找或枚举的方式定位浏览器窗口,并通过windows API将自身主窗口设置为浏览器的子窗口,同时将该窗口Z轴顺序置顶,以达到插件作为浏览器网页一部分的目的;同时与控制程序的转发端口建立连接,并将自身的唯一标识id上报给控制程序,控制程序会保存唯一标识id与具体插件的对应关系;
控制程序将包含此唯一标识id的启动结果回复给web端;web端需要保存此唯一标识id与该插件的对应关系,以应对多个插件的情况。
5.根据权利要求4所述的方法,其特征在于:web端调用插件流程如下:
HTML尝试与控制程序建立连接;判断是否连接成功;若连接成功,则向控制程序发送查询浏览器类型请求,判断是否查询成功;向控制程序发送启动插件请求;判断是否成功拿到插件的唯一标识id;若成功,则保存插件的唯一标识id。
6.根据权利要求5所述的方法,其特征在于:浏览器web网页端程序启动插件的过程中,存在一个网页加载了多个插件、一个浏览器的多个网页均加载了插件或者多个浏览器加载了多个插件的情况;由于web端已经保存了唯一标识id与插件的对应关系,向控制程序发送控制命令的时候,同时携带需要控制的插件的唯一标识id,以达到控制多个插件中的指定插件的目的。
7.根据权利要求6所述的方法,其特征在于:插件整体时序流图如下:
HTML向控制程序发起启动插件请求;控制程序向插件发起启动插件进程;启动成功,插件向控制程序发送携带的唯一标识id,控制程序将接受到的唯一标识id返回至HTML;
HTML向控制程序发起控制请求,包括显示/隐藏插件和插件位置;唯一标识id作为插件的唯一标识;控制程序转发控制请求,根据唯一标识id判断转发给哪个插件;插件进行控制处理,并将控制请求处理结果返回控制程序,由控制程序再转发至HTML;
HTML向控制程序发起业务请求,包括播放,唯一标识id作为插件的唯一标识;控制程序转发业务请求,根据唯一标识id判断转发给哪个插件,插件进行控制处理,并将控制请求处理结果返回控制程序,由控制程序再转发至HTML;
HTML向控制程序发起关闭请求,唯一标识id作为插件的唯一标识,控制程序释放唯一标识id,并向HTML发出关闭请求的响应;同时,控制程序转发关闭请求至插件,根据唯一标识id判断转发给哪个插件,插件收到关闭请求后,进程退出。
8.根据权利要求7所述的方法,其特征在于:对浏览器窗口进行操作需要改变插件位置或大小,其方法为:web端在监听到操作变化时,将插件需要做出的改变发送给控制程序,控制程序则会转发给插件,由插件自身完成操作,操作至少包括显示/隐藏插件、调整插件的位置或大小;
在需要改变插件位置或大小时调用插件对象的OWebControl.JS_SetPosition()方法控制插件位置或大小的变化,该方法根据当前插件嵌入对象元素的位置和大小转换为插件坐标和宽度高度信息,并将这些信息以及对应插件的唯一标识id发送给控制程序,然后控制程序根据唯一标识id将这些信息转发给对应的插件,去插件自身完成位置或宽度高度的改变;
在浏览器缩小到任务栏和从任务栏放大显示时,需要显示或隐藏插件时调用OWebControl.JS_SetShow()或OWebControl.JS_SetHide(),通过控制程序将命令转发给对应的插件,由插件自身完成显示或隐藏的操作。
9.根据权利要求8所述的方法,其特征在于:当需要插件只应显示部分窗体时,调用OWebControl.JS_SetPosition()时,需要同时将无需显示部分的信息发送到插件,由插件利用windows的不规则区域机制,在windows绘制窗口时不绘制不需要显示的部分;
当网页移动导致插件只有部分处于浏览器客户区时,具体处理方式如下:
HTML实时计算插件的摆放位置,包括横坐标、纵坐标、宽度、高度,经过控制程序转发至插件,插件调整自身位置为(横坐标, 纵坐标),调整自身大小为(宽度,高度);
HTML同时需要发送插件无需显示的部分信息:margin.top,此值大于0时标识插件上侧有位于浏览器客户区之外的部分,高度为margin.top;插件根据这些参数,利用windows的不规则区域机制,将浏览器客户区之外的部分排除在渲染范围之外:
首先以坐标(0,0),大小(宽度,高度)创建一个区域1;其次以坐标(0,margin.top),大小(宽度,纵坐标-margin.top)创建一个区域2;对区域1和区域2进行与计算,得到实际需要显示的区域3。
10.根据权利要求9所述的方法,其特征在于:
由于网页本身会存在网页元素和插件重合导致插件被遮挡的情况,所需要将插件主窗口作为网页窗口子窗口的最上层窗口,即Z轴置顶;但是此时插件可能会遮挡不应遮挡;
解决方法是:调用OWebControl.JS_SetPosition()时,需要同时将由重叠的不应被插件遮挡的网页元素的位置以及宽高发送到插件,由插件利用windows的不规则区域机制,在windows绘制窗口时不绘制与网页元素重合的部分;支持多个重叠元素;
当网页有弹框时,具体处理方式如下:
HTML实时计算插件的摆放位置,包括横坐标、纵坐标、宽度、高度,经过控制程序转发至插件,插件调整自身位置为(横坐标, 纵坐标),调整自身大小为(宽度, 高度);
同时HTML需要发送弹框的位置信息:遮罩层横坐标、遮罩层纵坐标、遮罩层宽度、遮罩层高度;插件根据这些参数,利用windows的不规则区域机制,将弹框的遮挡的插件部分排除在渲染范围之外:
首先以坐标(0,0),大小(宽度, 高度)创建一个区域1;其次,以坐标(遮罩层横坐标-横坐标, 遮罩层纵坐标-纵坐标),大小(遮罩层宽度,遮罩层高度)创建区域2;以区域1为基准,对区域2进行diff计算,得出实际需要显示的区域3。
11.根据权利要求1至10任一项所述的方法,其特征在于:
当插件收到播放请求和播放地址时,会通知插件进行视频播放,插件实现播放视频以及音频,包括两部分功能:
第一部分为:拉流
插件通过判断收到的地址,如果是实时流传输协议地址,通过实时流传输协议客户端进行拉流;如果是私有协议地址,则通过自研封装的数据传输通道进行码流的传输;
第二部分为:播放
插件收到视频/音频流之后,就会通过解码库对其进行解码以及渲染操作;
解码库中的解码方式,支持软解以及硬解;渲染方式,支持GDI 图形设备接口、表面绘图接口和开放图形库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311841015.6A CN117499736B (zh) | 2023-12-29 | 2023-12-29 | 基于windows操作系统的web浏览器插件播放前端摄像机视频的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311841015.6A CN117499736B (zh) | 2023-12-29 | 2023-12-29 | 基于windows操作系统的web浏览器插件播放前端摄像机视频的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117499736A true CN117499736A (zh) | 2024-02-02 |
CN117499736B CN117499736B (zh) | 2024-04-19 |
Family
ID=89685315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311841015.6A Active CN117499736B (zh) | 2023-12-29 | 2023-12-29 | 基于windows操作系统的web浏览器插件播放前端摄像机视频的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117499736B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582437A (zh) * | 2001-11-01 | 2005-02-16 | 雅虎公司 | 便利使用因特网浏览器自动登录网站的方法与系统 |
US20110138354A1 (en) * | 2009-12-07 | 2011-06-09 | International Business Machines Corporation | Interactive video player component for mashup interfaces |
US20130286425A1 (en) * | 2011-02-10 | 2013-10-31 | Seiko Epson Corporation | Network System, Interface Board, Method of Controlling Printing on an Network System, and Program |
CN105407407A (zh) * | 2014-06-26 | 2016-03-16 | 广州市动景计算机科技有限公司 | 视频的播放方法和装置 |
CN107659829A (zh) * | 2017-11-06 | 2018-02-02 | 网宿科技股份有限公司 | 一种视频加密的方法和系统 |
US20180349283A1 (en) * | 2017-06-03 | 2018-12-06 | Vmware, Inc. | Video redirection in virtual desktop environments |
CN111464874A (zh) * | 2020-04-15 | 2020-07-28 | 湖南麒麟信安科技有限公司 | 一种云桌面内播放网页视频的方法、系统及介质 |
CN111556353A (zh) * | 2020-04-15 | 2020-08-18 | 重庆锐明信息技术有限公司 | 一种视频播放方法、视频播放管理装置及终端设备 |
CN113824783A (zh) * | 2021-09-18 | 2021-12-21 | 杭州合学教育科技有限公司 | 一种基于h5js本地编程的物联网字节透传方法 |
CN114245212A (zh) * | 2021-12-20 | 2022-03-25 | 浪潮通信信息系统有限公司 | Bs架构调用vlc播放器ocx扩展播放rtsp视频的系统及方法 |
CN114900719A (zh) * | 2022-04-29 | 2022-08-12 | 广东博思信息技术股份有限公司 | 一种基于html5播放监控设备实时视频的方法及系统 |
CN115022725A (zh) * | 2022-05-25 | 2022-09-06 | 京东城市(北京)数字科技有限公司 | 一种视频播放方法和装置 |
CN116261003A (zh) * | 2021-12-09 | 2023-06-13 | 海信电子科技(深圳)有限公司 | 一种显示设备及基于浏览器的流媒体播放控制方法 |
CN116595086A (zh) * | 2023-07-19 | 2023-08-15 | 中国电子科技集团公司第十五研究所 | 一种基于插件的空间数据服务实现方法和系统 |
-
2023
- 2023-12-29 CN CN202311841015.6A patent/CN117499736B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582437A (zh) * | 2001-11-01 | 2005-02-16 | 雅虎公司 | 便利使用因特网浏览器自动登录网站的方法与系统 |
US20110138354A1 (en) * | 2009-12-07 | 2011-06-09 | International Business Machines Corporation | Interactive video player component for mashup interfaces |
US20130286425A1 (en) * | 2011-02-10 | 2013-10-31 | Seiko Epson Corporation | Network System, Interface Board, Method of Controlling Printing on an Network System, and Program |
CN105407407A (zh) * | 2014-06-26 | 2016-03-16 | 广州市动景计算机科技有限公司 | 视频的播放方法和装置 |
US20180349283A1 (en) * | 2017-06-03 | 2018-12-06 | Vmware, Inc. | Video redirection in virtual desktop environments |
CN107659829A (zh) * | 2017-11-06 | 2018-02-02 | 网宿科技股份有限公司 | 一种视频加密的方法和系统 |
CN111464874A (zh) * | 2020-04-15 | 2020-07-28 | 湖南麒麟信安科技有限公司 | 一种云桌面内播放网页视频的方法、系统及介质 |
CN111556353A (zh) * | 2020-04-15 | 2020-08-18 | 重庆锐明信息技术有限公司 | 一种视频播放方法、视频播放管理装置及终端设备 |
CN113824783A (zh) * | 2021-09-18 | 2021-12-21 | 杭州合学教育科技有限公司 | 一种基于h5js本地编程的物联网字节透传方法 |
CN116261003A (zh) * | 2021-12-09 | 2023-06-13 | 海信电子科技(深圳)有限公司 | 一种显示设备及基于浏览器的流媒体播放控制方法 |
CN114245212A (zh) * | 2021-12-20 | 2022-03-25 | 浪潮通信信息系统有限公司 | Bs架构调用vlc播放器ocx扩展播放rtsp视频的系统及方法 |
CN114900719A (zh) * | 2022-04-29 | 2022-08-12 | 广东博思信息技术股份有限公司 | 一种基于html5播放监控设备实时视频的方法及系统 |
CN115022725A (zh) * | 2022-05-25 | 2022-09-06 | 京东城市(北京)数字科技有限公司 | 一种视频播放方法和装置 |
CN116595086A (zh) * | 2023-07-19 | 2023-08-15 | 中国电子科技集团公司第十五研究所 | 一种基于插件的空间数据服务实现方法和系统 |
Non-Patent Citations (2)
Title |
---|
李静;王军政;沈伟;: "基于B/S和流媒体技术的远程监控系统研究", 北京理工大学学报, no. 08, 15 August 2008 (2008-08-15) * |
黄雄;: "基于HTML5的视频传输技术研究", 广东技术师范学院学报, no. 11, 15 November 2014 (2014-11-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117499736B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9930308B2 (en) | Platform-agnostic video player for mobile computing devices and desktop computers | |
US20170053673A1 (en) | MPEG objects and systems and methods for using MPEG objects | |
US10567809B2 (en) | Selective media playing method and apparatus according to live streaming and recorded streaming | |
CN110324671B (zh) | 网页视频播放方法及装置、电子设备及存储介质 | |
US20080201736A1 (en) | Using Triggers with Video for Interactive Content Identification | |
US8745484B2 (en) | Advanced embed code | |
JP5014259B2 (ja) | 表示制御装置および表示制御方法 | |
JP2005505953A (ja) | 文脈的ウェブページシステム及び方法 | |
CN109325145B (zh) | 视频缩略图的获取方法、终端及计算机可读存储介质 | |
CN105518614A (zh) | 用于多屏幕应用程序的屏幕录制 | |
US11200915B2 (en) | Method for capturing and recording high-definition video and audio output as broadcast by commercial streaming service providers | |
US10728486B2 (en) | Smart television playing method and device | |
CN111464874A (zh) | 一种云桌面内播放网页视频的方法、系统及介质 | |
EP3125541A1 (en) | Data acquisition and interaction method, set top box, server and multimedia system | |
KR100909669B1 (ko) | 모바일 단말 및 임베디드 단말의 웹 브라우저 내에서 플래시 기반 비디오 콘텐츠의 재생 방법 | |
CN117499736B (zh) | 基于windows操作系统的web浏览器插件播放前端摄像机视频的方法 | |
US20100119215A1 (en) | Video spoiler alert | |
KR20140133096A (ko) | 가상화 웹 iptv 및 이를 이용한 동영상 스트리밍 방법 | |
CN113542765B (zh) | 一种媒体数据跳变续播方法及显示设备 | |
CN114245212A (zh) | Bs架构调用vlc播放器ocx扩展播放rtsp视频的系统及方法 | |
CN116261003A (zh) | 一种显示设备及基于浏览器的流媒体播放控制方法 | |
CN114390313B (zh) | 一种浏览器HTML5 Video标签音视频重定向的方法及系统 | |
US11570501B2 (en) | Connection allocation method in media playing process, media playing device and storage medium | |
KR102480372B1 (ko) | 전자장치 및 그 제어방법 | |
CN114401445B (zh) | 视频处理控制方法、装置、监控设备、客户端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |