1.本公开涉及显示技术领域,尤其涉及一种投屏数据传输方法、装置、电子设备和存储介质。
背景技术:2.随着计算机技术领域技术的发展,互联网的出现给现代生活带来了极大的便利,移动通信终端领域的快速发展让通信终端的形式越来越多样化,给人们的生活提供了更多的便利,用户可以通过使用各种类型的终端设备进行信息交互,例如,将手机中显示的画面投屏显示到电视屏幕上,借助网络的传输,将手机中显示的画面信息以帧的格式,发送到电视,电视接收到手机传输的画面信息之后,再将该画面播放出来,从而可以实现投屏的功能。
3.通常,在投屏数据源端和视频播放端之间投屏数据的传输均是在局域网下的数据传输。在数据传输的过程中会碰到网络带来的延迟、抖动、丢包等不稳定情况,会造成视频播放卡顿,甚至投屏中断,给用户的体验是非常糟糕的。
4.现有技术中,为了能够动态监控网络状态,大多都是在视频播放端开启一个线程,不停的调用ping指令(packet internet groper,因特网包探索器指令),ping投屏数据源端的ip地址(internet protocol address,互联网协议地址),获取ping指令的返回时间,通过判断ping指令的返回时间,确定网络状态是否异常。
5.但现有技术中,基于上述检测方法,会占用系统资源,对系统资源造成浪费。
技术实现要素:6.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种投屏数据传输方法、装置、电子设备和存储介质。
7.第一方面,本公开实施例提供了一种投屏数据传输方法,包括:
8.接收第一设备发送的投屏数据,其中,所述投屏数据至少包括网络检测数据;
9.确定在预设次数内接收到所述网络检测数据的目标接收时间;
10.基于所述目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略。
11.作为一种可实施方式,可选的,所述确定在预设次数内接收到所述网络检测数据的目标接收时间,包括:
12.在接收到所述网络检测数据的次数等于预设次数时,依次获取接收到各所述网络检测数据的接收时间;
13.基于获取的各所述网络检测数据的接收时间,确定在第n次接收到网络检测数据的接收时间与在第n-1次接收到网络检测数据的接收时间的时间差值,其中,n为大于或等于1的整数;
14.根据所述时间差值以及预设次数,确定目标接收时间。
15.作为一种可实施方式,可选的,所述根据所述时间差值以及预设次数,确定目标接收时间,包括:
16.对第n次接收到网络检测数据的接收时间与第n-1次接收到网络检测数据的接收时间的时间差值进行求和处理确定目标时间差值;
17.对所述目标时间差值与预设次数求商处理,确定目标接收时间。
18.作为一种可实施方式,可选的,所述投屏数据编码参数包括数据编码率和数据分辨率;
19.所述根据所述目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略,包括:
20.当所述目标接收时间大于预设接收时间时,发送指示指令至所述第一设备,以指示所述第一设备降低所述数据编码率和/或数据分辨率。
21.作为一种可实施方式,可选的,所述发送指示指令至所述第一设备之时,还包括:
22.发送提示信息至所述第一设备和/或所述第二设备,以通过所述第一设备和/或第二设备显示提示信息。
23.作为一种可实施方式,可选的,所述发送指示指令至所述第一设备之前,还包括:
24.获取所述第二设备与所述第一设备的通信通道的网络带宽;
25.在所述通信通道的网络带宽为2.4g时,控制所述第二设备切换至5.0g网络带宽的通信通道;
26.确定接收到所述网络检测数据的目标接收时间与预设接收时间的关系;
27.所述发送指示指令至所述第一设备,包括:
28.在所述目标接收时间大于或等于预设接收时间时,发送指示指令至所述第一设备,以指示所述第一设备降低所述数据编码率和/或数据分辨率。
29.作为一种可实施方式,可选的,所述接收第一设备发送的投屏数据,包括:
30.在获取所述第一设备播放的视频数据和/或音频数据为动态数据时,接收第一设备发送的投屏数据。
31.第二方面,本公开实施例提供一种投屏数据传输装置,包括:
32.接收模块,用于接收第一设备发送的投屏数据,其中,所述投屏数据至少包括网络检测数据;
33.目标接收时间确定模块,用于确定在预设次数内接收到所述网络检测数据的目标接收时间;
34.调整参数确定模块,用于基于所述目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略。
35.第三方面,本公开实施例提供一种电子设备,包括:
36.一个或多个处理器;
37.存储装置,用于存储一个或多个程序,
38.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述的方法。
39.第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一所述的方法。
40.本公开实施例提供的技术方案与现有技术相比具有如下优点:
41.本公开实施例提供一种投屏数据传输方法、装置、电子设备和存储介质,接收第一设备发送的投屏数据,其中,投屏数据至少包括网络检测数据;确定接收到网络检测数据的目标接收时间;基于目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略,即第二设备接收第一设备发送的投屏数据,该投屏数据中包括网络检测数据,第二设备在每次接收到网络检测数据后,基于第二设备当前的系统时间确定接收到网络检测数据的目标接收时间,如果第一设备和第二设备之间的网络通畅,每次接收到的网络检测数据的时间间隔应该在预设接收时间范围内,如果第一设备和第二设备之间的网络异常,每次接收到的网络检测数据的时间间隔会与预设接收时间有很大的出入,通过评估接收到网络检测数据的目标接收时间与预设接收时间的关系,确定第一设备和第二设备之间的网络状态,进而确定投屏数据编码参数的调整策略,保证第一设备和第二设备之间的投屏数据的正常发送,且网络检测数据是基于第一设备和第二设备建立的投屏通道发送的,因此,无需额外在第二设备开启线程进行网络状态检测,避免对系统资源的浪费。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
43.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
44.图1a是本公开实施例提供的一种投屏数据传输方法的系统网络架构图;
45.图1b是本公开实施例提供的一种终端设备的结构示意图;
46.图2a是本公开实施例提供的一种投屏数据传输方法的流程示意图;
47.图2b是本公开实施例提供一种投屏数据传输方法的信号流程示意图;
48.图3a是本公开实施例提供的另一种投屏数据传输方法的流程示意图;
49.图3b是本公开实施例提供的另一种投屏数据传输方法的信号流程示意图;
50.图3c是本公开实施例提供的一种投屏数据的示意图;
51.图3d是本公开实施例提供的另一种投屏数据的示意图;
52.图4a是本公开实施例提供的又一种投屏数据传输方法的流程示意图;
53.图4b是本公开实施例提供的又一种投屏数据传输方法的信号流程示意图;
54.图5a是本公开实施例提供的又一种投屏数据传输方法的流程示意图;
55.图5b是本公开实施例提供的又一种投屏数据传输方法的信号流程示意图;
56.图6a是本公开实施例提供的又一种投屏数据传输方法的流程示意图;
57.图6b是本公开实施例提供的又一种投屏数据传输方法的信号流程示意图;
58.图7是本公开实施例提供的一种投屏数据传输装置的结构示意图;
59.图8是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
60.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案
进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
61.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
62.图1a示意性示出了根据本技术实施例的投屏数据传输方法的投屏系统网络架构图。投屏系统网络架构图中包括第一设备10、第二设备20、路由器30和服务器40等。其中:第一设备,可以作为投屏系统网络架构中的发送端,用于将多媒体内容和各类指令发送到第二设备中。在示例性的实施例中,第一设备包括,但不限于,智能手机、平板电脑、游戏机、膝上型计算机等。第二设备,可以作为投屏系统网络架构中的展示端,用于接收第一设备的多媒体内容和各类指令,并将接收到的多媒体内容同步播放到自身设备的显示面板或关联设备的显示面板中。第二设备可以是诸如虚拟现实设备、机顶盒、智能电视、车辆终端、大型露天显示面板等屏幕较大的相关设备,当然,也可以是智能手机、平板电脑、膝上型计算机等屏幕较小的相关设备。
63.路由器,可以作为投屏系统网络架构中的网关,用于组建局域网以及提供互联网服务。路由器能够为第一设备和第二设备之间提供本地连接。
64.服务器,可以作为投屏系统网络架构中的云端设备,用于提供云端服务,例如云端账户管理服务等。服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。
65.第一设备可以通过第一网络或第二网络发现第二设备,并且基于第一网络或第二网络与第二设备建立网络连接。通过该建立的网络连接,第一设备可以将需要投屏的多媒体内容投放到第二设备中,通过第二设备播放出来。第一网络可以是局域网,局域网可以是有线局域网或无线局域网。如图1a所示,无线局域网可以是由路由器8组建的wi-fi网络。第二网络可以是广域网,如互联网。广域网可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,其组合等。广域网还可以包括无线链路,诸如蜂窝链路,卫星链路等。
66.在示例性的实施例中,如图1b所示,第一设备和第二设备包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。
67.在一些实施例中控制器包括处理器,视频处理器,音频处理器,图形处理器,ram,rom,用于输入/输出的第一接口至第n接口。
68.显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控ui界面。
69.显示器260可为液晶显示器、oled显示器、以及投影显示器,还可以为一种投影装置和投影屏幕。
70.通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与外部控制设备100或服务器400建立控制信号和数据信号的发送和接收。
71.用户接口,可用于接收控制装置100(如:红外遥控器等)的控制信号。
72.检测器230用于采集外部环境或与外部交互的信号。例如,检测器230包括光接收器,用于采集环境光线强度的传感器;或者,检测器230包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器230包括声音采集器,如麦克风等,用于接收外部声音。
73.外部装置接口240可以包括但不限于如下:高清多媒体接口接口(hdmi)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(cvbs)、usb输入接口(usb)、rgb端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。
74.调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及epg数据信号。
75.在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。
76.控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示ui对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
77.在一些实施例中控制器包括中央处理器(central processing unit,cpu),视频处理器,音频处理器,图形处理器(graphics processing unit,gpu),ram random access memory,ram),rom(read-only memory,rom),用于输入/输出的第一接口至第n接口,通信总线(bus)等中的至少一种。
78.用户可在显示器260上显示的图形用户界面(gui)输入用户命令,则用户输入接口通过图形用户界面(gui)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
[0079]“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(graphic user interface,gui),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、widget等可视的界面元素。
[0080]
以上对第一设备和第二设备的各个功能做了简单介绍。
[0081]
第一设备可以向第二设备实施投屏操作。
[0082]
但是,现有技术中,在第一设备向第二设备投屏的过程中,第一设备和第二设备之间投屏数据的传输均是在局域网下的数据传输,数据传输过程中会碰到网络带来的延迟、抖动、丢包等情况,造成投屏数据播放卡顿,甚至投屏中断,降低了用户的使用感受,而现有技术中,一般通过在第二设备上开启一个线程,通过不停的调用ping指令,ping第一设备的ip地址,基于获取的ping指令的返回时间,确定第一设备和第二设备之间的网络状态,但现有技术中,由于第二设备需要开启线程,因此,会占用第二设备的系统资源,造成系统资源的浪费。
[0083]
本公开实施例提供一种投屏数据传输方法,接收第一设备发送的投屏数据,其中,
投屏数据至少包括网络检测数据;确定接收到网络检测数据的目标接收时间;基于目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略,即第二设备接收第一设备发送的投屏数据,该投屏数据中包括网络检测数据,第二设备在每次接收到网络检测数据后,基于第二设备当前的系统时间确定接收到网络检测数据的目标接收时间,如果第一设备和第二设备之间的网络通畅,每次接收到的网络检测数据的时间间隔应该在预设接收时间范围内,如果第一设备和第二设备之间的网络异常,每次接收到的网络检测数据的时间间隔会与预设接收时间有很大的出入,通过评估接收到网络检测数据的目标接收时间与预设接收时间的关系,确定第一设备和第二设备之间的网络状态,进而确定投屏数据编码参数的调整策略,保证第一设备和第二设备之间的投屏数据的正常发送,且网络检测数据是基于第一设备和第二设备建立的投屏通道发送的,因此,无需额外在第二设备开启线程进行网络状态检测,避免对系统资源的浪费。
[0084]
图2a是本公开实施例提供的一种投屏数据传输方法的流程示意图,图2b是本公开实施例提供一种投屏数据传输方法的信号流程示意图,结合图2a和图2b,投屏数据传输方法包括:
[0085]
s100、接收第一设备发送的投屏数据。
[0086]
其中,投屏数据至少包括网络检测数据。
[0087]
具体的,在投屏数据传输的场景下,第一设备向第二设备发送投屏数据。第一设备与第二设备会基于预设的通信协议建立通信通道,并通过通信通道发送投屏数据。
[0088]
作为一种可实施方式,第一设备与第二设备的通信协议采用的tcp协议。
[0089]
第一设备与第二设备在执行连接、收发、断开等各阶段的操作中,双方交互的投屏数据包括视屏数据、音频数据和网络检测数据,其中,视频数据、音频数据以及网络检测数据以相同的通信通道发送。
[0090]
s200、确定在预设次数内接收到网络检测数据的目标接收时间。
[0091]
网络检测数据的目标接收时间指的是在预设次数内接收到网络检测数据的平均接收时间值。
[0092]
在具体的实施方式中,第一设备向第二设备发送投屏数据的过程中,用户可在第一设备自定义设置发送网络检测数据的周期,例如,每间隔30ms发送一个网络检测数据。由于网络检测数据、视频数据和音频数据是基于相同的通信通道发送至第二设备的,当第一设备在第一时刻触发发送一个视频数据,然后在第二时刻触发发送一个网络检测数据,在第三时刻继续触发发送一个网络检测数据,其中,第二时刻与第三时刻的时间差值为30ms,第二时刻与第三时刻之间第一设备可以触发发送音频数据和/或视频数据,也可以不触发发送音频数据和/或视频数据,例如,当第一设备画面没有变化时,不触发发送视频数据,当第一设备没有播放声音时,不触发发送音频数据。当在第二时刻与第三时刻之间第一设备触发发送音频数据和/或视频数据至第二设备时,若第一设备和第二设备之间的网络异常,则第二时刻和第三时刻之间发送的音频数据和/或视频数据会因网络原因出现数据延迟,而由于音频数据、视频数据和网络检测数据是通过一个通信通道发送的,因此,网络延迟导致发送音频数据和/或视频视频延迟会影响第二设备接收到第三时刻发送的网络检测数据,根据第二设备接收到第一设备在第二时刻发送的网络检测的时间与接收到第一设备在第三时刻发送的网络检测数据的时间,可以确定第二设备接收到网络检测数据的目标接收
时间。
[0093]
需要说明的是,上述实施例中,示例性表示预设次数为1次,在其它可实施方式中,预设次数也可以为n次,当预设次数为n次时,通过依次获取接收到各网络检测数据的接收时间;基于获取的各网络检测数据的接收时间,确定在第n次接收到网络检测数据的接收时间与在第n-1次接收到网络检测数据的接收时间的时间差值,然后根据时间差值以及预设次数,确定目标接收时间。
[0094]
s300、基于目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略。
[0095]
通过分析第二设备接收到网络检测数据的目标接收时间与预设接收时间的关系,可以确定第一设备和第二设备之间的投屏通道的网络状况,进而确定投屏数据编码参数的调整策略,通过对投屏数据编码参数进行调整,保证第二设备可以正常接收到第一设备发送的视频数据和/或音频数据,避免第一设备与第二设备在数据传输的过程中碰到网络带来的延迟、抖动、丢包等不稳定情况,造成视频数据或音频数据播放卡顿,甚至投屏中断,降低用户的使用感受。
[0096]
其中,预设接收时间为用户自定义设置的第一设备发送网络检测数据的周期,例如,间隔30ms第一设备发送一次网络检测数据至第二设备。
[0097]
本公开实施例提供的投屏数据传输方法,接收第一设备发送的投屏数据,其中,投屏数据至少包括网络检测数据;确定接收到网络检测数据的目标接收时间;基于目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略,即第二设备接收第一设备发送的投屏数据,该投屏数据中包括网络检测数据,第二设备在每次接收到网络检测数据后,基于第二设备当前的系统时间确定接收到网络检测数据的目标接收时间,如果第一设备和第二设备之间的网络通畅,每次接收到的网络检测数据的时间间隔应该在预设接收时间范围内,如果第一设备和第二设备之间的网络异常,每次接收到的网络检测数据的时间间隔会与预设接收时间有很大的出入,通过评估接收到网络检测数据的目标接收时间与预设接收时间的关系,确定第一设备和第二设备之间的网络状态,进而确定投屏数据编码参数的调整策略,保证第一设备和第二设备之间的投屏数据的正常发送,且网络检测数据是基于第一设备和第二设备建立的投屏通道发送的,因此,无需额外在第二设备开启线程进行网络状态检测,避免对系统资源的浪费。
[0098]
图3a是本公开实施例提供的另一种投屏数据传输方法的流程示意图,图3b是本公开实施例提供的另一种投屏数据传输方法的信号流程示意图,结合图3a和图3b,步骤s200的具体实施方式包括:
[0099]
s201、在接收到网络检测数据的次数等于预设次数时,依次获取接收到各网络检测数据的接收时间。
[0100]
在具体的实施方式中,为避免过度频繁计算网络检测数据的目标接收时间,通过判断第二设备接收到网络检测数据的次数,当第二设备接收到网络检测数据的次数小于预设次数时,不执行确定在预设次数内接收到网络检测数据的目标接收时间的步骤,避免频繁计算网络检测数据的目标接收时间,而造成系统资源的浪费。
[0101]
而当第二设备接收到网络检测数据的次数等于预设次数时,此时,获取在该预设次数内每一次接收到网络检测数据对应的接收时间。
[0102]
示例性,设定预设次数为30次,则第二设备在检测到第30次接收到网络检测数据,此时,第二设备从服务器上依次获取前30次接收到网络检测数据的时间。
[0103]
s202、基于获取的各网络检测数据的接收时间,确定在第n次接收到网络检测数据的接收时间与在第n-1次接收到网络检测数据的接收时间的时间差值。
[0104]
其中,n为大于或等于1的整数。
[0105]
通过计算相邻两次接收到网络检测数据的时间差值,即第一次接收到网络检测数据与第二设备的服务器存储的上一个预设次数内第三十次接收到网络检测数据的时间差值,第二次接收到网络检测数据与第一次接收到网络检测数据的时间差值,...,以及第三十次接收到网络检测数据与第二十九次接收到网络检测数据的时间差值。
[0106]
具体的,第二设备的服务器存储每次接收到网络检测数据对应的时间,如图3c或3d所示,当需要确定在预设次数内接收到网络检测数据的目标接收时间时,可以从服务器获取在预设次数内每一次接收到网络检测数据对应的时间。
[0107]
需要说明的是,图3c示例性表示在预设次数内接收到网络检测数据的目标接收时间是非常平均的,说明第一设备每30毫秒发送的数据,第二设备基本都是每隔30毫秒左右接收到数据,此时表征第一设备和第二设备之间的网络是通畅的。在另一种可实施方式中,如图3d所示,第二设备在预设次数内接收到网络检测数据的目标接收时间是离散的,例如第一次接收到网络检测数据的目标接收时间是130ms,第二次接收到网络检测数据的目标接收时间是0ms,...,第四次接收到网络检测数据的目标接收时间是0ms,造成上面现象的原因是前4个网络检测包由于网络非常拥塞,导致这4个数据延迟130毫秒后一次性接收到,所以第2,第3,第4个数据的接收时间是0毫秒,但只要在预设次数内,每次接收到网络检测数据的平均目标接收时间为30ms,即可表征第一设备和第二设备之间的网络是通畅的。
[0108]
s203、根据时间差值以及预设次数,确定目标接收时间。
[0109]
作为一种具体的可实施方式,根据时间差值以及预设次数,确定目标接收时间,包括:
[0110]
对第n次接收到网络检测数据的接收时间与第n-1次接收到网络检测数据的接收时间的时间差值进行求和处理确定目标时间差值;对目标时间差值与预设次数求商处理,确定目标接收时间。
[0111]
示例性的,结合图3c,当获取到第一次接收到网络检测数据对应的时间t1、第二次接收到网络检测数据对应的时间t2、...、以及第三十次接收到网络检测数据对应的时间t30后,可以确定在该预设次数内,对第n次接收到网络检测数据的接收时间与第n-1次接收到网络检测数据的接收时间的时间差值为tn-tn-1,然后将获取的n个时间差值进行求和处理,确定目标时间差值t=(t1-t30')+(t2-t1)+...+(t30-t29),其中,t30'为上一个预设次数内第三十次接收到网络检测数据对应的时间。在确定目标时间差值后,对目标时间差值与预设次数求商处理,确定目标接收时间,即目标接收时间t=t/30。
[0112]
本公开实施例提供的投屏数据传输方法,通过在接收到网络检测数据的次数等于预设次数时,基于获取的各网络检测数据的接收时间,确定在第n次接收到网络检测数据的接收时间与在第n-1次接收到网络检测数据的接收时间的差值以及预设次数,确定目标接收时间,即通过在满足预设次数时进行目标接收时间的确定,避免在每接收到一个网络检测数据,就确定一个目标接收时间,进而造成第二设备频繁计算第二目标接收时间,而造成
系统资源的浪费。
[0113]
图4a是本公开实施例提供的又一种投屏数据传输方法的流程示意图,图4b是本公开实施例提供的又一种投屏数据传输方法的信号流程示意图,本公开实施例是在上述实施例的基础上,如图4a和图4b所示,步骤s300的具体实施方式包括:
[0114]
s303、当目标接收时间大于预设接收时间时,发送指示指令至第一设备,以指示第一设备降低数据编码率和/或数据分辨率。
[0115]
通常来说,投屏数据编码参数包括数据编码率、数据分辨率等。其中,编码率是指编码器每秒编出的数据大小,单位是kbps,比如800kbps代表编码器每秒产生800kb(或100kb)的数据。分辨率是指单位英寸图像中所包含的像素点数。投屏数据编码参数的调整策略是根据网络带宽预估的变化程度而制定的不同的参数调整方式。例如,在不影响用户极限主观清晰度体验和卡顿体验情况的前提下,当预估网络带宽减小的程度较小时,优先调整数据编码码率;当预估网络带宽减小的程度较大时,便可以同时调整编码率和分辨率,从而达到降低带宽占用的效果,以降低投屏视频数据或音频数据的卡顿。各参数调整的具体数值可以预先建立一个参数值与网络带宽变化值的相关函数关系,依据函数确定具体的参数调整数值。在确定了具体的数据编码参数的调整策略之后,第一设备采用调整后的新的数据编码参数对还未进行编码的投屏数据进行编码,并在编码后发送到第二设备。当然,基于调整后的新的数据编码参数对还未进行编码的投屏数据进行编码的过程中,还会发送网络检测数据,进而对网络带宽进行预估,及时的调整数据编码参数,让投屏因为网络不可控的突发不稳定得以快速恢复,减少投屏卡顿、甚至投屏中断的情况,提升用于体验。
[0116]
图5a是本公开实施例提供的又一种投屏数据传输方法的流程示意图,图5b是本公开实施例提供的又一种投屏数据传输方法的信号流程示意图,本公开实施例是在上述实施例的基础上,如图5a和图5b所示,投屏数据传输方法执行步骤s303之时,还包括:
[0117]
s304、发送提示信息至第一设备和/或第二设备,通过第一设备和/或第二设备显示提示信息。
[0118]
作为一种可实施方式,示例性的,当第二设备检测到第一设备和第二设备网络卡顿时,通过通信通道返回提示信息至第一设备,以通过在第一设备的显示屏弹出提示信息“检测到网络卡顿,您可以通过选择投屏数据编码参数选项以优化投屏卡顿”,进而提示用户在第一设备选择调整投屏数据编码参数,此时,第一设备基于调整后的投屏数据编码参数对投屏数据进行重新编码后发送至第二设备。
[0119]
作为另一种可实施方式,示例性的,当第二设备检测到第一设备和第二设备网络卡顿时,通过输出提示信息,以通过在第二设备的显示屏弹出提示信息“检测到网络卡顿,您可以通过选择低分辨率选项以优化投屏卡顿”,进而提示用户在第二设备选择接收的投屏数据对应的投屏数据编码参数,并将选择的投屏数据编码参数通过通信通道返回至第一设备,第一设备在接收到通信通道返回的投屏数据编码参数后,根据用户选择的投屏数据编码参数对投屏数据进行重新编码后发送至第二设备。
[0120]
图6a是本公开实施例提供的又一种投屏数据传输方法的流程示意图,图6b是本公开实施例提供的又一种投屏数据传输方法的信号流程示意图,本公开实施例是在图4a对应的实施例的基础上,如图6a和图6b所示,步骤发送指示指令至第一设备之前还包括:
[0121]
s301、获取第二设备与第一设备的通信通道的网络带宽。
[0122]
其中,网络带宽是指在单位时间内,从第一设备到第二设备所能够通过的最大数据率。对网络带宽预估可以理解为确定网络带宽在接下来的时间中的变化趋势。网络带宽与数据传输时间有着相反的变化趋势。网络带宽越小,数据传输越长,网络带宽越大,数据传输越短。在具体的实施方式中,当确定目标接收时间大于预设接收时间时,此时,可以确定第一设备和第二设备之间的投屏通道的网络状态异常,而出现网络状态异常的原因可能是第一设备与第二设备之间通信通道的网络带宽较小,因此,可首先获取第一设备与第二设备的通信通道的网络带宽,通过判断第一设备与第二设备的通信通道对应的网络带宽,判断第一设备与第二设备网络状态异常是否是因为连接的网络带宽较低而造成的,从而避免直接调整投屏数据编码参数而使得第二设备接收到的投屏数据分辨率较低而影响用户的使用感受。
[0123]
s302、在通信通道的网络带宽为2.4g时,控制第二设备切换至5.0g网络带宽的通信通道。
[0124]
当获取到第二设备与第一设备的通信通道的网络带宽为2.4g时,可通过控制第二设备切换至5.0g网络带宽的通信通道,进而增大第二设备与第一设备的通信通道的网络带宽,提高数据传输效率,可避免直接调整投屏数据编码参数提高数据传输效率而使得第二设备接收到的投屏数据分辨率较低,影响用户的使用感受。
[0125]
此时,步骤s303的具体实施方式包括:
[0126]
s3030、在切换至5.0g网络带宽的通信通道后,确定接收到网络检测数据的目标接收时间与预设接收时间的关系。
[0127]
当通过调整通信通道的网络带宽提高第一设备与第二设备之间投屏数据的传输效率后,为避免即使增大网络带宽依旧会存在第一设备与第二设备之间通信通道网络异常的问题,在切换至5.0g网络带宽的通信通道后,确定接收到网络检测数据的目标接收时间与预设接收时间的关系。
[0128]
s3031、在目标接收时间大于预设接收时间时,发送指示指令至第一设备,以指示第一设备降低数据编码率和/或数据分辨率。
[0129]
当目标接收时间大于预设接收时间时,此时表征调整网络宽带后的通信通道依旧存在通信通道网络异常的问题,此时,发送指示指令至第一设备,以指示第一设备降低数据编码率和/或数据分辨率,进而提高数据传输效率,避免投屏数据出现卡顿等问题,影响用户使用感受。
[0130]
作为一种可实施方式,可选的,在获取到第一设备播放的视频数据和/或音频数据为动态数据时,接收第一设备发送的投屏数据。
[0131]
为了尽量减少网络负担,当第一设备播放的视频数据和/或音频数据没有变化时,第一设备暂停录屏,不再产生投屏数据,只有当第一设备播放的视频数据和/或音频数据有变化时,才产生投屏数据,并进行视频编码和/或音频编码,通过通信通道发送到第二设备,此时接收第一设备发送的投屏数据,基于投屏数据中包括的网络检测数据对第一设备与第二设备之间通信通道的网络状态进行检测。
[0132]
图7是本公开实施例提供的一种投屏数据传输装置的结构示意图,如图7所示,投屏数据传输装置包括:
[0133]
接收模块710,用于接收第一设备发送的投屏数据,其中,投屏数据至少包括网络
检测数据;
[0134]
目标接收时间确定模块720,用于确定在预设次数内接收到网络检测数据的目标接收时间;
[0135]
调整参数确定模块730,用于基于目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略。
[0136]
本公开实施例提供一种投屏数据传输装置,接收第一设备发送的投屏数据,其中,投屏数据至少包括网络检测数据;确定接收到网络检测数据的目标接收时间;基于目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略,即第二设备接收第一设备发送的投屏数据,该投屏数据中包括网络检测数据,第二设备在每次接收到网络检测数据后,基于第二设备当前的系统时间确定接收到网络检测数据的目标接收时间,如果第一设备和第二设备之间的网络通畅,每次接收到的网络检测数据的时间间隔应该在预设接收时间范围内,如果第一设备和第二设备之间的网络异常,每次接收到的网络检测数据的时间间隔会与预设接收时间有很大的出入,通过评估接收到网络检测数据的目标接收时间与预设接收时间的关系,确定第一设备和第二设备之间的网络状态,进而确定投屏数据编码参数的调整策略,保证第一设备和第二设备之间的投屏数据的正常发送,且网络检测数据是基于第一设备和第二设备建立的投屏通道发送的,因此,无需额外在第二设备开启线程进行网络状态检测,避免对系统资源的浪费。
[0137]
作为一种可实施方式,可选的,目标接收时间确定模块包括:
[0138]
接收时间确定单元,用于在接收到网络检测数据的次数等于预设次数时,依次获取接收到各网络检测数据的接收时间;
[0139]
时间差值确定单元,用于基于获取的各网络检测数据的接收时间,确定在第n次接收到网络检测数据的接收时间与在第n-1次接收到网络检测数据的接收时间的时间差值,其中,n为大于或等于1的整数;
[0140]
目标接收时间确定单元,用于根据时间差值以及预设次数,确定目标接收时间。
[0141]
作为一种可实施方式,可选的,目标接收时间确定单元的具体实现方式包括:
[0142]
对第n次接收到网络检测数据的接收时间与第n-1次接收到网络检测数据的接收时间的时间差值进行求和处理确定目标时间差值;
[0143]
对目标时间差值与预设次数求商处理,确定目标接收时间。
[0144]
作为一种可实施方式,可选的,调整参数确定模块包括:
[0145]
指示指令发送单元,用于当目标接收时间大于预设接收时间时,发送指示指令至第一设备,以指示第一设备降低数据编码率和/或数据分辨率。
[0146]
作为一种可实施方式,可选的,还包括:
[0147]
提示信息发送模块,用于发送提示信息至第一设备和/或第二设备,以通过第一设备和/或第二设备显示提示信息。
[0148]
作为一种可实施方式,可选的,还包括:
[0149]
网络带宽获取模块,用于获取第二设备与第一设备的通信通道的网络带宽;
[0150]
通信通道切换模块,用于在通信通道的网络带宽为2.4g时,控制第二设备切换至5.0g网络带宽的通信通道;
[0151]
此时,指示指令发送单元的具体实现方式包括:
[0152]
在切换至5.0g网络带宽的通信通道后,确定接收到网络检测数据的目标接收时间与预设接收时间的关系;
[0153]
在目标接收时间大于或等于预设接收时间时,发送指示指令至第一设备,以指示第一设备降低数据编码率和/或数据分辨率。
[0154]
本发明实施例所提供的装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
[0155]
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0156]
本公开还提供一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现上述方法实施例的步骤。
[0157]
图8为本公开提供的一种电子设备的结构示意图,图8示出了适于用来实现本发明实施例实施方式的示例性电子设备的框图。图8显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0158]
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:一个或者多个处理器810,系统存储器820,连接不同系统组件(包括系统存储器820和处理器)的总线830。
[0159]
总线830表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
[0160]
电子设备800典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备800访问的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0161]
系统存储器820可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)840和/或高速缓存存储器850。电子设备800可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统860可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom、dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线830相连。系统存储器820可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。
[0162]
具有一组(至少一个)程序模块870的程序/实用工具880,可以存储在例如系统存储器820中,这样的程序模块870包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块870通常执行本发明实施例所描述的实施例中的功能和/或方法。
[0163]
处理器810通过运行存储在系统存储器820中的多个程序中的至少一个程序,从而执行各种功能应用以及信息处理,例如实现本发明实施例所提供的方法实施例。
[0164]
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序
被处理器执行时实现上述方法实施例的步骤。
[0165]
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0166]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0167]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0168]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)域连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0169]
本公开还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行实现上述方法实施例的步骤。
[0170]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0171]
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:1.一种投屏数据传输方法,其特征在于,包括:接收第一设备发送的投屏数据,其中,所述投屏数据至少包括网络检测数据;确定在预设次数内接收到所述网络检测数据的目标接收时间;基于所述目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略。2.根据权利要求1所述的方法,其特征在于,所述确定在预设次数内接收到所述网络检测数据的目标接收时间,包括:在接收到所述网络检测数据的次数等于预设次数时,依次获取接收到各所述网络检测数据的接收时间;基于获取的各所述网络检测数据的接收时间,确定在第n次接收到网络检测数据的接收时间与在第n-1次接收到网络检测数据的接收时间的时间差值,其中,n为大于或等于1的整数;根据所述时间差值以及预设次数,确定目标接收时间。3.根据权利要求2所述的方法,其特征在于,所述根据所述时间差值以及预设次数,确定目标接收时间,包括:对第n次接收到网络检测数据的接收时间与第n-1次接收到网络检测数据的接收时间的时间差值进行求和处理确定目标时间差值;对所述目标时间差值与预设次数求商处理,确定目标接收时间。4.根据权利要求1所述的方法,其特征在于,所述投屏数据编码参数包括数据编码率和数据分辨率;所述根据所述目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略,包括:当所述目标接收时间大于预设接收时间时,发送指示指令至所述第一设备,以指示所述第一设备降低所述数据编码率和/或数据分辨率。5.根据权利要求4所述的方法,其特征在于,所述发送指示指令至所述第一设备之时,还包括:发送提示信息至所述第一设备和/或所述第二设备,以通过所述第一设备和/或第二设备显示提示信息。6.根据权利要求4所述的方法,其特征在于,所述发送指示指令至所述第一设备之前,还包括:获取所述第二设备与所述第一设备的通信通道的网络带宽;在所述通信通道的网络带宽为2.4g时,控制所述第二设备切换至5.0g网络带宽的通信通道;确定接收到所述网络检测数据的目标接收时间与预设接收时间的关系;所述发送指示指令至所述第一设备,包括:在所述目标接收时间大于或等于预设接收时间时,发送指示指令至所述第一设备,以指示所述第一设备降低所述数据编码率和/或数据分辨率。7.根据权利要求1所述的方法,其特征在于,所述接收第一设备发送的投屏数据,包括:在获取所述第一设备播放的视频数据和/或音频数据为动态数据时,接收第一设备发送的投屏数据。
8.一种投屏数据传输装置,其特征在于,包括:接收模块,用于接收第一设备发送的投屏数据,其中,所述投屏数据至少包括网络检测数据;目标接收时间确定模块,用于确定在预设次数内接收到所述网络检测数据的目标接收时间;调整参数确定模块,用于基于所述目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略。9.一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1~7中任一所述的方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~7中任一所述的方法。
技术总结本公开涉及一种投屏数据传输方法、装置、电子设备和存储介质,包括:接收第一设备发送的投屏数据,其中,投屏数据至少包括网络检测数据;确定在预设次数内接收到网络检测数据的目标接收时间;基于目标接收时间与预设接收时间的关系,确定投屏数据编码参数的调整策略,保证第一设备和第二设备之间的投屏数据的正常发送,且网络检测数据是基于第一设备和第二设备建立的投屏通道发送的,因此,无需额外在第二设备开启线程进行网络状态检测,避免对系统资源的浪费。统资源的浪费。统资源的浪费。
技术研发人员:宋子全 庞秀娟 马晓燕 刘美玉 朱雪生
受保护的技术使用者:海信视像科技股份有限公司
技术研发日:2022.07.13
技术公布日:2022/11/1