基于安卓平台无线投屏实现帧率控制的方法及其装置制造方法及图纸

技术编号:34251217 阅读:75 留言:0更新日期:2022-07-24 11:35
本发明专利技术公开一种基于安卓平台无线投屏实现帧率控制的方法及其装置,所述方法包括申请安卓录屏权限进行录屏;利用编码器创建一个视图窗口,并将生产录屏的数据传到视图窗口,实现监听接口获取视图窗口的数据,并进行视图窗口设置;通过录屏创建一个虚拟显示器来捕获视图窗口的数据内容;开启线程驱动视图窗口逐帧获取数据,并计算帧数据间隔时间值来变化指定的采集帧率;采集的数据帧传输给投屏接收端进行解码。本发明专利技术通过动态计算最符合接收端的解码效率的帧率,避免多路投屏帧率固定导致接收端解码器解码压力过大、效率低的问题。效率低的问题。效率低的问题。

Method and device for realizing frame rate control by wireless screen projection based on Android platform

【技术实现步骤摘要】
基于安卓平台无线投屏实现帧率控制的方法及其装置


[0001]本专利技术涉及多分屏投屏投屏
,具体涉及一种基于安卓平台无线投屏实现帧率控制的方法及其装置。

技术介绍

[0002]目前投屏多分屏场景使用非常宽泛,但是多分屏投屏时候会导致接收端解码压力过大导致解码问题,如花屏,乱码等问题。在多分屏投屏中帧率固定的方式在多路情况下会增大投屏接收端的解码压力,解码效率低下,容易造成视频解码出现花屏、乱码、丢帧等一系列情况,甚至可能会造成解码器崩溃引发设备重启。

技术实现思路

[0003]本专利技术的目的在于提供一种基于安卓平台无线投屏实现帧率控制的方法及其装置,可以解决现有技术中帧率固定的方式在多路情况下会增大投屏接收端的解码压力大、效率低的问题。
[0004]本专利技术的目的是通过以下技术方案实现的:
[0005]第一方面,本专利技术提供一种基于安卓平台无线投屏实现帧率控制的方法,包括以下步骤:
[0006]申请安卓录屏权限进行录屏;
[0007]利用编码器创建一个视图窗口,并将生产录屏的数据传到视图窗口,实现监听接口获取视图窗口的数据,并进行视图窗口设置;
[0008]通过录屏创建一个虚拟显示器来捕获视图窗口的数据内容;
[0009]开启线程驱动视图窗口逐帧获取数据,并计算帧数据间隔时间值来变化指定的采集帧率;
[0010]采集的数据帧传输给投屏接收端进行解码。
[0011]进一步的,所述通过录屏创建一个虚拟显示器来捕获视图窗口的数据内容之前,所述方法还包括:
[0012]准备一个中间接口层;
[0013]利用中间接口层创建渲染纹理、表面纹理和视图窗口的互连实例;
[0014]在中间接口层获取视图窗口的数据内容。
[0015]进一步的,所述通过录屏创建一个虚拟显示器来捕获视图窗口的数据内容具体包括通过录屏创建一个虚拟显示器来捕获中间接口层中视图窗口的数据内容。
[0016]进一步的,所述中间接口层为EGL;所述EGL具体指利用一个EGLContext和一个支持pbuffer的EGLSurface,实现EGLContext和EGLSurface交流。
[0017]进一步的,所述进行视图窗口设置包括视图窗口的宽高比例设置和FPS设置。
[0018]进一步的,所述帧数据间隔时间的计算方式为1000/fps。
[0019]进一步的,所述采集的数据帧传输给投屏接收端具体为采集的数据帧通过TCP传
输给投屏接收端。
[0020]第二方面,本专利技术提供一种基于安卓平台无线投屏实现帧率控制的装置,包括:
[0021]录屏请求单元,用于申请安卓录屏权限进行录屏;
[0022]编码单元,用于创建视图窗口,并将生产录屏的数据传到视图窗口,实现监听接口获取视图窗口的数据,并进行视图窗口设置;
[0023]虚拟显示单元,用于来捕获视图窗口的数据内容;
[0024]线程驱动单元,用于对视图窗口逐帧获取数据,并计算帧数据间隔时间值来变化指定的采集帧率;
[0025]传输单元,用于将采集的数据帧传输给投屏接收端进行解码。
[0026]进一步的,所述基于安卓平台无线投屏实现帧率控制的装置还包括:
[0027]准备单元,用于准备一个中间接口层;
[0028]创建/连接单元,用于利用中间接口层创建渲染纹理、表面纹理和视图窗口的互连实例;
[0029]获取单元,用于在中间接口层获取视图窗口的数据内容。
[0030]第三方面,本专利技术提供一种存储介质,所述的存储介质中存有计算机程序,运行所述计算机程序后可以实现前述的基于安卓平台无线投屏实现帧率控制的方法。
[0031]本专利技术的有益效果:
[0032]本专利技术基于安卓平台,通过MediaProjection(录屏)创建的虚拟显示器,然后将发送端视频数据交给Surface(视图窗口)进行逐帧数据来控制帧率,当有多路投屏的时候,动态计算最符合接收端的解码效率的帧率,避免多路投屏帧率固定导致接收端解码器解码压力过大产生的一系列问题。
附图说明
[0033]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0034]图1为基于安卓平台无线投屏实现帧率控制的方法一个实施例的流程示意图;
[0035]图2为基于安卓平台无线投屏实现帧率控制的方法整体的流程示意图;
[0036]图3为中间接口层EGL组成示意图。
具体实施方式
[0037]下面结合附图对本公开实施例进行详细描述。
[0038]以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下
所获得的所有其他实施例,都属于本公开保护的范围。
[0039]请参阅图1

图3,本专利技术基于安卓平台无线投屏实现帧率控制的方法一个实施例中,以安卓平台的MediaProjection为实例进行说明,包括以下步骤:
[0040]步骤S1、申请安卓录屏MediaProjection权限进行录屏。
[0041]利用安卓平台的MediaProjection进行一个录屏,MediaProjection是一种新的截屏或者录屏的新手段,可以用来捕捉屏幕,还是一个准许APP拥有截取屏幕或者是记录系统音频的能力。
[0042]步骤S2、利用编码器MediaCodec创建一个视图窗口createInputSurface(以下简称Surface),并将生产录屏的数据传到视图窗口Surface,实现监听接口SurfaceTexture.OnFrameAvailableListener获取视图窗口Surface的数据,并进行视图窗口Surface设置。
[0043]步骤S3、通过录屏MediaProjection创建一个虚拟显示器createVirtualDisplay来捕获视图窗口Surface的数据内容。
[0044]步骤S4、开启线程驱动视图窗口Surface逐帧获取数据,并计算帧数据间隔时间值来变化指定的采集帧率。
[0045]步骤S5、采集的数据帧传输给投屏接收端进行解码即可。
[0046]投屏接收端只用负责解码即可,并可根据投屏接收端设备数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于安卓平台无线投屏实现帧率控制的方法,其特征在于,包括以下步骤:申请安卓录屏权限进行录屏;利用编码器创建一个视图窗口,并将生产录屏的数据传到视图窗口,实现监听接口获取视图窗口的数据,并进行视图窗口设置;通过录屏创建一个虚拟显示器来捕获视图窗口的数据内容;开启线程驱动视图窗口逐帧获取数据,并计算帧数据间隔时间值来变化指定的采集帧率;采集的数据帧传输给投屏接收端进行解码。2.根据权利要求1所述的基于安卓平台无线投屏实现帧率控制的方法,其特征在于,所述通过录屏创建一个虚拟显示器来捕获视图窗口的数据内容之前,所述方法还包括:准备一个中间接口层;利用中间接口层创建渲染纹理、表面纹理和视图窗口的互连实例;在中间接口层获取视图窗口的数据内容。3.根据权利要求2所述的基于安卓平台无线投屏实现帧率控制的方法,其特征在于,所述通过录屏创建一个虚拟显示器来捕获视图窗口的数据内容具体包括通过录屏创建一个虚拟显示器来捕获中间接口层中视图窗口的数据内容。4.根据权利要求2所述的基于安卓平台无线投屏实现帧率控制的方法,其特征在于,所述中间接口层为EGL;所述EGL具体指利用一个EGLContext和一个支持pbuffer的EGLSurface,实现EGLContext和EGLSurface交流。5.根据权利要求1所述的基于安卓平台无线投屏实现帧率控制的方法,其特征在于,所述进行...

【专利技术属性】
技术研发人员:唐涛王添柒强
申请(专利权)人:长沙朗源电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1