一种Qemu虚拟机远程音频传输方法及装置与流程
本发明涉及虚拟机技术领域,尤其涉及一种qemu虚拟机远程音频传输方法及装置,用于更广泛的实现虚拟机远程音频传输。
背景技术:
qemu作为云计算中一种比较成熟的虚拟化方案,可以提供包括服务器虚拟化或桌面虚拟化,并得到了多种平台的支持。
如在proxmoxve虚拟化平台中,使用了kvm-qemu作为虚拟机监视器以提供桌面云服务。kvm-qemu中配置有redhat的开源远程方案spice,spice可以提供友好的图像显示、录音和播放等功能实现。但在一些不适用spice协议的情况下,如vnc(virtualnetworkconsole虚拟控制)桌面下,用户只能获得图像而不能获得声音,其原因是vnc并不具有声音通道。
因此,有必要开发一种适用范围更广的qemu虚拟机远程音频传输方法。
技术实现要素:
为解决背景技术中所提到的技术问题,本发明提出了一种qemu虚拟机远程音频传输方法,其中,所述方法包括:启动qemu虚拟机,自动配置驱动程序;检测所述驱动程序的运行环境;响应于所述运行环境不具有音频传输能力,启动qemu虚拟机中的pulseaudio插件,以通过网络传输音频信号。
在一个或多个实施例中,所述检测所述驱动程序的运行环境,包括:检测运行环境是否支持qemu虚拟机中的音频传输协议。
在一个或多个实施例中,所述启动qemu虚拟机中的pulseaudio插件,以通过网络传输音频信号,包括:获取qemu虚拟机的vdi后端驱动中的音频信号;去除所述音频信号中对应通信协议的附加部分,保留音频数据部分;利用pulseaudio插件调制所述音频数据,生成新的音频信号,以通过网络传输所述新的音频信号。
在一个或多个实施例中,所述利用pulseaudio插件调制所述音频数据包括:利用pulseaudio插件对所述音频数据进行脉冲编码调制。
在一个或多个实施例中,所述方法还包括:对qemu虚拟机程序进行源码编译,增加pulseaudio插件。
其中,所述qemu虚拟机远程音频传输装置包括:控制模块,所述控制模块配置用于启动qemu虚拟机,自动配置驱动程序;检测模块,所述检测模块配置用于检测所述驱动程序的运行环境;网络通信模块,所述网络通信模块配置用于响应于所述运行环境不具有音频传输能力,启动qemu虚拟机中的pulseaudio插件,以通过网络传输音频信号。
在一个或多个实施例中,所述检测模块还配置用于:检测所述驱动程序的运行环境是否支持所述qemu虚拟机中的音频通信协议。
在一个或多个实施例中,所述网络通信模块还配置用于,控制所述pulseaudio插件执行以下步骤,所述步骤包括:获取qemu虚拟机的vdi后端驱动中的音频信号;去除所述音频信号中对应通信协议的附加部分,保留音频数据部分;调制所述音频数据,生成新的音频信号,以通过网络传输所述新的音频信号。
在一个或多个实施例中,所述网络通信模块还配置用于:对所述音频数据进行脉冲编码调制。
在一个或多个实施例中,所述pulseaudio插件通过对所述qemu虚拟机程序进行源码编译配置。
本发明的有益效果包括:本发明通过在qemu虚拟机中增加pulseaudio插件,使其可以不受设备本身接口或音频传输协议的限制,而通过网络实现音频数据的传输,大大增加了本发明的qemu虚拟机远程音频传输方法的适用范围。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的qemu虚拟机远程音频传输方法的流程示意图;
图2为本发明的qemu虚拟机的原理示意图;
图3为本发明的qemu虚拟机远程音频传输装置的结构示意图;
图4为本发明的qemu虚拟机远程音频传输系统的组成示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
为了提升qemu虚拟机的适用范围,本发明提出了一种qemu虚拟机远程音频传输方法及装置,用以在qemu虚拟机的运行环境不支持音频通信协议的情况下实现远程通话。下面,将结合附图对本发明进行更加详细的说明。
图1为本发明的qemu虚拟机远程音频传输方法的流程示意图。在本实施例中,qemu虚拟机远程音频传输方法的流程包括:步骤s1、启动qemu虚拟机,自动配置驱动程序;步骤s2、检测驱动程序的运行环境;步骤s3、响应于运行环境不具有音频传输能力,启动qemu虚拟机中的pulseaudio插件,以通过网络传输音频信号。
具体的,当qemu虚拟机创建成功后,qemu会为虚拟机模拟pci(peripheralcomponentinterconnect外设部件互连标准)虚拟声卡,虚拟声卡可以接受虚拟机内部的pcm(pulsecodemodulation脉冲编码调制)声音数据,pcm数据通过虚拟声卡交给qemu的vdi(virtualdesktopinfrastructure虚拟桌面基础架构)后端,qemu虚拟机可以支持多种后端驱动,包括oss(openrationsupportsystems操作支持系统)、pulseadudio、wav(音频格式)和spice等。音频的发送实际是从后端驱动发送给客户端的。其中,pulseaudio是一种开源软件,用于后台进程从一个或多个音源(进程或输入设备)接受声音输入然后重定向声音到一个或多个槽(声卡,远程网络pulseaudio服务,或其他进程)。pulseaudio的一个目的是重定向所有声音流,包括那些试图访问硬件的进程pulseaudio通过提供适配器给那些使用不同的声音系统。本发明通过当运行qemu虚拟机的运行环境不具有音频传输能力时,利用pulseaudio插件将音频数据通过网络传送到远端的客户端。其中,接收设备或平台应具有相应的pulseaudio插件。其中,检测所述驱动程序的运行环境,包括:检测运行环境是否支持qemu虚拟机中的音频传输协议,或运行qemu虚拟的设备是否不具有音频输出接口等。
在进一步的实施例中,启动qemu虚拟机中的pulseaudio插件,以通过网络传输音频信号,包括:获取qemu虚拟机的vdi后端驱动中的音频信号;去除音频信号中对应通信协议的附加部分,保留音频数据部分;利用pulseaudio插件调制所述音频数据,生成新的音频信号,以通过网络传输所述新的音频信号。
具体的,图2为本发明的qemu虚拟机的原理示意图。如图2所示,在qemu虚拟机的后端中具有多种音频传输方式,如以oss、spice、wav和dsound等。qemu虚拟机的vdi后端一方面通过声卡驱动中的虚拟声卡获取音频数据,另一方法利用上述各音频传输方式对音频数据进行调制,从而实现音频信号的传输。然而上述音频传输方式均有各自的局限性,例如当qemu虚拟机的驱动运行在vnc操作环境中,由于vnc不适用spice协议,因此无法利用spice实现音频传输。又例如,当运行qemu虚拟机的设备不具有音频输出接口时,即不具有音频传输通道时,上述各音频传输方法均不能实现对音频数据的传输。而本发明通过在qemu虚拟机中配置pulseaudio插件,使得音频数据可以通过网络传输,从而不再受数据接口以及通信协议的限制,并且pulseaudio插件的兼容性较强,其可以适用于多种操作环境,从而使得本发明的qemu虚拟机远程音频传输方法适用范围更广。
相对应的,应用本实施例方法的设备应具有网络通信能力,由pulseaudio插件生成的新的音频数据不需要音频传输通道或音频传输协议,而是以符合网络通信协议的形式通过网络发送给接收设备;并且对应的接收设备中也应安装有对应的pulseaudio插件,用于接收并解调新的音频信号。
在进一步的实施例中,利用pulseaudio插件调制音频数据包括:利用pulseaudio插件对音频数据进行脉冲编码调制。
在进一步的实施例中,本发明的方法还包括:对qemu虚拟机程序进行源码编译,增加pulseaudio插件。
本发明通过在qemu虚拟机中增加pulseaudio插件,使其可以不受设备本身接口或运行环境的限制,进而通过网络实现音频数据的传输,大大增加了本发明的qemu虚拟机远程音频传输方法的适用范围。
对应于上述的qemu虚拟机远程音频传输方法,本发明还提出了的qemu虚拟机远程音频传输装置。
图3为本发明的qemu虚拟机远程音频传输装置的结构示意图。如图3所示,本发明的qemu虚拟机远程音频传输装置包括:控制模块10,控制模块10配置用于启动qemu虚拟机,自动配置驱动程序;检测模块20,检测模块配置用于检测驱动程序的运行环境;网络通信模块30,网络通信模块30配置用于响应于所述运行环境不具有音频传输能力,启动qemu虚拟机中的pulseaudio插件,以通过网络传输音频信号。
在进一步的实施例中,检测模块还配置用于:检测驱动程序的运行环境是否支持qemu虚拟机中的音频通信协议。
在进一步的实施例中,网络通信模块还配置用于,控制pulseaudio插件执行以下步骤,所述步骤包括:获取qemu虚拟机的vdi后端驱动中的音频信号;去除音频信号中对应通信协议的附加部分,保留音频数据部分;调制音频数据,生成新的音频信号,以通过网络传输新的音频信号。
在进一步的实施例中,网络通信模块还配置用于:对音频数据进行脉冲编码调制。
在进一步的实施例中,pulseaudio插件通过对qemu虚拟机程序进行源码编译配置。
在进一步的实施例中,本发明还提出了一种qemu虚拟机远程音频传输系统,如图4所示。
图4为本发明的qemu虚拟机远程音频传输系统的组成示意图。如图4所示,本发明的远程音频传输系统包括运行有qemu虚拟机的平台服务器以及接受音频信号的客户端。在该服务器中,配置有kvm-qemu虚拟机程序、pulseaudio插件及其子插件alsa。其中,alsa子插件是pulseaudio插件中用于实现音频远程传输的关键。在该客户端中应同样配置有pulseaudio插件,用于与该服务器通信,并将来自该服务器的音频信号还原为声音。
在另一个实施例中,在客户端中还配置有显示模块,用于显示音频信号的传输质量,以作为选取不同的音频传输方式的参照。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除