System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Android系统的超低时延投屏方法和装置制造方法及图纸_技高网

一种基于Android系统的超低时延投屏方法和装置制造方法及图纸

技术编号:43838266 阅读:14 留言:0更新日期:2024-12-31 18:35
本申请公开了一种基于Android系统的超低时延投屏方法和装置,该方法包括:投屏发送设备创建画面采集器和编码器,实时采集画面并送入编码器输入队列编码;轮询编码器输出队列,取出编码数据发送NALU给投屏接收设备;投屏接收设备将收到的NALU送入解码器输入队列进行解码;轮询解码器输出队列解码数据,如果为解码配置帧,则创建用于上屏的DRM缓冲列表;如果为画面帧,则将画面帧对应的DRM缓冲放入上屏队列,由上屏线程取出DRM缓冲并输出。本申请,将投屏应用的控制面和数据面进行分离,数据面通过Android服务实现,直接调用系统接口实现画面采集、编码,数据传输,以及画面、上屏功能,优化投屏各个步骤处理流程,在画质不变的情况下降低投屏时延。

【技术实现步骤摘要】

本专利技术涉及投屏,具体涉及一种基于android系统的超低时延投屏方法和装置。


技术介绍

1、与使用电子设备内置的投屏软件相比,无线投屏器不需要在投屏设备上安装额外的软件或应用程序,即插即用,无需复杂的设置,并且支持多种投屏协议,安全性高,因此在商务演示、教育培训、视频会议、游戏直播等领域仍然具有广泛的应用。

2、现有的无线投屏器,通常连接在发送端,将发送端的画面通过两种方式投屏到接收端:

3、第一种是调用android sdk提供的接口进行画面采集,屏幕捕捉,调用mediacodec进行编解码,使用android sdk中的surface对象进行画面上屏。然而,该方法通过androidsdk进行系统调用,存在性能损耗。mediacodec调用硬编硬解时依赖系统对编解码接口的封装,无法完全发挥出硬件性能,从而使投屏画面的时延较高。

4、第二种是系统投屏,需要支持dlna标准。该方法由于dlna标准使用了多种协议,投屏画面数据需要经过多个协议封包解包处理,投屏延时较高,平均超过100ms。

5、由此可见,现有的无线投屏器,其采用的技术无法完全发挥出硬件性能,投屏画面的时延较高。对于某些需要与投屏画面实时交互的应用场景,用户的投屏体验较差。


技术实现思路

1、针对上述缺陷,本专利技术所要解决的技术问题在于提供一种基于android系统的超低时延投屏方法及方法,以解决现有技术无法完全发挥出硬件性能,投屏画面的时延较高的问题。

2、为此,本申请实施例的第一方面提供了一种基于android系统的超低时延投屏方法,采用投屏接收设备和投屏发送设备实现,包括以下步骤:

3、投屏接收设备启动后自动运行接收端的投屏服务,并根据预先配置的解码器类型创建对应的解码器,同时监听投屏发送设备的连接信号;

4、投屏发送设备启动后自动运行发送端的投屏服务,等待画面输入信号输入;

5、投屏发送设备检测到有画面输入信号时,根据预先配置的投屏接收设备的ip地址和端口,建立tcp的socket连接;

6、投屏发送设备创建画面采集器,获取输入画面大小和格式,同时根据预先配置的编码器类型创建对应的编码器;画面采集器不停地进行画面采集,并送入编码器的输入队列,由编码器按顺序进行编码;

7、投屏发送设备轮询编码器的输出队列,按顺序取出编码数据,并通过建立的socket连接依次发送nalu;

8、投屏接收设备将接收到的nalu送入解码器的输入队列按顺序进行解码;

9、投屏接收设备轮询解码器的输出队列,按顺序取出解码数据;如果解码数据为解码配置帧,则创建用于上屏的drm缓冲列表,并将drm缓冲列表与解码器输出关联;如果解码数据为画面帧,则将画面帧对应的drm缓冲放入上屏队列;

10、投屏接收设备的上屏线程不停从上屏队列取出中drm缓冲,并通过输出端口输出。

11、基于以上的技术方案,本申请采用投屏接收设备和投屏发送设备实现,将投屏应用的控制面和数据面进行分离,数据面通过android服务实现,直接调用系统接口实现画面采集、编码,数据传输,以及画面、上屏功能,优化投屏各个步骤处理流程,在画质不变的情况下降低投屏时延。

12、在上述技术方案中,优选地,投屏发送设备一旦检测到画面输入信号停止,则停止画面采集器和编码器,断开socket连接,等待画面输入信号再次输入。

13、在上述技术方案中,优选地,投屏接收设备一旦检测到socket连接断开,则清理上屏画面,清除drm缓冲列表,等待投屏发送设备再次连接。

14、在上述技术方案中,优选地,投屏发送设备和投屏接收设备的投屏服务均以root权限运行。

15、在上述技术方案中,优选地,投屏发送设备的投屏服务直接调用android系统的显卡驱动接口,用于获取hdmi或dp画面输入。

16、本申请实施例的第二方面提供了一种基于传输速率变化的自适应视频编解码装置,包括包括投屏接收设备和投屏发送设备,

17、所述投屏发送设备设有:

18、编码器,根据预先配置的编码器类型创建;

19、采集创建模块,根据检测到的画面输入信号创建画面采集器,所述画面采集器不停地进行画面采集,并送入所述编码器的输入队列,由所述编码器按顺序进行编码;

20、连接模块,用于在检测到画面输入信号时,根据预先配置的投屏接收设备的ip地址和端口,建立tcp的socket连接,并发送连接信号;

21、发送模块,用于轮询所述编码器的输出队列,按顺序取出编码数据,并通过建立的socket连接依次发送nalu;

22、所述投屏接收设备设有:

23、解码器,根据预先配置的解码器类型创建;

24、监听模块,用于监听投屏发送设备发送的连接信号,并根据所述连接信号上报投屏接收设备的ip地址和端口;

25、接收模块,用于将接收到的nalu送入所述解码器的输入队列按顺序进行解码;

26、上屏线程,用于轮询所述解码器的输出队列,按顺序取出解码数据;如果解码数据为解码配置帧,则创建用于上屏的drm缓冲列表,并将drm缓冲列表与所述解码器输出关联;如果解码数据为画面帧,则将画面帧对应的drm缓冲放入上屏队列,并依次从上屏队列取出中drm缓冲,通过输出端口输出。

27、在上述技术方案中,优选地,所述投屏发送设备一旦检测到画面输入信号停止,则停止画面采集器和编码器,断开socket连接,等待画面输入信号再次输入。

28、在上述技术方案中,优选地,投屏接收设备一旦检测到socket连接断开,则清理上屏画面,清除drm缓冲列表,等待投屏发送设备再次连接。

29、在上述技术方案中,优选地,根据检测到的画面输入信号,调用v4l2接口创建所述画面采集器。

30、在上述技术方案中,优选地,所述采集创建模块直接调用android系统的显卡驱动接口,用于获取hdmi或dp画面输入。

31、由上述技术方案可知,本专利技术提供的基于android系统的超低时延投屏方法和装置,解决了现有技术无法完全发挥出硬件性能,投屏画面的时延较高的问题。与现有技术相比,本专利技术具有以下有益效果:

32、本申请方案,投屏发送端和接收端分别连接投屏发送设备主投屏接收设备,投屏发送设备根据画面输入信号建立socket连接,并创建画面采集器进行画面采集,送入编码器的输入队列,按顺序依次发送nalu给投屏接收设备;投屏接收设备将接收到的nalu送入解码器的输入队列按顺序进行解码,取出解码数据后,如果解码数据为解码配置帧,则创建用于上屏的drm缓冲列表,并将drm缓冲列表与解码器输出关联;如果解码数据为画面帧,则将画面帧对应的drm缓冲放入上屏队列,通过输出端口输出。将投屏应用的控制面和数据面进行分离,数据面通过android服务实现,直接调本文档来自技高网...

【技术保护点】

1.一种基于Android系统的超低时延投屏方法,采用投屏接收设备和投屏发送设备实现,其特征在于,包括以下步骤:

2.根据权利要求1所述的方法,其特征在于,投屏发送设备一旦检测到画面输入信号停止,则停止画面采集器和编码器,断开Socket连接,等待画面输入信号再次输入。

3.根据权利要求1所述的方法,其特征在于,投屏接收设备一旦检测到Socket连接断开,则清理上屏画面,清除DRM缓冲列表,等待投屏发送设备再次连接。

4.根据权利要求3所述的方法,其特征在于,投屏发送设备和投屏接收设备的投屏服务均以root权限运行。

5.根据权利要求2所述的方法,其特征在于,投屏发送设备的投屏服务直接调用Android系统的显卡驱动接口,用于获取HDMI或DP画面输入。

6.一种基于Android系统的超低时延投屏装置,其特征在于,包括投屏接收设备和投屏发送设备,

7.根据权利要求6所述的装置,其特征在于,所述投屏发送设备一旦检测到画面输入信号停止,则停止画面采集器和编码器,断开Socket连接,等待画面输入信号再次输入。</p>

8.根据权利要求6所述的装置,其特征在于,投屏接收设备一旦检测到Socket连接断开,则清理上屏画面,清除DRM缓冲列表,等待投屏设备再次连接。

9.根据权利要求6所述的装置,其特征在于,根据检测到的画面输入信号,调用V4L2接口创建所述画面采集器。

10.根据权利要求6所述的装置,其特征在于,所述采集创建模块直接调用Android系统的显卡驱动接口,获取HDMI或DP画面输入。

...

【技术特征摘要】

1.一种基于android系统的超低时延投屏方法,采用投屏接收设备和投屏发送设备实现,其特征在于,包括以下步骤:

2.根据权利要求1所述的方法,其特征在于,投屏发送设备一旦检测到画面输入信号停止,则停止画面采集器和编码器,断开socket连接,等待画面输入信号再次输入。

3.根据权利要求1所述的方法,其特征在于,投屏接收设备一旦检测到socket连接断开,则清理上屏画面,清除drm缓冲列表,等待投屏发送设备再次连接。

4.根据权利要求3所述的方法,其特征在于,投屏发送设备和投屏接收设备的投屏服务均以root权限运行。

5.根据权利要求2所述的方法,其特征在于,投屏发送设备的投屏服务直接调用android系统的显卡驱动接口,用于获取hdmi或dp画面输...

【专利技术属性】
技术研发人员:孙育宁补佳林梁凯淋许庆巍张敏
申请(专利权)人:深圳市闪联信息技术有限公司
类型:发明
国别省市:

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

1