一种帧率稳定输出方法、系统及智能终端技术方案

技术编号:30823283 阅读:18 留言:0更新日期:2021-11-18 12:11
本发明专利技术公开了一种帧率稳定输出方法、系统及智能终端,所述方法包括:视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层;视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层;视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到远端。本发明专利技术通过设置计一个数据暂存队列和一个定时器,对每次从虚拟显示模块获取到的最后一帧数据进行暂存,并判断是否有新的屏幕图像数据产生,如果没有就启动定时器驱动软件从数据暂存队列取出最后一帧屏幕图像数据来填补当前的缺少的屏幕图像数据,可以实现任意帧率的稳定输出。实现任意帧率的稳定输出。实现任意帧率的稳定输出。

【技术实现步骤摘要】
一种帧率稳定输出方法、系统及智能终端


[0001]本专利技术涉及音视频交互
,尤其涉及一种帧率稳定输出方法、系统、智能终端及计算机可读存储介质。

技术介绍

[0002]安卓手机投屏将手机屏幕所显示的画面内容实时投射到大屏上进行显示,实现多屏互动的效果,目前安卓开放了VirtualDisplay(安卓下的虚拟显示模块,VirtualDisplay的使用场景很多,比如录屏,WFD显示等,其作用就是抓取屏幕上显示的内容,VirtualDisplay抓取屏幕内容,其实现方式有很多,在API中就提供了ImageReader进行读取VirtualDisplay里的内容)模块来支持用户捕捉屏幕画面的需求,但VirtualDisplay不提供帧率的保障机制,而帧率是实时音视频交互场景中的重要因素,帧率是以帧称为单位的位图图像连续出现在显示器上的频率(速率);如开发者需要实现实时帧率统计等功能,基于安卓的画面刷新逻辑,如果画面不存在内容刷新时,则不产生新的图像数据,也就是说此时VirtualDisplay拿不到新的画面内容,帧率就会变成0,这显然不是开发者和用户想要的。
[0003]因此,现有技术还有待于改进和发展。

技术实现思路

[0004]本专利技术的主要目的在于提供一种帧率稳定输出方法、系统、智能终端及计算机可读存储介质,旨在解决现有技术中安卓手机投屏场景中帧率不稳定的问题。
[0005]为实现上述目的,本专利技术提供一种帧率稳定输出方法,所述帧率稳定输出方法包括如下步骤:
[0006]视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层;
[0007]视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层;
[0008]视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到远端。
[0009]可选地,所述的帧率稳定输出方法,其中,所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,之前还包括:
[0010]预先在所述视频采集层设置一个用于暂时存储数据的数据暂存队列和一个用于设置触发时间的定时器。
[0011]可选地,所述的帧率稳定输出方法,其中,所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,具体包括:
[0012]当屏幕刷新时,将最后一帧屏幕图像数据放入所述数据暂存队列,并判断是否有新的屏幕图像数据产生;
[0013]当检测到有新的屏幕图像数据产生时,所述视频采集层采集新的屏幕图像数据,并将采集到的新的屏幕图像数据发送给所述视频编码层;
[0014]当未检测到有新的屏幕图像数据产生时,所述定时器驱动所述数据暂存队列取出最后一帧屏幕图像数据发送给所述视频编码层。
[0015]可选地,所述的帧率稳定输出方法,其中,所述定时器每间隔预设时间触发所述数据暂存队列取出最后一帧屏幕图像数据。
[0016]可选地,所述的帧率稳定输出方法,其中,所述定时器的回调周期为预设时间/帧率。
[0017]可选地,所述的帧率稳定输出方法,其中,所述预设时间为1000ms,所述帧率为60帧。
[0018]可选地,所述的帧率稳定输出方法,其中,所述屏幕图像数据为YUV数据。
[0019]此外,为实现上述目的,本专利技术还提供一种帧率稳定输出系统,其中,所述帧率稳定输出系统包括:视频采集层、视频编码层和视频发送层;
[0020]所述视频采集层用于采集屏幕图像数据,并将所述屏幕图像数据发送给所述视频编码层;
[0021]所述视频编码层用于接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给所述视频发送层;
[0022]所述视频发送层用于通过网络模块将压缩编码后的屏幕图像数据发送到远端。
[0023]此外,为实现上述目的,本专利技术还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的帧率稳定输出程序,所述帧率稳定输出程序被所述处理器执行时实现如上所述的帧率稳定输出方法的步骤。
[0024]此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有帧率稳定输出程序,所述帧率稳定输出程序被处理器执行时实现如上所述的帧率稳定输出方法的步骤。
[0025]本专利技术通过视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层;视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层;视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到远端。本专利技术通过设置计一个数据暂存队列和一个定时器,对每次从虚拟显示模块获取到的最后一帧数据进行暂存,并判断是否有新的屏幕图像数据产生,如果没有就启动定时器驱动软件从数据暂存队列取出最后一帧屏幕图像数据来填补当前的缺少的屏幕图像数据,可以实现任意帧率的稳定输出。
附图说明
[0026]图1是本专利技术帧率稳定输出方法的较佳实施例的流程图;
[0027]图2是本专利技术帧率稳定输出方法的较佳实施例中整个实施过程的流程示意图;
[0028]图3是本专利技术帧率稳定输出系统的较佳实施例的原理示意图;
[0029]图4为本专利技术智能终端的较佳实施例的运行环境示意图。
具体实施方式
[0030]安卓手机投屏将手机屏幕所显示的画面内容实时投射到大屏上进行显示,实现多屏互动的效果,目前安卓开放了VirtualDisplay模块来支持用户捕捉屏幕画面的需求,但
VirtualDisplay不提供帧率的保障机制,而帧率是实时音视频交互场景中的重要因素,帧率是以帧称为单位的位图图像连续出现在显示器上的频率(速率);如开发者需要实现实时帧率统计等功能,基于安卓的画面刷新逻辑,如果画面不存在内容刷新时,则不产生新的图像数据,也就是说此时VirtualDisplay拿不到新的画面内容,帧率就会变成0,这显然不是开发者和用户想要的。
[0031]因此,为解决安卓手机投屏场景中视频帧率不稳定的问题,本专利技术创造提供了一种以定时器按照帧率驱动程序从暂存队列中取出上一帧YUV数据,来满足用户对任意帧率稳定输出的方法。
[0032]为使本专利技术的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0033]本专利技术较佳实施例所述的帧率稳定输出方法,如图1和图2所示,所述帧率稳定输出方法包括以下步骤:
[0034]步骤S10、视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层。
[0035]具体地,在所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,之前还包括:预先在所述视频采集层设置一个用于暂时存储数据的数据暂存队列(队本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种帧率稳定输出方法,其特征在于,所述帧率稳定输出方法包括:视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层;视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层;视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到远端。2.根据权利要求1所述的帧率稳定输出方法,其特征在于,所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,之前还包括:预先在所述视频采集层设置一个用于暂时存储数据的数据暂存队列和一个用于设置触发时间的定时器。3.根据权利要求2所述的帧率稳定输出方法,其特征在于,所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,具体包括:当屏幕刷新时,将最后一帧屏幕图像数据放入所述数据暂存队列,并判断是否有新的屏幕图像数据产生;当检测到有新的屏幕图像数据产生时,所述视频采集层采集新的屏幕图像数据,并将采集到的新的屏幕图像数据发送给所述视频编码层;当未检测到有新的屏幕图像数据产生时,所述定时器驱动所述数据暂存队列取出最后一帧屏幕图像数据发送给所述视频编码层。4.根据权利要求3所述的帧率稳定输出方法,其特征在于,所述定时器每间隔预设时间触发所述数据暂存队列取出最后一帧屏幕图像数据。...

【专利技术属性】
技术研发人员:曲宝庆林良松胡超寇光学
申请(专利权)人:惠州TCL云创科技有限公司
类型:发明
国别省市:

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

1