首页 / 专利库 / 视听技术与设备 / 视频编码层 / 基于H264的SPICE视频编解码扩展方法及系统

基于H264的SPICE视频编解码扩展方法及系统

阅读:281发布:2020-10-16

专利汇可以提供基于H264的SPICE视频编解码扩展方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于H264的新型SPICE视频编解码扩展方法,包括步骤:提供 支撑 系统运行所需要的额外补充包;提供SPICE协议客户端进行H264 解码器 扩展的能 力 ;提供SPICE协议 服务器 进行H264 编码器 扩展的能力;提供SPICE协议服务器和SPICE协议客户端进行H264能力协商;提供SPICE协议服务器提供H264和MJPEG的编码动态选择 算法 和上层配置 接口 。本发明大幅减少了SPICE协议在视频播放场景下的网络带宽占用,为SPICE协议提供更加丰富的视频编解码处理策略并保证兼容性,并提供良好的SPICE协议H264视频编解码配置方法或者接口,且不需要在 虚拟机 内部进行 软件 的二次开发。,下面是基于H264的SPICE视频编解码扩展方法及系统专利的具体信息内容。

1.一种基于H264的SPICE视频编解码扩展方法,其特征在于,包括如下步骤:
步骤1:提供支撑系统运行所需要的额外补充包;
步骤2:提供SPICE协议客户端进行H264解码器扩展的能
步骤3:提供SPICE协议服务器进行H264编码器扩展的能力;
步骤4:提供SPICE协议服务器和SPICE协议客户端进行H264能力协商;
步骤5:提供SPICE协议服务器提供H264和MJPEG的编码动态选择算法和上层配置接口
2.根据权利要求1所述的基于H264的SPICE视频编解码扩展方法,其特征在于,所述步骤2包括如下步骤:
步骤2.1:初始化H264解码器配置;
步骤2.2:使用H264解码器解码H264格式码流;
步骤2.3:使用CSC算法进行H264解码后数据的颜色转换;
步骤2.4:使用SPICE协议的显示框架进行最终的显示;
步骤2.5:释放H264解码器在视频解码过程中所申请的资源。
3.根据权利要求1所述的基于H264的SPICE视频编解码扩展方法,其特征在于,所述步骤3包括如下步骤:
步骤3.1:初始化H264编码器配置;
步骤3.2:利用CSC算法进行颜色转换;
步骤3.3:使用H264编码器编码原始视频数据;
步骤3.4:将编码后的H264数据添加到SPICE协议的数据传输队列。
4.根据权利要求1所述的基于H264的SPICE视频编解码扩展方法,其特征在于,所述步骤4包括如下步骤:
步骤4.1:SPICE协议客户端将自己的H264能力发送给SPICE协议服务器;
步骤4.2:SPICE协议服务器检查到SPICE协议客户端的H264能力后,SPICE协议服务器将自己的H264能力返回给SPICE协议客户端。
5.根据权利要求1所述的基于H264的SPICE视频编解码扩展方法,其特征在于,所述步骤5包括如下步骤:
步骤5.1:SPICE协议服务器识别到原始视频流
步骤5.2:SPICE协议服务器比较原始视频流的元数据和预设阈值,进而选取不同的视频目标编码算法;
步骤5.3:提供H264编码的全局控制参数,并提供虚拟机xml配置选项。
6.根据权利要求5所述的基于H264的SPICE视频编解码扩展方法,其特征在于,所述步骤5.2包括如下步骤:
步骤5.2.1:SPICE协议服务器获取到原始视频流后,假定原始视频流的视频长度和宽度分别为w和h,原始视频流的视频大小a即为a=w*h,SPICE协议视频的视频大小的预设阈值为x;假定当前网络的传输码率为b,SPICE协议视频网络传输码率阈值为y;
步骤5.2.2:执行如下判断:
步骤5.2.2.1:如果H264编码全局控制参数为1,则直接选取H264为视频目标编码算法;如果H264编码全局控制参数为0,则接下来执行步骤i1;
步骤i1:如果a大于x,或者b小于y,则选取H264为视频目标编码算法;
步骤i2:如果a小于等于x,且b大于等于y;则选取MJPEG为视频目标编码算法。
7.根据权利要求6所述的基于H264的SPICE视频编解码扩展方法,其特征在于,所述H264编码全局控制参数,是指QEMU-KVM或者Libvirt的H264编码全局控制参数。
8.根据权利要求7所述的基于H264的SPICE视频编解码扩展方法,其特征在于,所述步骤5.3具体为:
通过修改QEMU-KVM和Libvirt,以提供H264编码的全局控制参数,并提供虚拟机xml配置选项。
9.根据权利要求8所述的基于H264的SPICE视频编解码扩展方法,其特征在于,所述步骤5.3包括如下步骤:
步骤5.3.1:修改Libvirt的xml参数解析部分,添加H264的全局控制参数、视频编码阈值参数的xml参数定义,全局控制参数主要控制H264编码的开启或者关闭,视频编码阈值参数主要控制SPICE的视频编码算法的动态选取;
步骤5.3.2:修改QEMU-KVM库的命令行参数解析,添加对来自Libvirt库的H264的全局控制参数,完成对视频编码阈值参数的解析,解析完成后通过SPICE的接口将解析后的参数传递给SPICE协议服务器,以作为SPICE进行视频编码选取的依据。
10.一种基于H264的SPICE视频编解码扩展系统,其特征在于,所述基于H264的新型SPICE视频编解码扩展系统用于执行权利要求1至9中任一项所述的基于H264的SPICE视频编解码扩展方法。

说明书全文

基于H264的SPICE视频编解码扩展方法及系统

技术领域

[0001] 本发明属于信息技术(IT)领域,涉及一种典型的虚拟桌面交付协议软件,具体涉及基于H264的新型SPICE视频编解码扩展方法及相应的系统。

背景技术

[0002] 随着计算和电子商务的迅猛发展,企业信息化的规模和终端数量都给IT部提出了更高要求。在近几年中,桌面虚拟化借助云计算的势头以云桌面或者云终端的概念获得快速发展。
[0003] 桌面虚拟化依赖于服务器虚拟化,在数据中心的服务器上进行服务器虚拟化,生成大量的独立的桌面操作系统(虚拟机或者虚拟桌面),同时根据专有的虚拟桌面协议将桌面推送给终端设备。用户终端通过以太网登陆到虚拟主机上,只需要记住用户名和密码及网关信息,即可随时随地的通过网络访问自己的桌面系统,从而实现单机多用户。
[0004] 提供桌面虚拟化系统解决方案的公司非常多,主要包括微软、红帽、思杰、VMware以及国内的几家公司,各家大体实现方式类似,但具体技术存在较大差异。由于红帽的桌面虚拟化系统解决方案基于KVM虚拟化技术和SPICE协议技术,且源代码开放,社区活跃度极高,很多中小型厂商大多采用此方法。
[0005] 红帽的桌面虚拟化(或类似)解决方案简化了桌面管理,减少了基础设施成本,并提供了从受控数据中心对完整Windows和Linux桌面环境的访问权限。其基于强大、高性能的KVM(基于内核的虚拟机)系统管理程序技术,红帽的桌面虚拟化(或类似)解决方案凭借最高的虚拟机密度,提供了行业领先的可扩展性,同时带来了更高的效率并减少了复杂度。
[0006] SPICE是一项兼容BS/CS、高性能、动态的自适应远程桌面交付技术,能为终端用户带来和物理桌面个人计算机难以区分的体验。SPICE是为远程访问虚拟化桌面而专门设计和创建,它是红帽的桌面虚拟化(或类似)解决方案的默认桌面交付协议,将用户连接至虚拟化桌面。
[0007] 尽管红帽的桌面虚拟化(或类似)解决方案拥有非常多的优势,但其默认的虚拟桌面交付协议SPICE在视频应用场景下却有重大不足,其带宽占用非常高,这直接导致网络瓶颈的较易出现,因此无法应用到公有云环境。其根本原因是:SPICE协议默认使用MJPEG算法对从虚拟机的虚拟显卡中获取的原始RGB视频数据进行有损编码压缩,在保证一定质量的前提下,需要大量的网络带宽。
[0008] 关于MJPEG标准请参考ISO标准文档。
[0009] 经检索发现如下相关文献。
[0010] 期刊名称:《计算机工程与科学》第35卷第12期2013年12月
[0011] 文章名称:《基于SPICE协议的桌面虚拟化技术研究与改进方案》[0012] 摘要:随着云计算的不断发展,虚拟桌面解决方案VDl日益成熟,桌面虚拟化成为典型的云计算应用。虚拟桌面技术能够有效地解决传统个人计算机使用过程中存在的诸多问题,降低企业的运维成本,受到业界的广泛关注。SPICE协议作为开源的虚拟桌面传输协议具有其独特的技术架构和应用特性,通过SPICE协议能够在服务器和远程用户终端上部署虚拟桌面,并提供性能比较好的用户体验QoE。但是,SPICE协议本身目前还存在许多不足之处,不能适用于带宽较低的网络环境。在讨论了虚拟桌面传输协议的原理以及影响虚拟桌面性能的因素的基础上,详细分析了SPICE协议的架构以及核心技术,指出目前SPICE协议的不足,并提出了保证QoE情况下的改进方案,对于当前桌面虚拟化技术的发展将起到一定的指导作用。
[0013] 技术要点比较:
[0014] 1.该文章提出对SPICE的视频处理进行MJPEG2000编解码扩展,但未说明具体方案及实施方法,且MJPEG2000的算法压缩率远远不及H264的算法压缩率。参考资料:“H.264内编码和JPEG2000对静止图像进行编码的性能比较”,记载于《中国图象图形学报》第11卷第3期2006年3月,该参考资料分析了H264的帧内编码和JPEG2000的原理,对比了两者的压缩率,JPEG2000处于劣势,另外H264还支持帧间编码,可以大幅度提高压缩率。
[0015] 关于H264和JPEG2000的技术细节可参考ISO标准文档。
[0016] 2.该文章提出对SPICE的视频处理方案进行调整,但未说明具体方案及实施方法,其参照了RDP协议的视频重定向原理,但实现难度较大,复杂度高且兼容性差。这种方法和本发明为两种不同的思路。(这种方法的难度和复杂度主要体现在需要为不同的视频格式数据提供解析并转发,且需要客户端拥有不同类型的视频解码能;其兼容性差是因为其具有RDP类似的特性,即视频重定向可能需要依赖某一种特定的播放器)发明内容
[0017] 针对现有技术中的缺陷,本发明的目的是提供一种基于H264的新型SPICE视频编解码扩展方法。本发明的目的主要为了降低SPICE视频播放过程中的网络带宽,且为SPICE协议提供灵活的视频编解码配置方案和动态算法选择,以达到计算资源和网络带宽的合理分配。
[0018] 针对上述现有技术中的缺陷,本发明要解决的技术问题体现在以下几点:
[0019] 1)SPICE协议服务器端使用X264编码器进行编码扩展;
[0020] 2)SPICE协议客户端使用FFMPEG编解码器进行解码扩展;
[0021] 3)SPICE协议服务器和客户端进行H264能力协商,以保证兼容性;
[0022] 4)SPICE协议服务器提供H264和MJPEG的编码动态选择算法和Libvirt配置接口,以方便使用。
[0023] 根据本发明提供的一种基于H264的新型SPICE视频编解码扩展方法,包括如下步骤:
[0024] 步骤1:提供支撑系统运行所需要的额外补充包;
[0025] 步骤2:提供SPICE协议客户端进行H264解码器扩展的能力;
[0026] 步骤3:提供SPICE协议服务器进行H264编码器扩展的能力;
[0027] 步骤4:提供SPICE协议服务器和SPICE协议客户端进行H264能力协商;
[0028] 步骤5:提供SPICE协议服务器提供H264和MJPEG的编码动态选择算法和上层配置接口。
[0029] 优选地,所述步骤2包括如下步骤:
[0030] 步骤2.1:初始化H264解码器配置;
[0031] 步骤2.2:使用H264解码器解码H264格式码流;
[0032] 步骤2.3:使用CSC算法进行H264解码后数据的颜色转换;
[0033] 步骤2.4:使用SPICE协议的显示框架进行最终的显示;
[0034] 步骤2.5:释放H264解码器在视频解码过程中所申请的资源。
[0035] 优选地,所述步骤3包括如下步骤:
[0036] 步骤3.1:初始化H264编码器配置;
[0037] 步骤3.2:利用CSC算法进行颜色转换;
[0038] 步骤3.3:使用H264编码器编码原始视频数据;
[0039] 步骤3.4:将编码后的H264数据添加到SPICE协议的数据传输队列。
[0040] 优选地,所述步骤4包括如下步骤:
[0041] 步骤4.1:SPICE协议客户端将自己的H264能力发送给SPICE协议服务器;
[0042] 步骤4.2:SPICE协议服务器检查到SPICE协议客户端的H264能力后,SPICE协议服务器将自己的H264能力返回给SPICE协议客户端。
[0043] 优选地,所述步骤5包括如下步骤:
[0044] 步骤5.1:SPICE协议服务器识别到原始视频流
[0045] 步骤5.2:SPICE协议服务器比较原始视频流的元数据和预设阈值,进而选取不同的视频目标编码算法(主要比较项有码率、视频原始大小等);
[0046] 步骤5.3:提供H264编码的全局控制参数,并提供虚拟机xml配置选项。
[0047] 优选地,所述步骤5.2包括如下步骤:
[0048] 步骤5.2.1:SPICE协议服务器获取到原始视频流后,假定原始视频流的视频长度和宽度分别为w和h,原始视频流的视频大小a即为a=w*h,SPICE协议视频的视频大小的预设阈值为x;假定当前网络的传输码率为b,SPICE协议视频网络传输码率阈值为y;
[0049] 步骤5.2.2:执行如下判断:
[0050] 步骤5.2.2.1:如果H264编码全局控制参数为1,则直接选取H264为视频目标编码算法;如果H264编码全局控制参数为0,则接下来执行步骤i1;
[0051] 步骤i1:如果a大于x,或者b小于y,则选取H264为视频目标编码算法;
[0052] 步骤i2:如果a小于等于x,且b大于等于y;则选取MJPEG为视频目标编码算法。
[0053] 优选地,所述H264编码全局控制参数,是指QEMU-KVM或者Libvirt的H264编码全局控制参数。
[0054] 优选地,所述步骤5.3具体为:
[0055] 通过修改QEMU-KVM和Libvirt,以提供H264编码的全局控制参数,并提供虚拟机xml配置选项。
[0056] 优选地,所述步骤5.3包括如下步骤:
[0057] 步骤5.3.1:修改Libvirt的xml参数解析部分,添加H264的全局控制参数、视频编码阈值参数的xml参数定义,全局控制参数主要控制H264编码的开启或者关闭,视频编码阈值参数主要控制SPICE的视频编码算法的动态选取;
[0058] 步骤5.3.2:修改QEMU-KVM库的命令行参数解析,添加对来自Libvirt库的H264的全局控制参数,完成对视频编码阈值参数的解析,解析完成后通过SPICE的接口将解析后的参数传递给SPICE协议服务器,以作为SPICE进行视频编码选取的依据。
[0059] 根据本发明提供的一种基于H264的新型SPICE视频编解码扩展系统,所述基于H264的新型SPICE视频编解码扩展系统用于执行上述的基于H264的新型SPICE视频编解码扩展方法。
[0060] 与现有技术相比,本发明具有如下的有益效果:
[0061] 1)通过步骤2和步骤3,可以大幅减少了SPICE协议在视频播放场景下的网络带宽占用;
[0062] 2)通过步骤4,可以为SPICE协议提供更加丰富的视频编解码处理策略并保证兼容性;
[0063] 3)通过步骤5,可以提供良好的SPICE协议H264视频编解码配置方法或者接口(Libvirt层)。
[0064] 4)本发明不需要在虚拟机内部进行软件的二次开发,其利用SPICE协议获取到桌面图像数据,并通过图像区域的刷新频率来识别图像数据中的原始视频流(即RGB数据),桌面图像数据中已包含了网页视频或者视频播放器所展现的视频内容,因此其兼容所有的视频播放器和浏览器;本发明通过传输H264格式的视频数据来改善体验和降低网络带宽,协议客户端只需要拥有H264的视频解码器即可。附图说明
[0065] 通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0066] 图1为本发明实施的框架图。
[0067] 图2为本发明实施的流程图
[0068] 图3为步骤5.3的方法图。

具体实施方式

[0069] 下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0070] 下面对相关概念进行说明。
[0071] H264:H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式标准。
[0072] SPICE:有多层含义,在此主要指Simple Protocol for independent Computing Environment的缩写,即:独立计算环境的简单协议,一个开放的远程计算解决方案,使得客户端可以访问远程机器桌面和设备(比如键盘鼠标,audio和USB)。
[0073] KVM:有多层含义,在此主要指Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模,自Linux2.6.20之后集成在Linux的各个主要发行版本中。
[0074] MJPEG:MJPEG全名为"Motion Joint Photographic Experts Group",是一种视频编码格式,中文名称翻译为“技术即运动静止图像(或逐帧)压缩技术”。
[0075] X264:X264是H264视频格式编码的一种开放源代码的实现项目。
[0076] FFMPEG:FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。默认支持H264视频格式解码。
[0077] Libvirt:Libvirt是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,其旨在为包括KVM在内的各种虚拟化工具提供一套方便、可靠的编程接口。
[0078] QEMU-KVM:在一定意义上指代KVM虚拟化技术。
[0079] CSC:色彩空间转换器(Color Space Converter),用于不同格式的颜色之间的转换。例如RGB格式和YUV格式之间的相互转换。
[0080] QoE:Quality of Experience,是通信领域的概念;它可以理解为用户体验或者用户感知,即终端用户对系统提供的业务性能的主观感受。
[0081] 下面对根据本发明提供的方法进行详细描述。所述方法包括如下步骤:
[0082] 步骤1:提供支撑系统运行所需要的额外补充包;
[0083] 步骤2:提供SPICE协议客户端进行H264解码器扩展的能力;步骤3:提供SPICE协议服务器端进行H264编码器扩展的能力;
[0084] 步骤4:提供SPICE协议服务器和SPICE协议客户端进行H264能力协商;
[0085] 步骤5:提供SPICE协议服务器提供H264和MJPEG的编码动态选择算法和上层配置接口。
[0086] 其中,所述步骤2和步骤3的执行顺序可以没有限定,例如,可以先执行步骤2再执行步骤3,也可以先执行步骤3再执行步骤2,还可以同时并行执行步骤2和步骤3。
[0087] 其中,步骤1包括如下步骤:
[0088] 步骤1.1:使用成熟的打包软件对本发明所依赖的软件进行rpm或者deb包制作。
[0089] 步骤2包括如下步骤:
[0090] 步骤2.1:初始化H264解码器配置;
[0091] 步骤2.2:使用H264解码器解码H264格式码流;
[0092] 步骤2.3:使用CSC算法进行H264解码后数据的颜色转换;
[0093] 步骤2.4:使用SPICE协议的显示框架进行最终的显示;
[0094] 步骤2.5:释放H264解码器在视频解码过程中所申请的资源;
[0095] 步骤3包括如下步骤:
[0096] 步骤3.1:初始化H264编码器配置;
[0097] 步骤3.2:利用CSC算法进行颜色转换;
[0098] 步骤3.3:使用H264编码器编码原始视频数据;
[0099] 步骤3.4:将编码后的H264数据添加到SPICE协议的数据传输队列;
[0100] 步骤4包括如下步骤:
[0101] 步骤4.1:SPICE协议客户端将自己的H264能力发送给SPICE协议服务器端;
[0102] 步骤4.2:SPICE协议服务器端检查到SPICE协议客户端的H264能力后,将自己的H264能力返回给客户端;
[0103] 步骤5包括如下步骤:
[0104] 步骤5.1:SPICE协议服务器端通过自己的启发式算法识别到视频流;
[0105] 步骤5.2:SPICE协议服务器端比较视频流的元数据和预设阈值,选取不同的视频编码算法,主要对比项有码率、视频原始大小等。
[0106] SPICE协议服务器端获取到原始视频流后,假定视频长度和宽度分别为w和h,视频大小即为a=w*h,协议视频大小阈值为x;假定当前网络的传输码率为b,协议视频网络传输码率阈值为y。
[0107] 算法策略:
[0108] 如果QEMU-KVM或者Libvirt的H264编码全局控制参数为1,则直接选取H264为视频目标编码算法;如果参数为0则进行下一步;
[0109] 如果a大于x,或者b小于y;则选取H264为视频目标编码算法;
[0110] 如果a小于x,且b大于y;则选取MJPEG为视频目标编码算法;
[0111] 步骤5.3:修改QEMU-KVM和Libvirt,以提供H264编码的全局控制参数,并提供虚拟机xml配置选项。
[0112] 修改Libvirt的xml参数解析部分,添加H264的全局控制参数,视频编码阈值参数的xml参数定义,全局控制参数主要控制H264编码的开启或者关闭,视频编码阈值参数主要控制SPICE的视频编码算法的动态选取。
[0113] 修改QEMU-KVM库的命令行参数解析,添加对来自Libvirt库的H264的全局控制参数,视频编码阈值参数的解析,解析完成后通过SPICE的接口将解析后的参数传递给SPICE服务器端,以作为SPICE进行视频编码选取的依据。
[0114] 注意:SPICE协议内部已包含了H264相关参数的默认配置,如果Libvirt并未配置这些参数,SPICE将使用默认值(默认H264的全局控制参数为1,视频编码阈值为:视频大小阈值为640*480,网络传输码率阈值为5Mbps)
[0115] 以上对本发明提供的基于H264的新型SPICE视频编解码扩展方法,本发明还提供相应的基于H264的新型SPICE视频编解码扩展系统。
[0116] 下面对本发明的一个优选例进行详细描述。
[0117] 步骤1:采用dpkg和rpmbuild打包软件对本发明实施所依赖的额外软件包进行制作,以便进行依赖包的安装和升级工作;额外软件包主要包含X264的安装包和FFMPEG的安装包。此处并未限制在特定的操作系统上进行本发明的实施。
[0118] 步骤2:使用FFMPEG在SPICE协议的客户端上实现H264的解码功能。
[0119] 步骤2.1:使用FFMPEG初始化H264解码的上下文,并根据SPICE协议的服务器端发送的视频属性信息进行H264解码器参数设置,之后查询FFMPEG中的H264编码器,选取合适的编码器,最后打开编码器并等待H264数据,以进行解码。
[0120] 步骤2.2:使用FFMPEG的解码函数进行H264数据解码,由于步骤2.1已经制定了特定的H264解码器,因此这里将执行标准的H264解码。
[0121] 步骤2.3:使用FFMPEG的颜色转换函数对步骤2.2解码输出的数据进行格式转换,以便SPICE协议客户端能正确显示视频。
[0122] 步骤2.4:使用SPICE协议所依赖的PIXMAN(一种软件像素渲染库)库进行显示,显示的源数据的格式需要为RGB格式。
[0123] 步骤2.5:对H264解码完成后的资源进行释放,以避免造成资源浪费。
[0124] 步骤3:采用X264实现SPICE协议服务器端的H264编码功能。
[0125] 步骤3.1:根据SPICE协议的启发式算法识别的流信息初始化X264的编码器配置,主要参考属性包含视频的大小、码率、当前网络状况以及预期视频压缩比。
[0126] 步骤3.2:利用私有颜色转换算法对SPICE协议的视频流格式(RGB格式)进行YUV转换,以便满足X264的源数据格式要求。
[0127] 步骤3.3:使用X264的编码函数进行最终的编码,编码后的数据暂存于内存中;
[0128] 步骤3.4:利用SPICE协议的底层数据传输框架对H264视频流进行传输,此处只需要将步骤3.3中的内存暂存数据置于SPICE协议的数据传输队列即可(SPICE协议客户端将会通过消息中的视频类型进行视频流分类处理)
[0129] 步骤4:主要参照SPICE已有的能力协商机制来实现SPICE协议C/S端H264能力协商。SPICE连接由客户端发起:
[0130] 步骤4.1:使用SPICE的能力发送函数将H264发送给服务器;
[0131] 步骤4.2:在SPICE协议服务器端收到客户端的H264后将自己的H264能力值发送给客户端(H264能力值用于表示是否拥有H264的编解码能力),当然也可能发送空置,以表示SPICE协议服务器端没有H264编码能力。这样就实现了双向的H264能力交换。
[0132] 步骤5:利用SPICE协议的启发式算法进行视频流识别,并在步骤5.2中对当前的网络和CPU压力进行评估,同时兼顾视频流的大小、码率,最终选择合适的且不同配置的视频编码算法;步骤5.3主要为了方便用户配置,提供了基于Libvirt的配置方法,用户可在虚拟机的xml配置文件中使用H264配置选项进行H264视频编码配置,详情请参照图3。
[0133] 具体的实现方法如下:
[0134] 修改Libvirt的xml参数解析部分,添加H264的全局控制参数、视频编码阈值参数的xml参数定义,全局控制参数主要控制H264编码的开启或者关闭,视频编码阈值参数主要控制SPICE的视频编码算法的动态选取。
[0135] 修改QEMU-KVM库的命令行参数解析,添加对来自Libvirt库的H264的全局控制参数,完成对视频编码阈值参数的解析,解析完成后通过SPICE的接口将解析后的参数传递给SPICE协议服务器端,以作为SPICE进行视频编码选取的依据。
[0136] 以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈