CN110134450A - 一种视频重定向方法,装置和计算机可读存储介质 - Google Patents

一种视频重定向方法,装置和计算机可读存储介质 Download PDF

Info

Publication number
CN110134450A
CN110134450A CN201810128478.0A CN201810128478A CN110134450A CN 110134450 A CN110134450 A CN 110134450A CN 201810128478 A CN201810128478 A CN 201810128478A CN 110134450 A CN110134450 A CN 110134450A
Authority
CN
China
Prior art keywords
control program
flash
client
preset
browsing device
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
Application number
CN201810128478.0A
Other languages
English (en)
Other versions
CN110134450B (zh
Inventor
车刚健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201810128478.0A priority Critical patent/CN110134450B/zh
Publication of CN110134450A publication Critical patent/CN110134450A/zh
Application granted granted Critical
Publication of CN110134450B publication Critical patent/CN110134450B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例公开了一种视频重定向方法,检测到预设浏览器启动时,在所述预设浏览器的进程中注入监控程序,所述监控程序用于监控插件容器进程的创建;若所述预设浏览器加载的网页中包括预设网页元素,在创建所述插件容器进程时,通过所述监控程序在所述插件容器进程中注入控制程序,启动注入所述控制程序的插件容器进程;根据所述控制程序和预设重定向信息确定所述预设浏览器加载的网页的播放方式,其中,所述预设重定向信息包括:重定向的网站列表。本发明实施例同时还公开了一种视频重定向装置和计算机可读存储介质,可以把服务端虚拟机中的播放转移到客户端实现,充分利用客户端硬件资源,降低虚拟机资源消耗。

Description

一种视频重定向方法,装置和计算机可读存储介质
技术领域
本发明涉及云计算服务器单机虚拟化技术领域,尤其涉及一种视频重定向 方法,装置和计算机可读存储介质。
背景技术
近年来,虚拟桌面在国内蓬勃发展。现有技术中,windows操作系统中使 用浏览器观看在线视频大多依托于flash插件进行播放。由于flash的播放需要 进行视频资源获取、视频解码、视频画面从服务端传输到客户端等流程,这严 重消耗了虚拟机的CPU、内存等资源,并且大量占用服务端网络资源,造成的 结果就是视频流畅度不够,并且影响虚拟机其他应用程序的使用。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种视频重定向方法,装 置和计算机可读存储介质,可以把服务端虚拟机中的flash播放转移到客户端实 现,充分利用客户端硬件资源,降低虚拟机资源消耗。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供一种视频重定向方法,所述方法包括:
检测到预设浏览器启动时,在所述预设浏览器的进程中注入监控程序,所 述监控程序用于监控插件容器进程的创建;
若所述预设浏览器加载的网页中包括预设网页元素,在创建所述插件容器 进程时,通过所述监控程序在所述插件容器进程中注入控制程序,启动注入所 述控制程序的插件容器进程;
根据所述控制程序和预设重定向信息确定所述预设浏览器加载的网页的播 放方式,其中,所述预设重定向信息包括:重定向的网站列表。
进一步地,所述通过所述监控程序在所述插件容器进程中注入控制程序, 包括:
所述监控程序通过APIHOOK技术将将创建中的所述插件容器进程勾到后 挂起,在挂起的所述插件容器进程中注入控制程序。
进一步地,在所述根据所述控制程序和预设重定向信息确定所述预设浏览 器加载的网页的播放方式之前,包括:
注入所述控制程序的插件容器进程进行网景插件应用程序编程接口NPAPI 的初始化时,所述控制程序通过APIHOOK勾到NPAPI初始化应用程序编程接 口API,初始化控制程序中的NPAPI插件;
将初始化参数传递给Adobe flash插件的NPAPI接口,以使得Adobe flash 插件根据所述初始化参数进行初始化;
注入所述控制程序的插件容器进程根据所述预设网页元素的信息调用 NPAPI创建实例,所述控制程序勾到所述预设网页元素的信息后在所述控制程 序中创建第一flash实例。
进一步地,所述根据所述控制程序和预设重定向信息确定所述预设浏览器 加载的网页的播放方式,包括:
当所述预设浏览器加载的网页的地址属于所述重定向的网站列表中的任意 一个时,选择出所述第一flash实例中需要重定向客户端的第二flash实例,去 除所述第二flash实例中的核心播放参数获得第三flash实例,调用Adobe flash 的NPAPI,根据所述第三flash实例创建不能真实播放的flash伪实例;
通过控制程序把所述第二flash实例的核心播放参数传输到客户端,以使得 客户端根据所述核心播放参数进行播放所述预设浏览器加载的网页中的视频。
进一步地,在所述通过控制程序把所述第二flash实例的核心播放参数传输 到客户端,以使得客户端根据所述核心播放参数进行播放所述预设浏览器加载 的网页中的视频之后,包括:
调用NPAPI中的_invoke函数,通过控制程序把所述第二flash实例的所有 _invoke函数调用转换为AS脚本字符串,并将所述AS脚本字符串传递到所述 客户端,通过控制程序将所述客户端传递的JS脚本提交给所述插件容器进程, 以使得所述插件容器进程与所述客户端实现交互过程。
进一步地,所述方法还包括:
控制程序根据所述预设浏览器加载的网页中预设网页元素的不同类型,获 取flash的位置信息,根据所述flash的位置信息计算所述预设浏览器的网页中 预设网页元素的播放窗口遮挡区域;
通过控制程序把播放窗口遮挡区域的信息传输给客户端的播放器,以使得 所述客户端实时将播放器的播放窗口位置调整在所述播放窗口遮挡区域。
本发明实施例还提供一种视频重定向装置,包括:检测单元、处理单元, 其中,
所述检测单元,用于检测预设浏览器的启动;
所述处理单元,用于检测到预设浏览器启动时,在所述预设浏览器的进程 中注入监控程序,所述监控程序用于监控插件容器进程的创建;还用于若所述 预设浏览器加载的网页中包括预设网页元素,在创建所述插件容器进程时,通 过所述监控程序在所述插件容器进程中注入控制程序,启动注入所述控制程序 的插件容器进程;还用于根据所述控制程序和预设重定向信息确定所述预设浏 览器加载的网页的播放方式,其中,所述预设重定向信息包括:重定向的网站 列表。
进一步地,所述处理单元,还用于:
注入所述控制程序的插件容器进程进行网景插件应用程序编程接口NPAPI 的初始化时,所述控制程序通过APIHOOK勾到NPAPI初始化应用程序编程接 口API,初始化控制程序中的NPAPI插件;
将初始化参数传递给Adobe flash插件的NPAPI接口,以使得Adobe flash 插件根据所述初始化参数进行初始化;
注入所述控制程序的插件容器进程根据所述预设网页元素的信息调用 NPAPI创建实例,所述控制程序勾到所述预设网页元素的信息后在所述控制程 序中创建第一flash实例。
进一步地,所述处理单元,具体用于:
当所述预设浏览器加载的网页的地址属于所述重定向的网站列表中的任意 一个时,选择出所述第一flash实例中需要重定向客户端的第二flash实例,去 除所述第二flash实例中的核心播放参数获得第三flash实例,调用Adobe flash 的NPAPI,根据所述第三flash实例创建不能真实播放的flash伪实例;
通过控制程序把所述第二flash实例的核心播放参数传输到客户端,以使得 客户端根据所述核心播放参数进行播放所述预设浏览器加载的网页中的视频。
进一步地,所述处理单元,还用于:
调用NPAPI中的_invoke函数,通过控制程序把所述第二flash实例的所有 _invoke函数调用转换为AS脚本字符串,并将所述AS脚本字符串传递到所述 客户端,通过控制程序将所述客户端传递的JS脚本提交给所述插件容器进程, 以使得所述插件容器进程与所述客户端实现交互过程。
进一步地,所述处理单元,还用于:
控制程序根据所述预设浏览器加载的网页中预设网页元素的不同类型,获 取flash的位置信息,根据所述flash的位置信息计算所述预设浏览器的网页中 预设网页元素的播放窗口遮挡区域;
通过控制程序把播放窗口遮挡区域的信息传输给客户端的播放器,以使得 所述客户端实时将播放器的播放窗口位置调整在所述播放窗口遮挡区域。
本发明实施例还提供一种视频重定向装置,所述装置包括:处理器、存储 器;所述处理器用于执行存储器中存储的视频重定向程序,以实现如上任一项 所述的方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质 存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执 行,以实现如上任一项所述的方法的步骤。
本发明实施例提供了一种视频重定向方法,装置和计算机可读存储介质, 检测到预设浏览器启动时,在所述预设浏览器的进程中注入监控程序,所述监 控程序用于监控插件容器进程的创建;若所述预设浏览器加载的网页中包括预 设网页元素,在创建所述插件容器进程时,通过所述监控程序在所述插件容器 进程中注入控制程序,启动注入所述控制程序的插件容器进程;根据所述控制 程序和预设重定向信息确定所述预设浏览器加载的网页的播放方式,其中,所 述预设重定向信息包括:重定向的网站列表。本发明实施例提供的视频重定向 方法,装置和计算机可读存储介质,可以把虚拟桌面内的flash视频重定向到客 户端,从而,可以降低预设浏览器播放视频时虚拟机的CPU、内存等资源,减 轻服务端网络资源消耗,提高视频流畅度。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图 中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同 示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例提供的视频重定向方法流程示意图一;
图2为本发明实施例提供的视频重定向方法流程示意图二;
图3为本发明实施例提供的视频重定向装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述。
现有技术的flash的播放需要进行视频资源获取、视频解码、视频画面从服 务端传输到客户端等流程,这严重消耗了虚拟机的CPU、内存等资源,并且大 量占用服务端网络资源,造成的结果就是视频流畅度不够,并且影响虚拟机其 他应用程序的使用,因此,需要研究在线视频重定向方法,把服务端虚拟机中 的flash播放转移到客户端实现,充分利用客户端硬件资源,降低虚拟机资源消 耗。不同浏览器对于flash插件的使用都不尽相同,重定向的处理方法也都差异 很大。例如IE浏览器使用ActiveX接口flash,火狐使用NPAPI接口flash,Chrome 使用PPAPI接口flash插件。火狐浏览器作为现如今主流浏览器之一,针对虚拟 桌面中火狐浏览器所使用NPAPI接口进行重定向设计能满足很多用户的在线视 频观看需求。本发明提供的视频重定向方法是一种基于NPAPI接口的火狐浏览 器在线视频重定向方法。本发明实施例提供的方法可以实现服务端网页脚本与 客户端本地Flash对象方法的双向调用,客户端的Flash对象能够正确地与服务 端网页中的JavaScript脚本进行交互。
现有的在线视频重定向方式都是针对虚拟桌面中使用IE浏览器进行定制, 并不能迁移到火狐等浏览器。本发明提出了一种基于NPAPI接口的火狐浏器在 线视频重定向方法。针对使用NPAPI接口flash插件的火狐浏览器,把虚拟桌 面内的flash视频重定向到客户端。
本发明实施例提供一种视频重定向方法,图1为本发明实施例提供的一种 视频重定向方法的实现流程示意图,如图1所示,该方法可以包括以下步骤:
步骤101、检测到预设浏览器启动时,在所述预设浏览器的进程中注入监 控程序。
其中,所述监控程序用于监控插件容器进程的创建。
具体的,本发明实施例提供的视频重定向方法的执行主体为视频重定向装 置。该视频重定向装置具体可以为虚拟桌面系统,该虚拟桌面系统可以包括虚 拟化管理中心、虚拟桌面代理程序、虚拟桌面火狐在线组件、虚拟桌面客户端 的改造,该虚拟桌面系统可以大幅度提升使用火狐浏览器观看在线视频的体验。
具体的,在虚拟化管理平台为用户配置在线视频策略,虚拟机代理把配置 的策略发给火狐在线组件,组件根据策略进行在线视频网站筛选等工作,并且 注入到火狐浏览器的相关进程,进行视频拉远、播放控制等流程。
本发明实施例中的虚拟桌面系统对现有的虚拟桌面系统进行了改进,具体 改进了虚拟化管理中心程序,改进了虚拟桌面代理程序,增加了火狐在线视频 组件,改进了虚拟桌面客户端程序,具体改进后各个程序可以实现的功能如下 所述。
其中,管理员通过虚拟化管理中心为用户配置在线视频策略,虚拟化管理 中心进行信息保存,并供虚拟桌面客户端查询使用,在线视频策略即预设重定 向信息,预设重定向信息包括重定向的网站列表。虚拟桌面代理程序记录在虚 拟管理中心配置的在线视频策略,并供火狐在线组件查询使用。火狐在线视频 组件通过远程注入的方式,往相关进程添加视频播放控制模块,筛选重定向的 视频、跟踪播放窗口位置、完成与浏览器的实时交互等功能。虚拟桌面客户端 在本地启用播放容器,并调用本地flash插件,根据火狐在线视频组件传递的相 关参数启用视频播放,并且根据位置实时调整,并且获取本地交互的相关动作, 传输给视频组件。
本发明实施例中,预设浏览器可以为火狐浏览器,即检测火狐浏览器的启 动,具体可以通过虚拟机组件监控火狐浏览器进程的启动,当检测到火狐浏览 器进程启动后,虚拟机组件向火狐浏览器firefox.exe进程中远程注入监控程序 DLL,监控程序DLL在firefox.exe用来监控flash插件容器进程 plugin-container.exe的创建。
其中,plugin-container.exe是火狐浏览器的插件的相关程序。
步骤102、若所述预设浏览器加载的网页中包括预设网页元素,在创建所 述插件容器进程时,通过所述监控程序在所述插件容器进程中注入控制程序, 启动注入所述控制程序的插件容器进程。
这里,预设网页元素可以为flash元素。火狐浏览器在加载视频网页之后, 根据火狐浏览器加载的视频网页中的网页元素判断是否存在flash元素,如果存 在flash元素,则调用插件容器进程plugin-container.exe。
其中,所述通过所述监控程序在所述插件容器进程中注入控制程序,包括:
所述监控程序通过APIHOOK技术将将创建中的所述插件容器进程勾到后 挂起,在挂起的所述插件容器进程中注入控制程序。
其中,APIHOOK技术是一种用于改变API执行结果的技术,Microsoft自 身也在Windows操作系统里面使用了这个技术,如Windows兼容模式等。
步骤103、根据所述控制程序和预设重定向信息确定所述预设浏览器加载 的网页的播放方式。
其中,所述预设重定向信息包括:重定向的网站列表。
具体的,管理员设置用户的在线视频重定向策略,选择是否开通重定向权 限并且设置进行重定向的网站列表,即预先设置开启重定向的网站列表,检测 到当前的网站属于预先设置的重定向的网站列表中的任意一个网站时,对该当 前的网站开启重定向,即该当前网站播放的视频可以重定向到客户端播放;当 检测到当前的网站不属于预先设置的重定向的网站列表中的任意一个网站时, 则根据现有的播放方式进行播放。
其中,虚拟化管理中心管理控制整个虚拟化平台。根据管理员的设置的线 视频重定向策略,把相应配置参数发送到虚拟机中的代理服务程序。代理服务 根据获取到的配置参数生成配置文件,重定向控制程序根据读取的配置文件进 行相关控制。
本发明提供的方法,提高了虚拟机中火狐浏览器观看在线视频体验;该方 法针对NPAPI接口,对于同类型接口浏览器都有一定的适用性;该方法不依赖 于火狐浏览器版本以及flash插件具体版本;该方法可以针对所有使用flash播 放的网站。
进一步地,在所述根据所述控制程序和预设重定向信息确定所述预设浏览 器加载的网页的播放方式之前,包括:
注入所述控制程序的插件容器进程进行网景插件应用程序编程接口NPAPI 的初始化时,所述控制程序通过APIHOOK勾到NPAPI初始化应用程序编程接 口API,初始化控制程序中的NPAPI插件;
将初始化参数传递给Adobe flash插件的NPAPI接口,以使得Adobe flash 插件根据所述初始化参数进行初始化;
注入所述控制程序的插件容器进程根据所述预设网页元素的信息调用 NPAPI创建实例,所述控制程序勾到所述预设网页元素的信息后在所述控制程 序中创建第一flash实例。
进一步地,所述根据所述控制程序和预设重定向信息确定所述预设浏览器 加载的网页的播放方式,包括:
当所述预设浏览器加载的网页的地址属于所述重定向的网站列表中的任意 一个时,选择出所述第一flash实例中需要重定向客户端的第二flash实例,去 除所述第二flash实例中的核心播放参数获得第三flash实例,调用Adobe flash 的NPAPI,根据所述第三flash实例创建不能真实播放的flash伪实例;
通过控制程序把所述第二flash实例的核心播放参数传输到客户端,以使得 客户端根据所述核心播放参数进行播放所述预设浏览器加载的网页中的视频。
进一步地,在所述通过控制程序把所述第二flash实例的核心播放参数传输 到客户端,以使得客户端根据所述核心播放参数进行播放所述预设浏览器加载 的网页中的视频之后,包括:
调用NPAPI中的_invoke函数,通过控制程序把所述第二flash实例的所有 _invoke函数调用转换为AS脚本字符串,并将所述AS脚本字符串传递到所述 客户端,通过控制程序将所述客户端传递的JS脚本提交给所述插件容器进程, 以使得所述插件容器进程与所述客户端实现交互过程。
进一步地,所述方法还包括:
控制程序根据所述预设浏览器加载的网页中预设网页元素的不同类型,获 取flash的位置信息,根据所述flash的位置信息计算所述预设浏览器的网页中 预设网页元素的播放窗口遮挡区域;
通过控制程序把播放窗口遮挡区域的信息传输给客户端的播放器,以使得 所述客户端实时将播放器的播放窗口位置调整在所述播放窗口遮挡区域。
本发明实施例提供的方法是基于NPAPI接口的火狐浏览器在线视频重定向 方法。针对使用NPAPI接口flash插件的火狐浏览器,把虚拟桌面内的flash视 频重定向到客户端。通过该方法,可以降低火狐浏览器播放视频时虚机的CPU、 内存等资源,减轻服务端网络资源消耗,提高视频流畅度。
本发明实施例还提供一种视频重定向方法,该方法为火狐浏览器flash重定 向方法,如图2所示,火狐浏览器flash重定向流程示意图,该方法可以包括以 下步骤:
步骤201、虚拟机组件监控到火狐浏览器进程启动后会向火狐浏览器firefox.exe进程中远程注入监控程序DLL,在firefox.exe用来监控flash插件容 器plugin-container.exe进程的创建。
步骤202、火狐浏览器在加载视频网页之后,根据加载视频网页中的网页 元素判断是否存在flash元素,如果存在则调用插件容器进程 plugin-container.exe,当火狐创建plugin-container.exe进程时,步骤201注入的 监控程序DLL通过微软APIHOOK技术将进程hook到,挂起后注入控制程序 DLL再唤起plugin-container.exe进程并且远程注入控制程序的DLL文件。
步骤203、插件容器进程进行NPAPI接口的初始化时,控制程序DLL监测 到并通过APIHOOK勾到NPAPI初始化API,然后初始化控制程序DLL中的 NPAPI插件的初始化工作。
步骤204、控制程序DLL初始化好后自己的插件后,再将参数传递给Adobe flash插件DLL的NPAPI接口,让Adobe flash插件进行相关初始化工作。
步骤205、插件容器进程根据flash元素的信息,调用NPAPI创建实例,元 素的信息被控制程序HOOK到后在控制程序中创建flash实例。
步骤206、控制程序根据预设的重定向信息,进行网页筛选以及flash实例 的筛选,选择出需要重定向客户端的flash实例,在去除核心播放参数的基础上, 调用adobeflash的NPAPI相关函数,创建不能真实播放的flash伪实例。
步骤207、控制程序把需要重定向的flash实例的核心参数通过虚拟机组件 传输到本地客户端,由本地客户端根据参数进行播放。
步骤208、插件容器进程与flash交互过程中,会调用NPAPI中的_invoke 函数。
步骤209、控制程序把重定向实例的所有_invoke调用转换为AS脚本字符 串,并传递到本地客户端。
步骤210、本地客户端截取所有flash上传的JS脚本,传输给虚拟机中的 控制程序,控制程序把该JS脚本提交给插件容器进程,从而实现本地客户端的 播放器与虚拟机中的插件容器进程的完整交互过程。
步骤211、控制程序根据flash元素的不同类型,分不同方法实时获取flash 的位置,并且计算浏览器页面元素的遮挡区域以及其与窗口的遮挡。
步骤212、控制程序把最终的播放区域传输给本地客户端的播放器,本地 播放器进行实时的窗口位置调整。
本发明实施例提供的方法是基于NPAPI接口的火狐浏览器在线视频重定向 方法。针对使用NPAPI接口flash插件的火狐浏览器,把虚拟桌面内的flash视 频重定向到客户端。通过该方法,可以降低火狐浏览器播放视频时虚机的CPU、 内存等资源,减轻服务端网络资源消耗,提高视频流畅度。
本发明实施例同时还提供一种视频重定向装置30,如图3所示,包括:检 测单元301、处理单元302,其中,
所述检测单元301,用于检测预设浏览器的启动;
所述处理单元302,用于检测到预设浏览器启动时,在所述预设浏览器的 进程中注入监控程序,所述监控程序用于监控插件容器进程的创建;还用于若 所述预设浏览器加载的网页中包括预设网页元素,在创建所述插件容器进程时, 通过所述监控程序在所述插件容器进程中注入控制程序,启动注入所述控制程 序的插件容器进程;还用于根据所述控制程序和预设重定向信息确定所述预设 浏览器加载的网页的播放方式,其中,所述预设重定向信息包括:重定向的网 站列表。
进一步地,所述处理单元302具体用于:所述监控程序通过APIHOOK技 术将将创建中的所述插件容器进程勾到后挂起,在挂起的所述插件容器进程中 注入控制程序。
进一步地,所述处理单元302,还用于:
注入所述控制程序的插件容器进程进行网景插件应用程序编程接口NPAPI 的初始化时,所述控制程序通过APIHOOK勾到NPAPI初始化应用程序编程接 口API,初始化控制程序中的NPAPI插件;
将初始化参数传递给Adobe flash插件的NPAPI接口,以使得Adobe flash 插件根据所述初始化参数进行初始化;
注入所述控制程序的插件容器进程根据所述预设网页元素的信息调用 NPAPI创建实例,所述控制程序勾到所述预设网页元素的信息后在所述控制程 序中创建第一flash实例。
进一步地,所述处理单元302,具体用于:
当所述预设浏览器加载的网页的地址属于所述重定向的网站列表中的任意 一个时,选择出所述第一flash实例中需要重定向客户端的第二flash实例,去 除所述第二flash实例中的核心播放参数获得第三flash实例,调用Adobe flash 的NPAPI,根据所述第三flash实例创建不能真实播放的flash伪实例;
通过控制程序把所述第二flash实例的核心播放参数传输到客户端,以使得 客户端根据所述核心播放参数进行播放所述预设浏览器加载的网页中的视频。
进一步地,所述处理单元302,还用于:
调用NPAPI中的_invoke函数,通过控制程序把所述第二flash实例的所有 _invoke函数调用转换为AS脚本字符串,并将所述AS脚本字符串传递到所述 客户端,通过控制程序将所述客户端传递的JS脚本提交给所述插件容器进程, 以使得所述插件容器进程与所述客户端实现交互过程。
进一步地,所述处理单元302,还用于:
控制程序根据所述预设浏览器加载的网页中预设网页元素的不同类型,获 取flash的位置信息,根据所述flash的位置信息计算所述预设浏览器的网页中 预设网页元素的播放窗口遮挡区域;
通过控制程序把播放窗口遮挡区域的信息传输给客户端的播放器,以使得 所述客户端实时将播放器的播放窗口位置调整在所述播放窗口遮挡区域。
具体的,本发明实施例提供的视频重定向装置的理解可以参考上述视频重 定向方法实施例的说明,本发明实施例在此不再赘述。
本发明实施例提供的视频重定向装置是基于NPAPI接口的火狐浏览器在线 视频重定向。针对使用NPAPI接口flash插件的火狐浏览器,把虚拟桌面内的 flash视频重定向到客户端。通过该方法,可以降低火狐浏览器播放视频时虚机 的CPU、内存等资源,减轻服务端网络资源消耗,提高视频流畅度。
本发明实施例提供一种视频重定向装置,所述装置包括:处理器、存储器; 所述处理器用于执行存储器中存储的视频重定向程序,以实现以下步骤:
检测到预设浏览器启动时,在所述预设浏览器的进程中注入监控程序,所 述监控程序用于监控插件容器进程的创建;
若所述预设浏览器加载的网页中包括预设网页元素,在创建所述插件容器 进程时,通过所述监控程序在所述插件容器进程中注入控制程序,启动注入所 述控制程序的插件容器进程;
根据所述控制程序和预设重定向信息确定所述预设浏览器加载的网页的播 放方式,其中,所述预设重定向信息包括:重定向的网站列表。
具体的,以上视频重定向装置实施例的描述,与上述方法实施例的描述是 类似的,对于本发明基站实施例中未披露的技术细节,可以参考上述信息处理 方法实施例的说明,本发明实施例在此不再赘述。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存 储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行, 以实现以下步骤:
检测到预设浏览器启动时,在所述预设浏览器的进程中注入监控程序,所 述监控程序用于监控插件容器进程的创建;
若所述预设浏览器加载的网页中包括预设网页元素,在创建所述插件容器 进程时,通过所述监控程序在所述插件容器进程中注入控制程序,启动注入所 述控制程序的插件容器进程;
根据所述控制程序和预设重定向信息确定所述预设浏览器加载的网页的播 放方式,其中,所述预设重定向信息包括:重定向的网站列表。
以上计算机可读存储介质实施例项的描述,与上述方法描述是类似的,具 有同方法实施例相同的有益效果。对于本发明计算机可读存储介质实施例中未 披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计 算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和 硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算 机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储 器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品 的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方 框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结 合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或 其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可 编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个 流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备 以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的 指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流 程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使 得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个 流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。

Claims (13)

1.一种视频重定向方法,其特征在于,所述方法包括:
检测到预设浏览器启动时,在所述预设浏览器的进程中注入监控程序,所述监控程序用于监控插件容器进程的创建;
若所述预设浏览器加载的网页中包括预设网页元素,在创建所述插件容器进程时,通过所述监控程序在所述插件容器进程中注入控制程序,启动注入所述控制程序的插件容器进程;
根据所述控制程序和预设重定向信息确定所述预设浏览器加载的网页的播放方式,其中,所述预设重定向信息包括:重定向的网站列表。
2.根据权利要求1所述的方法,其特征在于,所述通过所述监控程序在所述插件容器进程中注入控制程序,包括:
所述监控程序通过APIHOOK技术将将创建中的所述插件容器进程勾到后挂起,在挂起的所述插件容器进程中注入控制程序。
3.根据权利要求1或2所述的方法,其特征在于,在所述根据所述控制程序和预设重定向信息确定所述预设浏览器加载的网页的播放方式之前,包括:
注入所述控制程序的插件容器进程进行网景插件应用程序编程接口NPAPI的初始化时,所述控制程序通过APIHOOK勾到NPAPI初始化应用程序编程接口API,初始化控制程序中的NPAPI插件;
将初始化参数传递给Adobe flash插件的NPAPI接口,以使得Adobe flash插件根据所述初始化参数进行初始化;
注入所述控制程序的插件容器进程根据所述预设网页元素的信息调用NPAPI创建实例,所述控制程序勾到所述预设网页元素的信息后在所述控制程序中创建第一flash实例。
4.根据权利要求3所述的方法,其特征在于,所述根据所述控制程序和预设重定向信息确定所述预设浏览器加载的网页的播放方式,包括:
当所述预设浏览器加载的网页的地址属于所述重定向的网站列表中的任意一个时,选择出所述第一flash实例中需要重定向客户端的第二flash实例,去除所述第二flash实例中的核心播放参数获得第三flash实例,调用Adobe flash的NPAPI,根据所述第三flash实例创建不能真实播放的flash伪实例;
通过控制程序把所述第二flash实例的核心播放参数传输到客户端,以使得客户端根据所述核心播放参数进行播放所述预设浏览器加载的网页中的视频。
5.根据权利要求4所述的方法,其特征在于,在所述通过控制程序把所述第二flash实例的核心播放参数传输到客户端,以使得客户端根据所述核心播放参数进行播放所述预设浏览器加载的网页中的视频之后,包括:
调用NPAPI中的_invoke函数,通过控制程序把所述第二flash实例的所有_invoke函数调用转换为AS脚本字符串,并将所述AS脚本字符串传递到所述客户端,通过控制程序将所述客户端传递的JS脚本提交给所述插件容器进程,以使得所述插件容器进程与所述客户端实现交互过程。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
控制程序根据所述预设浏览器加载的网页中预设网页元素的不同类型,获取flash的位置信息,根据所述flash的位置信息计算所述预设浏览器的网页中预设网页元素的播放窗口遮挡区域;
通过控制程序把播放窗口遮挡区域的信息传输给客户端的播放器,以使得所述客户端实时将播放器的播放窗口位置调整在所述播放窗口遮挡区域。
7.一种视频重定向装置,其特征在于,包括:检测单元、处理单元,其中,
所述检测单元,用于检测预设浏览器的启动;
所述处理单元,用于检测到预设浏览器启动时,在所述预设浏览器的进程中注入监控程序,所述监控程序用于监控插件容器进程的创建;还用于若所述预设浏览器加载的网页中包括预设网页元素,在创建所述插件容器进程时,通过所述监控程序在所述插件容器进程中注入控制程序,启动注入所述控制程序的插件容器进程;还用于根据所述控制程序和预设重定向信息确定所述预设浏览器加载的网页的播放方式,其中,所述预设重定向信息包括:重定向的网站列表。
8.根据权利要求7所述的装置,其特征在于,所述处理单元,还用于:
注入所述控制程序的插件容器进程进行网景插件应用程序编程接口NPAPI的初始化时,所述控制程序通过APIHOOK勾到NPAPI初始化应用程序编程接口API,初始化控制程序中的NPAPI插件;
将初始化参数传递给Adobe flash插件的NPAPI接口,以使得Adobe flash插件根据所述初始化参数进行初始化;
注入所述控制程序的插件容器进程根据所述预设网页元素的信息调用NPAPI创建实例,所述控制程序勾到所述预设网页元素的信息后在所述控制程序中创建第一flash实例。
9.根据权利要求8所述的装置,其特征在于,所述处理单元,具体用于:
当所述预设浏览器加载的网页的地址属于所述重定向的网站列表中的任意一个时,选择出所述第一flash实例中需要重定向客户端的第二flash实例,去除所述第二flash实例中的核心播放参数获得第三flash实例,调用Adobe flash的NPAPI,根据所述第三flash实例创建不能真实播放的flash伪实例;
通过控制程序把所述第二flash实例的核心播放参数传输到客户端,以使得客户端根据所述核心播放参数进行播放所述预设浏览器加载的网页中的视频。
10.根据权利要求9所述的装置,其特征在于,所述处理单元,还用于:
调用NPAPI中的_invoke函数,通过控制程序把所述第二flash实例的所有_invoke函数调用转换为AS脚本字符串,并将所述AS脚本字符串传递到所述客户端,通过控制程序将所述客户端传递的JS脚本提交给所述插件容器进程,以使得所述插件容器进程与所述客户端实现交互过程。
11.根据权利要求7至10任一项所述的装置,其特征在于,所述处理单元,还用于:
控制程序根据所述预设浏览器加载的网页中预设网页元素的不同类型,获取flash的位置信息,根据所述flash的位置信息计算所述预设浏览器的网页中预设网页元素的播放窗口遮挡区域;
通过控制程序把播放窗口遮挡区域的信息传输给客户端的播放器,以使得所述客户端实时将播放器的播放窗口位置调整在所述播放窗口遮挡区域。
12.一种视频重定向装置,其特征在于,所述装置包括:处理器、存储器;所述处理器用于执行存储器中存储的视频重定向程序,以实现如权利要求1至6任一项所述的方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6任一项所述的方法的步骤。
CN201810128478.0A 2018-02-08 2018-02-08 一种视频重定向方法,装置和计算机可读存储介质 Active CN110134450B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810128478.0A CN110134450B (zh) 2018-02-08 2018-02-08 一种视频重定向方法,装置和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810128478.0A CN110134450B (zh) 2018-02-08 2018-02-08 一种视频重定向方法,装置和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110134450A true CN110134450A (zh) 2019-08-16
CN110134450B CN110134450B (zh) 2021-08-10

Family

ID=67567426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810128478.0A Active CN110134450B (zh) 2018-02-08 2018-02-08 一种视频重定向方法,装置和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110134450B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471715A (zh) * 2019-08-20 2019-11-19 江西金格科技股份有限公司 Chrome内核浏览器自动加载PPAPI插件的方法
CN111309234A (zh) * 2020-02-26 2020-06-19 深信服科技股份有限公司 一种虚拟化应用截图方法、装置、服务器及可读存储介质
CN111526428A (zh) * 2020-04-26 2020-08-11 湖南麒麟信安科技有限公司 一种在云桌面中实现html5视频播放的方法、系统及介质
CN114780164A (zh) * 2022-02-28 2022-07-22 深圳开源互联网安全技术有限公司 基于浏览器插件筛选网页信息的方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102547394A (zh) * 2011-12-27 2012-07-04 福建升腾资讯有限公司 Vdi环境下云接入设备通用的音视频重定向方法
CN102761603A (zh) * 2012-06-07 2012-10-31 福建升腾资讯有限公司 VDI环境下的网页flash视频重定向的方法
US20140006979A1 (en) * 2012-06-29 2014-01-02 Dell Products L.P. Remote Script Execution with Flash Redirection
CN103544067A (zh) * 2013-10-12 2014-01-29 福建升腾资讯有限公司 客户端的flash插件与服务端IE浏览器的网页脚本交互的方法
CN103905927A (zh) * 2012-12-26 2014-07-02 华为技术有限公司 虚拟桌面场景下视频重定向的方法、桌面服务器和系统
CN104125198A (zh) * 2013-04-25 2014-10-29 华为技术有限公司 网页播放器插件重定向方法、服务器和客户端
US20140344332A1 (en) * 2013-05-20 2014-11-20 Citrix Systems, Inc. Multimedia Redirection in a Virtualized Environment Using a Proxy Server
CN105763893A (zh) * 2016-01-15 2016-07-13 北京傲游天下科技有限公司 一种下载页面播放器中播放的视频方法
CN106657206A (zh) * 2016-06-27 2017-05-10 南京理工大学 虚拟桌面web视频重定向的方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102547394A (zh) * 2011-12-27 2012-07-04 福建升腾资讯有限公司 Vdi环境下云接入设备通用的音视频重定向方法
CN102761603A (zh) * 2012-06-07 2012-10-31 福建升腾资讯有限公司 VDI环境下的网页flash视频重定向的方法
US20140006979A1 (en) * 2012-06-29 2014-01-02 Dell Products L.P. Remote Script Execution with Flash Redirection
CN103905927A (zh) * 2012-12-26 2014-07-02 华为技术有限公司 虚拟桌面场景下视频重定向的方法、桌面服务器和系统
CN106231369A (zh) * 2012-12-26 2016-12-14 华为技术有限公司 虚拟桌面场景下视频重定向的方法、桌面服务器和系统
CN104125198A (zh) * 2013-04-25 2014-10-29 华为技术有限公司 网页播放器插件重定向方法、服务器和客户端
US20140344332A1 (en) * 2013-05-20 2014-11-20 Citrix Systems, Inc. Multimedia Redirection in a Virtualized Environment Using a Proxy Server
CN103544067A (zh) * 2013-10-12 2014-01-29 福建升腾资讯有限公司 客户端的flash插件与服务端IE浏览器的网页脚本交互的方法
CN105763893A (zh) * 2016-01-15 2016-07-13 北京傲游天下科技有限公司 一种下载页面播放器中播放的视频方法
CN106657206A (zh) * 2016-06-27 2017-05-10 南京理工大学 虚拟桌面web视频重定向的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIN BAO SONG等: ""Video Redirection Parameters Optimization Based on Hierarchical Genetic Optimization Strategy"", 《APPLIED MECHANICS AND MATERIALS》 *
林文崇 等: ""一种基于人眼视觉注意力的三维视频重定向方法"", 《光电子·激光》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471715A (zh) * 2019-08-20 2019-11-19 江西金格科技股份有限公司 Chrome内核浏览器自动加载PPAPI插件的方法
CN110471715B (zh) * 2019-08-20 2022-04-12 江西金格科技股份有限公司 Chrome内核浏览器自动加载PPAPI插件的方法
CN111309234A (zh) * 2020-02-26 2020-06-19 深信服科技股份有限公司 一种虚拟化应用截图方法、装置、服务器及可读存储介质
CN111526428A (zh) * 2020-04-26 2020-08-11 湖南麒麟信安科技有限公司 一种在云桌面中实现html5视频播放的方法、系统及介质
CN111526428B (zh) * 2020-04-26 2022-04-26 湖南麒麟信安科技股份有限公司 一种在云桌面中实现html5视频播放的方法、系统及介质
CN114780164A (zh) * 2022-02-28 2022-07-22 深圳开源互联网安全技术有限公司 基于浏览器插件筛选网页信息的方法及系统
CN114780164B (zh) * 2022-02-28 2023-04-25 深圳开源互联网安全技术有限公司 基于浏览器插件筛选网页信息的方法及系统

Also Published As

Publication number Publication date
CN110134450B (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
US20200197799A1 (en) Systems and methods for tagging content of shared cloud executed mini-games and tag sharing controls
CN110134450A (zh) 一种视频重定向方法,装置和计算机可读存储介质
US20200197802A1 (en) Methods and systems for cloud executing mini-games and sharing
US9233309B2 (en) Systems and methods for enabling shadow play for video games based on prior user plays
CN111773667B (zh) 直播游戏交互方法、装置、计算机可读介质及电子设备
US9451043B2 (en) Remote virtualization of mobile apps
US20150058407A1 (en) Systems, methods, and apparatuses for implementing the simultaneous display of multiple browser client cursors at each browser client common to a shared browsing session
CN108780448A (zh) 域内网页编辑
US20100017695A1 (en) Integrating an applet into a multi-page or multi-tasking web application to enable applet state to be automatically saved and restored
KR101725066B1 (ko) 클라우드 게이밍 환경에서의 데이터 처리 방법 및 시스템
CN106254553A (zh) 一种文件传输处理方法和装置
US11489845B1 (en) Speculative rendering
KR20180052677A (ko) 악성 브라우저 확장 비활성화
US11490147B2 (en) Methods and systems for displaying a (payment) form associated with a video
CN106714920A (zh) 对媒体内容的智能流传输
US20230029698A1 (en) Video interaction method and apparatus, electronic device, and computer-readable storage medium
CN105608078B (zh) 一种网页页面实时预览的方法和装置
CN106487793A (zh) 应用安装方法及装置
CN107018137A (zh) 一种Flash重定向方法及装置
CN107408237A (zh) 基于会议角色来引导会议加入者
US10156955B2 (en) Method and server for storing, encoding and uploading video or object captured from a webpage using a toolbar
CN104954860A (zh) 机顶盒、电子节目服务器、多媒体系统及数据交互方法
KR102137327B1 (ko) 스트리밍 동영상의 라이브 썸네일 제공 시스템
US20150350292A1 (en) Site management platform
CN103248961A (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