云终端虚拟桌面视频播放方法

xiaoxiao2020-9-10  8

专利名称:云终端虚拟桌面视频播放方法
技术领域
本发明涉及视频数据处理技术领域,尤其是一种云终端虚拟桌面视频播放方法。
背景技术
目前,云端播放视频时,通常都是采用在虚拟机中先用播放器解码并显视视频图象,之后服务端将显视出来的图象数据编码压缩,之后云端再把编码后的视频数据发到客户端进行解码。这种视频处理方式视频数据的编码压缩工作多由服务器CPU完成,多台云终端同时播放视频,会导致服务端CPU占用率较高,使播放的视频,卡屏,抖屏现象严重,视频播放不流畅。并且制约了一台服务器能拖带的云终端的数目。发明内容
本发明解决的技术问题在于提供一种云终端虚拟桌面视频播放方法,有效解决云终端播放视频时,服务器CPU被大量用于视频解码、压缩的问题。
本发明解决上述技术问题的技术方案是:在启动虚拟机时虚拟一个硬件解码设备VAV ;通过该设备来获取一个视频数据,虚拟设备把视频数据转发到宿主机中。
所述的虚拟的硬件解码设备是PCI接口标准设备,为宿主机中的内存,通过该内存传送视频数据到宿主机中。·
所述的VAV硬件结构包含:PCI配置头、设备的RAM和ROM、设备的VRAM、IO中断以及两个命令环;通过VRAM存储视频数据,通过IO中断和命令环实现虚拟机和宿主机的通 目。
在虚拟机中设有一个虚拟硬件解码驱动,提供一个统一的视频解码API ;通过这个驱动提供一套统一的视频解码接口,应用层的播放软件通过调用这个接口把数据放入到虚拟设备中,并通过管道方式和共享内存的方式通知宿主服务器把视频数据取走,宿主机取走数据后,通过中断通知虚拟机的驱动;实现虚拟机和宿主机进行交互。
在虚拟机中设有一个虚拟硬件解码驱动,提供一个统一的视频解码API ;通过这个驱动提供一套统一的视频解码接口,应用层的播放软件通过调用这个接口把数据放入到虚拟设备中,并通过管道方式和共享内存的方式通知宿主服务器把视频数据取走,宿主机取走数据后,通过中断通知虚拟机的驱动;实现虚拟机和宿主机进行交互。
虚拟设备的驱动通过调用虚拟设备将解码的视频数据传递到宿主主机上,主机通过sock发送到客户端。
安装实施的具体步骤如下:
(I)、在服务器主机中安装Iinux操作系统,作为宿主机;
(2)、通过虚拟机软件安装虚拟操作系统如:xp/window 7/linux等客户操作系统;
(3)、启动虚拟机,在启动参数中打开VAV设备,虚拟机会创建一个VAV设备;
(4)、进入到客户操作系统中安装VAV设备的驱动程序;
(5)、在虚拟机中安装改写的gstrame视频播插件;
(6)、终端通过主机的IP地址和端口号连入到虚拟桌面中看视频。
本发明是在虚拟机中虚拟一个硬件解码设备,虚拟硬件解码设备驱动提供一套统一的VVAAPI (Virtual Video Acceleration AP1:虚拟视频加速API),当虚拟机中播放视频时,虚拟机中的播放器软件通过VAAPI调用虚拟的硬件设备时,把要解码的数据直接发送到客户端,由客户端进行解码。这样就避免了由服务端进行解码和压缩的工作,降底了服务器的负载。
通过以上技术让虚拟机和宿主机本身不用做视频的解码和压缩,相当于直接将视频数据直接发送到客户端进行解码播放,提升了视频播放的流畅度从而提高了整个虚拟机的用户体验。同时也降底宿主服务器的负载,使宿主机可以开启更多的虚拟机,从而大提高了宿主服务器资源的使用率,降底了成本。


:
下面结合附图对本发明进一步说明:
图1是本发明虚拟机和宿主机结构图2是本发明虚拟视频加速设备与驱动工作原理图3是本发明虚拟视频加速设备视频数据流图4是本发明视频播放器的改写结构图。
具体实施方式
如图所示,本发明在启动虚拟机时虚拟一个硬件解码设备VAV(Virtual VideoAcceleration:虚拟视频加速设备);通过虚拟一个硬件解码设备来获取一个视频数据,虚拟设备把视频数据转发到宿主机中。虚拟的硬件设备是PCI接口标准设备的,在宿主机中其实就是一块内存,通过这个内存便可以传送视频数据到宿主机中。
VAV硬件结构包含:PCI配置头,设备的RAM (random access memory随机存储器)和 ROM (Read-Only Memory:只读内存),设备的 VRAM (Video Random Access Memory:显存,帧存储器),10中断以及两个命令环。通过VRAM可以存储视频数据,通过10中断和命令环可以实现虚拟机和宿主机的通信。
在虚拟机中编写一个虚拟硬件解码驱动,提供一个统一的视频解码API (VVAAPI);通过这个驱动提供一套统一的视频解码接口,应用层的播放软件通过调用这个接口把数据放入到虚拟设备中,并通过管道方式和共享内存的方式通知宿主服务器把视频数据取走,宿主机取走数据后,通过中断通知虚拟机的驱动。通过这个驱动可以让虚拟机和宿主机进行交互。
虚拟设备的驱动通过调用虚拟设备把解码的视频数据传递到宿主主机上,主机通过sock发送到客户端。技术效果:宿主机的得到的视频数据是视频文件中的原始的已经编码的数据,这时宿主机并对数据进行解码,而是通过sock发送到客户端,客户端将数据进行解码和显视。
如附图所示;安装实施的具体步骤如下:
(I)、在服务器主机中安装Iinux操作系统,作为宿主机;
(2)、通过虚拟机软件安装虚拟操作系统如:xp/window 7/linux等客户操作系统;
(3)、启动虚拟机,在启动参数中打开VAV设备,虚拟机会创建一个VAV设备;
(4)、进入到客户操作系统中安装VAV设备的驱动程序;
(5)、在虚拟机中安装改写的gstrame视频播插件;
(6)、终端通过主机的IP地址和端口号连入到虚拟桌面中看视频。
以下是各个环节中主要实现方式:
如图1所示,是操作系统硬件虚拟化的简单分层架构a)、APPS(applications:应用程序)是指视频播放器;
b) >GUEST OS (guest operationsyste:客户操作系统,就是指所虚拟的操作系统)是虚拟的客户操作系统。在客户操作系统中要安装VAV (Virtual Video Acceleration:虚拟视频加速)的驱动程序。
c)、Linux_base是服务器主机,安装的Iinux操作系统,一个进程虚拟一个客户操作系统,在这里有许多的虚拟设备。其中加入虚拟VAV硬件解码设备。
如图2在宿主机的Iinux系统中启动虚拟机时,虚拟一个VAV视频解码硬件,这个虚拟硬件是PCI接口标准的,设备名字取为VAV PCI device ((Virtual VideoAcceleration PCI device:PCI虚拟视频加速设备),这个虚拟设备中包含有命令环,视频缓冲区,中断与10端口。虚拟这个设备时主要做的工作如下:
a)、初始化和映射设备的RAM,ROM和VRAM到物理内存。
b)、映射10端口到物理内存,并捆定处理10读写的函数,这些函数主要是设备的重设置,处理10中断,通知读视频数据以及写命令环。
C)、命令环的初始化,这个命令环主要是消息通知,通过这个环可以取得当前虚拟硬件的状态。
d)、虚拟设备通过 VAV work thead (Virtual Video Acceleration work thread:虚拟视频加速工作线程)接口与宿主机中虚拟机进程进行通信。
e)、宿主机中的虚拟机进程通过 VAV interface (Virtual Video Accelerationinterface:虚拟图形加速接口)结构进行调用虚拟设备。
如图2在虚拟机中的VAV(Virtual Video Acceleration work:虚拟视频加速)驱动主要是实现视频数据的转发功能,把数据传到宿主要中。VAV API则是驱动对外提供的操作接口。
如图3显示了视频数据流以及虚拟设备和各驱动的数据流。
a)、视频播放器读取视频文件中数据。
b)、读取一贞视频数据,并调用VAV API把数据放入到VAV驱动中。
c)、VAV驱动把视频数据写入到虚拟设备中。
d)、虚拟设备通过VAV worker发消息通知通知工作线程取视频数据。
e)、工作线程取完数据后通过VAV设备的VAV interface通知VAV设备视频数据已经取出。释放相应的数据和命令环。
f)、VAV设备通过中断通知客户操作系统的VAV驱动,做相应的处理。
为了适应我们新VAV虚拟解码驱动,则要对视频播放器进行改写,如图4中采用开源视频播放器框架,在原有的框架上增加VAV视频播放插件,在插件中主要是实现将调用VAV API将视频数据写入到VAV驱动中。
在终端接收到视频数据后,做视频解码工作,在终端中如果芯片支持的硬件解码则调用相应的硬件模块进行解码,如果芯片不支持的视频格式则调用软件解码。这样可以最大的增强用户体验。
权利要求
1.一种云终端虚拟桌面视频播放方法,其特征在于:在启动虚拟机时虚拟一个硬件解码设备VAV ;通过该设备来获取一个视频数据,虚拟设备把视频数据转发到宿主机中。
2.根据权利要求1所述的云终端虚拟桌面视频播放方法,其特征在于:所述的虚拟的硬件解码设备是PCI接口标准设备,为宿主机中的内存,通过该内存传送视频数据到宿主机中。
3.根据权利要求1或2所述的云终端虚拟桌面视频播放方法,其特征在于:所述的VAV硬件结构包含=PCI配置头、设备的RAM和ROM、设备的VRAM、IO中断以及两个命令环;通过VRAM存储视频数据,通过IO中断和命令环实现虚拟机和宿主机的通信。
4.根据权利要求1或2所述的云终端虚拟桌面视频播放方法,其特征在于:在虚拟机中设有一个虚拟硬件解码驱动,提供一个统一的视频解码API ;通过这个驱动提供一套统一的视频解码接口,应用层的播放软件通过调用这个接口把数据放入到虚拟设备中,并通过管道方式和共享内存的方式通知宿主服务器把视频数据取走,宿主机取走数据后,通过中断通知虚拟机的驱动;实现虚拟机和宿主机进行交互。
5.根据权利要求3所述的云终端虚拟桌面视频播放方法,其特征在于:在虚拟机中设有一个虚拟硬件解码驱动,提供一个统一的视频解码API ;通过这个驱动提供一套统一的视频解码接口,应用层的播放软件通过调用这个接口把数据放入到虚拟设备中,并通过管道方式和共享内存的方式通知宿主服务器把视频数据取走,宿主机取走数据后,通过中断通知虚拟机的驱动;实现虚拟机和宿主机进行交互。
6.根据权利要求4所述的云终端虚拟桌面视频播放方法,其特征在于:虚拟设备的驱动通过调用虚拟设备将解码的视频数据传递到宿主主机上,主机通过sock发送到客户端。
7.根据权利要求5所述的云终端虚拟桌面视频播放方法,其特征在于:虚拟设备的驱动通过调用虚拟设备将解码的视频数据传递到宿主主机上,主机通过sock发送到客户端。
8.根据权利要求6所述的云终端虚拟桌面视频播放方法,其特征在于:安装实施的具体步骤如下: (1)、在服务器主机中安装Iinux操作系统,作为宿主机; (2)、通过虚拟机软件安装虚拟操作系统如:xp/window7/linux等客户操作系统; (3)、启动虚拟机,在启动参数中打开VAV设备,虚拟机会创建一个VAV设备; (4)、进入到客户操作系统中安装VAV设备的驱动程序; (5)、在虚拟机中安装改写的gstrame视频播插件; (6)、终端通过主机的IP地址和端口号连入到虚拟桌面中看视频。
9.根据权利要求7所述的云终端虚拟桌面视频播放方法,其特征在于:安装实施的具体步骤如下: (1)、在服务器主机中安装Iinux操作系统,作为宿主机; (2)、通过虚拟机软件安装虚拟操作系统如:xp/window7/linux等客户操作系统; (3)、启动虚拟机,在启动参数中打开VAV设备,虚拟机会创建一个VAV设备; (4)、进入到客户操作系统中安装VAV设备的驱动程序; (5)、在虚拟机中安装改写的gstrame视频播插件; (6)、终端通过主机的IP地址和端口号连入到虚拟桌面中看视频。
全文摘要
本发明涉及视频数据处理技术领域,尤其是一种云终端虚拟桌面视频播放方法。本发明在启动虚拟机时虚拟一个硬件解码设备VAV;通过该设备来获取一个视频数据,虚拟设备把视频数据转发到宿主机中。本发明有效克服了云终端播放的视频由服务器CPU进行解码、压缩所导致的服务器拖带云终端数不多的问题。可以广泛应用于提供云终端视频服务的云计算中。
文档编号H04N21/4405GK103139634SQ20111039066
公开日2013年6月5日 申请日期2011年11月30日 优先权日2011年11月30日
发明者黄井优, 肖雄伟, 曾华山, 李涛, 刘小瑞, 何剑荣, 季统凯 申请人:国云科技股份有限公司

最新回复(0)