掌桥专利:专业的专利平台
掌桥专利
首页

一种安卓系统下的音视频透传方法

文献发布时间:2023-06-19 11:14:36


一种安卓系统下的音视频透传方法

技术领域

本发明涉及音视频传输技术,具体涉及一种安卓系统下的音视频透传方法。

背景技术

云手机作为一种新的智能手机的发展方向,依托云技术,将手机上所有的应用都转换到云端服务器,提供与智能手机同样的音视频服务;云端服务器具有强大的运算和存储能力,但不具备声卡,摄像头等硬件,这为音视频服务带来了难题。用户手机的声卡,摄像头与云端服务器物理上隔离,产生了以下需求:

(1)采集用户本地手机的声卡,摄像头产生的音视频数据,通过网络透传的方式传输到云端服务器;

(2)云端服务器构造一个虚拟的声卡和摄像头,供Android应用使用;

(3)为保证用户感观体验,减少音视频采集编码传输以及渲染播放的时间消耗。

云手机不同于传统智能手机:云手机硬件配置上不具有摄像头和声卡,无法直接使能声卡和摄像头采集音频视频数据,来播放和渲染。只能借助于用户本地摄像头和声卡,间接调用:本地手机采集音视频数据,再编码,通过网络透传的方式,将数据传到云手机,云手机解码数据后,送到Android应用播放渲染,从而实现音视频服务,但在实现方式上,还存在如下的问题:

(1)云手机如何调用用户本地手机的声卡,摄像头;

(2)云手机不具有摄像头和声卡硬件,摄像头与声卡驱动无法正常工作,云手机如何绕过硬件和驱动,将用户手机本地的音视频数据,提供给Android应用使用;

(3)音视频网络透传,受网络影响,可能会存在延时和卡顿,影响用户感观体验。

发明内容

本发明正是针对上述问题,本发明提供一种安卓系统下的音视频透传方法。

为实现上述目的,本发明的具体技术方案如下:

一种安卓系统下的音视频透传方法,包括以下步骤:

S1、通过网络端口用户本地手机与云手机建立网络连接;

S2、在云手机中配置虚拟声卡应用、虚拟摄像头应用,用于接收用户本地手机经网络连接传送的音视频数据;

S3、经用户本地手机调用本地采集设备采集原始音视频数据,编码后形成编码音视频数据发送网络端口;

S4、所述虚拟的声卡与摄像头驱动将编码音视频数据解码后输出以以流媒体格式输出。

可选地,所述采集设备包括声卡,摄像头。

可选地,所述云手机还配置有通知单元,当用户点击声卡、摄像头应用时,将该通知消息,通过TCP协议传给用户本地手机,用户本地手机收到通知消息后,调起本地声卡,摄像头。

可选地,步骤S3中,音频pcm数据编码成aac格式,将视频yuv数据编码成h264格式。

可选地,步骤S4中,对aac,h264码流解码成裸的pcm,yuv数据。

进一步地,所述虚拟摄像头应用向上提供与真实物理摄像头通用的接口,供framework层调用,向下提供填充yuv数据的接口,当云手机接收到解码后的yuv数据,向接口填充yuv数据。

进一步地,所述虚拟声卡应用使用Linux内核的alsa aloop驱动。

进一步地,虚拟摄像头应用占用内存地进程和解码占用内存的进程,采用安卓binder和匿名共享内存进行进程间通信。

采用发明提供的方法,在音视频透传时,便可以得到如下的有益效果:

(1)云手机无真实的声卡与摄像头,也能预览图像视频,听音频;

(2)减少网络带宽占用和流量消耗;

(3)降低内存频繁分配与释放,避免过多内存碎片的产生,解耦合摄像头进程与业务进程,提高视频数据传输效率;

(4)减少音视频卡顿,提升用户体验。

附图说明

图1是本发明一种安卓系统下的音视频透传方法流程图;

图2是本发明中用户本地手机和云手机音视频透传架构图;

图3是本发明中解码业务进程与摄像头进程通信图。

具体实施方式

为了便于本领域的普通技术人员能够理解并实施本发明,下面将结合附图对本发明实施例作进一步说明。

参考图1至图2,本发明提供的一种安卓系统下的音视频透传方法,包括以下步骤:

S1、通过网络端口用户本地手机与云手机建立网络连接;

S2、在云手机中配置虚拟声卡应用、虚拟摄像头应用,用于接收用户本地手机经网络连接传送的音视频数据;

S3、经用户本地手机调用本地采集设备采集原始音视频数据,编码后形成编码音视频数据发送网络端口;

S4、所述虚拟的声卡与摄像头驱动将编码音视频数据解码后输出以以流媒体格式输出。

具体实现如下:

(1)、在云手机的虚拟声卡和摄像头应用中,添加一个打开通知消息,当用户点击声卡,摄像头应用时,将该通知消息,通过TCP协议传给用户本地手机,用户本地手机收到通知消息后,调起本地声卡,摄像头,为了不阻塞UI主线程,需要开启线程进行音视频数据采集;

(2)、将采集的音视频数据进行编码,编码是一个相对耗时的过程,也需要开启线程分别对音频,视频数据编码;音频pcm数据编码成aac格式,将视频yuv数据编码成h264格式;

(3)、再将编码后将数据放入发送队列中,由发送线程,通过TCP协议,把编码后的音视频数据发送到云手机;

(4)、云手机接收到编码后的数据,需要对数据进行解码,为了充分利用云手机的强大的解码性能,释放GPU的运算能力,使用GPU硬件解码,对aac,h264码流解码成裸的pcm,yuv数据;

(5)、云手机实现一个虚拟的声卡与摄像头驱动,对于虚拟摄像头:向上提供与真实物理摄像头通用的接口,供framework层调用,向下提供填充yuv数据的接口,当云手机接收到解码后的yuv数据,向接口填充yuv数据即可;对于虚拟声卡驱动,使用Linux内核的alsa aloop驱动。

(6)、摄像头应用通过framework层调用摄像头驱动,取得视频数据,这一层属于单独的进程,而接收h264,解码yuv的操作属于另外的业务进程。进程间通信,传输视频数据,为了提高效率,使用Android高效的binder和匿名共享内存方式,为了减少内存频繁分配与释放,添加内存池管理:在摄像头驱动中预先分配6块视频帧内存,并放入空闲队列中,当业务进程收到数据并解码后,通过binder向虚拟摄像头驱动请求一块空闲内存,向该内存填充数据,填充后,把该内存放入输出队列,并通知虚拟摄像头驱动,虚拟摄像头驱动收到通知后,从输出队列中,取出内存,把数据提交framework,消费完后,再把内存放入空闲队列,如图3。

通过上面的方法,可以高效地在用户本地手机与云手机之间,进行音视频透传,减少带宽占用和流量消耗,同时,减少内存的分配与释放,避免过多内存碎片,提高音视频传输效率,提升用户体验。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

相关技术
  • 一种安卓系统下的音视频透传方法
  • 一种路由模式下数据包透传的方法、系统介质及设备
技术分类

06120112854411