1.本发明涉及互联网技术领域,尤其是涉及一种投屏方法、装置及存储介质。
背景技术:
2.投屏是指将一台设备中的内容投放到另一台设备上进行显示的技术。随着计算机技术的发展,手机、平板电脑和笔记本电脑等计算机设备成为人们日常生活和工作中不可或缺的一部分。目前,在许多场景下,需要借助各种设备将需要投屏的内容进行投屏展示。
3.现有的投屏方法在将需要投屏的
图像数据投屏至接收端进行显示时,通常由接收端直接将采集端发送的图像数据进行显示,当采集端发送的数据不完整时,会出现黑屏或花屏现象,导致投屏效果较差。
技术实现要素:
4.本发明提供了一种投屏方法、装置及存储介质,以解决现有的投屏方法在将需要投屏的图像数据投屏至接收端进行显示时,通常由接收端直接将采集端发送的图像数据进行显示,当采集端发送的数据不完整时,会出现黑屏或花屏现象,导致投屏效果较差的技术问题。
5.本发明的一个实施例提供了一种投屏方法,包括:
6.获取接收端的投屏配置信息,
所述投屏配置信息包括显示配置信息和设备配置信息;
7.获取需要投屏的图像数据,基于所述投屏配置信息,对所述图像数据进行预处理,得到预处理图像数据;
8.将所述预处理图像数据存储在缓存队列中;
9.将所述缓存队列中的预处理图像数据以数据帧的形式传输至接收端,且在传输过程中将所述数据帧拆包成若干个
小包,所述接收端将接收到的若干个小包进行组包,若能够组成完整的数据帧,则在将所述数据帧显示至显示屏上。
10.进一步的,基于所述投屏配置信息,对所述图像数据进行预处理,得到预处理图像数据,包括:
11.确定是否需要配置投屏区域;
12.若是,则基于所述接收端的投屏配置信息,确定投屏区域;
13.根据所述投屏区域的尺寸,将所述需要投屏的图像数据裁剪为与所述图像区域适配的预处理图像数据;
14.若否,则基于所述接收端的显示配置信息,将所述需要投屏的图像数据等比缩放为与所述接收端的显示区域的宽或高一致的预处理图像数据。
15.进一步的,在得到预处理图像数据之后,还包括:
16.将所述预处理图像数据的分辨率调整至与所述接收端适配的分辨率。
17.进一步的,将所述预处理图像数据存储在缓存队列中,包括:
18.采用h264编码对预处理图像数据进行编码处理;
19.将编码后的预处理图像数据存储在缓存队列中,并以存储时间先后顺序对所述缓存队列中的预处理图像数据进行排列;
20.若所述缓存队列的存储空间已满,则将所述缓存队列中的第一个预处理图像数据丢弃,并更新所述缓存队列中预处理图像数据的排列顺序。
21.进一步的,所述在传输过程中将所述数据帧拆包成若干个小包,包括:
22.在传输过程中将所述数据帧拆包为若干个小包,记录每个小包的属性;其中,每个小包的大小小于网络通信的最大mtu值,每个小包的属性包括每个小包的所属数据帧和每个小包的编号;
23.进一步的,所述接收端将接收到的若干个小包进行组包,包括:
24.所述接收端根据每个小包的所述数据帧和每个小包的编号进行组包处理,若组包后无法得到完整的数据帧时,将所述数据帧对应的小包进行丢弃处理。
25.进一步的,所述将所述缓存队列中的预处理图像数据以数据帧的形式传输至接收端,还包括:
26.若在传输过程中出现传输干扰,所述接收端获取关键帧并显示在显示屏上。
27.本发明的一个实施例提供了一种投屏装置,包括:
28.配置信息获取模块,用于获取接收端的投屏配置信息,所述投屏配置信息包括显示配置信息和设备配置信息;
29.图像数据预处理模块,用于获取需要投屏的图像数据,基于所述投屏配置信息,对所述图像数据进行预处理,得到预处理图像数据;
30.图像数据缓存模块,用于将所述预处理图像数据存储在缓存队列中;
31.投屏模块,用于将所述缓存队列中的预处理图像数据以数据帧的形式传输至接收端,且在传输过程中将所述数据帧拆包成若干个小包,所述接收端将接收到的若干个小包进行组包,若能够组成完整的数据帧,则在将所述数据帧显示至显示屏上。
32.本发明实施例通过将编码处理之后的预处理图像存储在缓存队列中,在将预处理图像以数据帧的形式传输至接收端时,将数据帧拆包为若干个小包,接收端将接收到的若干个小包进行组包,在能够组成完整的数据帧时,将该数据帧显示在显示屏上,从而能够有效避免出现花屏或黑屏的现象,进而能够有效提高投屏显示的效果。
附图说明
33.图1是本发明实施例提供的投屏方法的流程示意图;
34.图2是本发明实施例提供的发起投屏设备终端的结构示意图。
35.图3是本发明实施例提供的投屏装置的结构示意图。
具体实施方式
36.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.在本技术的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
38.在本技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本技术中的具体含义。
39.请参阅图1,本发明的一个实施例提供了一种投屏方法,包括:
40.s1、获取接收端的投屏配置信息,投屏配置信息包括显示配置信息和设备配置信息;
41.在本发明实施例中,接收端和发送端均可以是手机、平板电脑、笔记本电脑、智能手环等移动终端,以及数字tv、台式计算机、智能液晶显示屏等固定终端。
42.在本发明实施例中,接收端是将画面进行投屏显示的一终端,为了能够有效提高投屏的效果,发送端可以获取接收端的投屏配置信息,根据接收端的投屏配置信息对需要投屏处理的图像数据进行预处理,使得需要投屏处理的图像数据满足接收端的投屏配置信息。投屏配置信息包括接收端本身的设备配置信息,以及显示配置信息,其中,显示配置信息可以包括投屏显示尺寸,投屏画面区域和投屏显示分辨率等。
43.s2、获取需要投屏的图像数据,基于投屏配置信息,对图像数据进行预处理,得到预处理图像数据;
44.在本发明实施例中,在获取到需要投屏的图像数据之后,需要将图像数据处理为符合投屏条件的预处理图像数据。若需要在对图像数据配置投屏区域,则直接对需要投屏的图像数据进行剪裁,以得到最终投屏的图像区域,该图像区域为预处理图像数据中的部分区域;若不需要对图像数据配置投屏区域,则可以通过对需要投屏的图像数据进行等比缩放处理,使得等比缩放处理之后的图像数据的宽与接收端的显示区域的宽一致,或等比缩放处理之后的图像数据的高与接收端的显示区域的高一致,在进行投屏时,显示区域中的未满区域不进行画面显示。本发明实施例无需对图像数据进行拉伸或非等比缩放处理,从而能够有效保证投屏画面不失真,进而能够有效提高投屏效果和观看体验。
45.s3、将预处理图像数据存储在缓存队列中;
46.在本发明实施例中,将预处理图像数据存储在缓存队列中,再通过缓存队列发送至接收端以进行投屏显示,在投屏过程中,即使能够根据缓存队列中预处理图像数据的存储顺序逐一投屏显示,能够有效提高投屏的效果。
47.s4、将缓存队列中的预处理图像数据以数据帧的形式传输至接收端,且在传输过程中将数据帧拆包成若干个小包,接收端将接收到的若干个小包进行组包,若能够组成完整的数据帧,则在将数据帧显示至显示屏上。
48.本发明实施例通过将编码处理之后的预处理图像存储在缓存队列中,在将预处理图像以数据帧的形式传输至接收端时,将数据帧拆包为若干个小包,接收端将接收到的若干个小包进行组包,在能够组成完整的数据帧时,将该数据帧显示在显示屏上,从而能够有
效避免出现花屏或黑屏的现象,进而能够有效提高投屏显示的效果。
49.在一个实施例中,获取需要投屏的图像数据,基于投屏配置信息,对图像数据进行预处理,得到预处理图像数据,包括:
50.确定是否需要配置投屏区域;
51.若是,则基于接收端的投屏配置信息,确定投屏区域;
52.根据投屏区域的尺寸,将需要投屏的图像数据裁剪为与图像区域适配的预处理图像数据;
53.在本发明实施例中,将需要投屏的图像数据裁剪为与图像区域适配的预处理图像数据,无需对需要投屏的图像数据进行非等比的拉伸或缩放处理,避免因对需要投屏的图像数据进行分等比的拉伸或缩放处理导致图像失真,从而能够有效提高投屏的效果。
54.若否,则基于接收端的显示配置信息,将需要投屏的图像数据等比缩放为与接收端的显示区域的宽或高一致的预处理图像数据。
55.在本发明实施例中,若不需要配置投屏区域,则需要将预处理图像数据完整投屏至接收端的显示屏上,本发明实施例根据接收端的显示区域,采用适应宽或适应高的方式,将预处理图像数据等比缩放为与接收端的显示区域的宽或高一致,然后再进行投屏,使得投屏和画面能够与投屏的显示区域的宽或高适配,且在投屏显示时,显示区域的未满区域不显示内容。
56.在一个实施例中,在得到预处理图像数据之后,还包括:
57.将预处理图像数据的分辨率调整至与接收端适配的分辨率。
58.在本发明实施例中,若接收端的显示分辨率小于图像数据的分辨率,则将图像数据的分辨率往下调整为与接收端适配的分辨率;若接收端的显示分辨率大于图像数据的分辨率,则将图像数据的分辨率往上调整为与接收端适配的分辨率。本发明实施例将图像数据的分辨率调整至与接收端适配的分辨率,能够有效提高投屏画面的清晰度,从而能够有效提高投屏效果。
59.在一个实施例中,将预处理图像数据存储在缓存队列中,包括:
60.采用h264编码对预处理图像数据进行编码处理;
61.在本发明实施例中,编码后的数据可以为i帧或b帧的数据帧形式。
62.本发明实施例采用h264编码对预处理图像数据进行编码处理,能够有效减少需要传输的数据量,在接收端的显示画面没有太大变化时需要传输的数据量较少。
63.将编码后的预处理图像数据存储在缓存队列中,并以存储时间先后顺序对缓存队列中的预处理图像数据进行排列;
64.若缓存队列的存储空间已满,则将缓存队列中的第一个预处理图像数据丢弃,并更新缓存队列中预处理图像数据的排列顺序。
65.在本发明实施例中,通过将编码后的预处理图像数据存储在缓存队列中,使得接收端能够根据缓存序列的缓存顺序进行投屏,能够有效提高投屏的流畅性。
66.在一个实施例中,将缓存队列中的预处理图像数据发送至接收端,包括:
67.将缓存队列中的第一个预处理图像数据发送至接收端,在接收端接收到第一个预处理图像数据后,在缓存队列中清除第一个预处理图像数据,并在间隔预设时间段后,将下一个预处理图像数据发送至接收端。
68.在本发明实施例中,缓存队列用于存储投屏的预处理图像数据,接收端根据预设的时间间隔逐个对缓存队列中的预处理图像数据进行投屏处理,并在对每一预处理图像数据进行投屏处理之后,删掉已经投屏处理的预处理图像数据,并更新缓存列表中预处理图像数据的顺序。
69.在一个实施例中,在传输过程中将数据帧拆包成若干个小包,包括:
70.在传输过程中将数据帧拆包为若干个小包,记录每个小包的属性;其中,每个小包的大小小于网络通信的最大mtu值,每个小包的属性包括每个小包的所属数据帧和每个小包的编号。
71.在本发明实施例中,预处理图像数据以数据帧的形式传输至接收端,该数据帧包括i帧形式和b帧形式。在传输过程中对数据帧进行拆包处理,并记录每个小包的属性,包括每个小包的数据帧和每个小包的编号,在接收端进行组包处理时,能够将同一数据帧的小包进行组包,且可以根据小包的编号顺序组包。
72.在一个实施例中,接收端将接收到的若干个小包进行组包,包括:
73.接收端根据每个小包的数据帧和每个小包的编号进行组包处理,若组包后无法得到完整的数据帧时,将数据帧对应的小包进行丢弃处理。
74.在本发明实施例中,当组包后无法得到完整的数据帧时,判定此时存在小包丢失的情况,若将此时得到的不完整数据帧进行显示,则会出现花屏或黑屏的现象,因此本发明实施例将该数据帧对应的小包进行丢弃处理。
75.在一个实施例中,将缓存队列中的预处理图像数据以数据帧的形式传输至接收端,还包括:
76.若在传输过程中出现传输干扰,接收端获取关键帧并显示在显示屏上。
77.在本发明实施例中,当传输过程中出现干扰时,可能会导致黑屏现象。例如电磁环境对wifi传输的干扰等。
78.本发明实施例在出现传输干扰时,通过快速请求关键帧,并将关键帧显示在显示屏上,能够有效避免出现黑屏的现象,从而能够进一步提高投屏显示的效果。
79.在本发明实施例中当用户进行投屏操作时,采集端以后台的方式运行,将采集的数据放到缓冲队列,当缓冲区满时,则丢弃队列的最先数据块,当接收到和采集端网络连接成功后,发送队列数据。
80.实施本发明实施例,具有以下有益效果:
81.本发明实施例通过将编码处理之后的预处理图像存储在缓存队列中,在将预处理图像以数据帧的形式传输至接收端时,将数据帧拆包为若干个小包,接收端将接收到的若干个小包进行组包,在能够组成完整的数据帧时,将该数据帧显示在显示屏上,从而能够有效避免出现花屏或黑屏的现象,进而能够有效提高投屏显示的效果。
82.请参阅图2,基于与上述实施例相同的发明构思,本发明的一个实施例提供了一种发起投屏设备终端100。
83.请参阅图2,该发起投屏设备终端100可以包括:处理器101、图形处理器102、电源103、wifi模块104、存储器105、显示单元106、用户输入单元107等部件。本领域技术人员可以理解,图2中示出的发起投屏设备终端10结构并不构成对发起投屏设备终端100的限定,发起投屏设备终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的
部件布置。
84.处理器101是发起投屏设备终端100的控制中心,利用各种接口和线路连接整个发起投屏设备终端100的各个部分,通过运行或执行存储在存储器105内的软件程序和/或模块,以及调用存储在存储器105内的数据,执行发起投屏设备终端100的各个功能和处理数据,从而对发起投屏设备终端100进行整体的监控。处理器101可包括一个或多个处理单元;优选的,处理器101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器101中。
85.图形处理器102用于处理和捕获屏幕图像数据,获得视频的图像数据进行处理。处理后的图像帧可以显示在显示单元106上。经过图形处理器102处理后的图像帧可以存储在存储器105(或其它存储介质)中或者经过wifi模块104进行发送。
86.电源103给其它部件供电,优选的,电源103可以通过电源管理系统与处理器101逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
87.wifi属于短距离无线通信技术,发起投屏设备终端通过wifi模块104可以帮助用户建立起与接收投屏设备终端100的连接。可以理解的是,其并不属于发起投屏设备端的必须构成,完全可以根据需要在不改变发明的本质范围内而替换为其它用于连接发起投屏设备终端和接收投屏设备终端的部件。
88.存储器105可用于存储软件程序以及各种数据。存储器105可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;此外,存储器105可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少包含一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
89.显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可以采用液晶显示器、有机发光二极管等形式来显示。
90.用户输入单元107可用于接收输入的数字、字符以及屏幕位置坐标等信息,以及产生与发起投屏设备终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单位107可包括触控面板(触摸屏)以及其他输入设备,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或触控面板附近的操作),并根据预先设定的程式驱动相应的连接装置。处理触控面板外,用户输入设备107还可以包括但不限于物理键盘、功能键、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。
91.进一步的,用户输入单元107如果是触控面板(触摸屏),则可以与显示单元106集成而实现发起投屏设备终端的输入和输出功能,具体此处不做限定。
92.尽管图2未示出,发起投屏设备终端100还可以包括蓝牙模块等,在此不做赘述。
93.请参阅图3,基于与上述实施例相同的发明构思,本发明的一个实施例提供了一种投屏装置,包括:
94.配置信息获取模块10,用于获取接收端的投屏配置信息,投屏配置信息包括显示配置信息和设备配置信息;
95.图像数据预处理模块20,用于获取需要投屏的图像数据,基于投屏配置信息,对图像数据进行预处理,得到预处理图像数据;
96.图像数据缓存模块30,用于将预处理图像数据存储在缓存队列中;
97.投屏模块40,用于将缓存队列中的预处理图像数据以数据帧的形式传输至接收端,且在传输过程中将数据帧拆包成若干个小包,接收端将接收到的若干个小包进行组包,若能够组成完整的数据帧,则将数据帧显示至显示屏上。
98.在一个实施例中,图像数据预处理模块20还用于:
99.确定是否需要配置投屏区域;
100.若是,则基于接收端的投屏配置信息,确定投屏区域;
101.根据投屏区域的尺寸,将需要投屏的图像数据裁剪为与图像区域适配的预处理图像数据;
102.若否,则基于接收端的显示配置信息,将需要投屏的图像数据等比缩放为与接收端的显示区域的宽或高一致的预处理图像数据。
103.在一个实施例中,图像数据预处理模块20还用于:
104.将预处理图像数据的分辨率调整至与接收端适配的分辨率。
105.在一个实施例中,图像数据缓存模块30还用于:
106.采用h264编码对预处理图像数据进行编码处理;
107.将编码后的预处理图像数据存储在缓存队列中,并以存储时间先后顺序对缓存队列中的预处理图像数据进行排列;
108.若缓存队列的存储空间已满,则将缓存队列中的第一个预处理图像数据丢弃,并更新缓存队列中预处理图像数据的排列顺序。
109.在一个实施例中,投屏模块40还用于:
110.在传输过程中将数据帧拆包为若干个小包,记录每个小包的属性;其中,每个小包的大小小于网络通信的最大mtu值,每个小包的属性包括每个小包的所属数据帧和每个小包的编号。
111.在一个实施例中,投屏模块40还用于:
112.接收端根据每个小包的数据帧和每个小包的编号进行组包处理,若组包后无法得到完整的数据帧时,将数据帧对应的小包进行丢弃处理。
113.在一个实施例中,投屏模块40还用于:
114.若在传输过程中出现传输干扰,接收端获取关键帧并显示在显示屏上
115.本发明的一个实施例提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行如上述的投屏方法。
116.以上是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
技术特征:
1.一种投屏方法,其特征在于,包括:获取接收端的投屏配置信息,所述投屏配置信息包括显示配置信息和设备配置信息;获取需要投屏的图像数据,基于所述投屏配置信息,对所述图像数据进行预处理,得到预处理图像数据;将所述预处理图像数据存储在缓存队列中;将所述缓存队列中的预处理图像数据以数据帧的形式传输至接收端,且在传输过程中将所述数据帧拆包成若干个小包,所述接收端将接收到的若干个小包进行组包,若能够组成完整的数据帧,则在将所述数据帧显示至显示屏上。2.如权利要求1所述的投屏方法,其特征在于,基于所述投屏配置信息,对所述图像数据进行预处理,得到预处理图像数据,包括:确定是否需要配置投屏区域;若是,则基于所述接收端的投屏配置信息,确定投屏区域;根据所述投屏区域的尺寸,将所述需要投屏的图像数据裁剪为与所述图像区域适配的预处理图像数据;若否,则基于所述接收端的显示配置信息,将所述需要投屏的图像数据等比缩放为与所述接收端的显示区域的宽或高一致的预处理图像数据。3.如权利要求1或2任意一项所述的投屏方法,其特征在于,在得到预处理图像数据之后,还包括:将所述预处理图像数据的分辨率调整至与所述接收端适配的分辨率。4.如权利要求1所述的投屏方法,其特征在于,将所述预处理图像数据存储在缓存队列中,包括:采用h264编码对预处理图像数据进行编码处理;将编码后的预处理图像数据存储在缓存队列中,并以存储时间先后顺序对所述缓存队列中的预处理图像数据进行排列;若所述缓存队列的存储空间已满,则将所述缓存队列中的第一个预处理图像数据丢弃,并更新所述缓存队列中预处理图像数据的排列顺序。5.如权利要求1所述的投屏方法,其特征在于,所述在传输过程中将所述数据帧拆包成若干个小包,包括:在传输过程中将所述数据帧拆包为若干个小包,记录每个小包的属性;其中,每个小包的大小小于网络通信的最大mtu值,每个小包的属性包括每个小包的所属数据帧和每个小包的编号。6.如权利要求5所述的投屏方法,其特征在于,所述接收端将接收到的若干个小包进行组包,包括:所述接收端根据每个小包的所述数据帧和每个小包的编号进行组包处理,若组包后无法得到完整的数据帧时,将所述数据帧对应的小包进行丢弃处理。7.如权利要求1所述的投屏方法,其特征在于,所述将所述缓存队列中的预处理图像数据以数据帧的形式传输至接收端,还包括:若在传输过程中出现传输干扰,所述接收端获取关键帧并显示在显示屏上。8.一种投屏装置,其特征在于,包括:
配置信息获取模块,用于获取接收端的投屏配置信息,所述投屏配置信息包括显示配置信息和设备配置信息;图像数据预处理模块,用于获取需要投屏的图像数据,基于所述投屏配置信息,对所述图像数据进行预处理,得到预处理图像数据;图像数据缓存模块,用于将所述预处理图像数据存储在缓存队列中;投屏模块,用于将所述缓存队列中的预处理图像数据以数据帧的形式传输至接收端,且在传输过程中将所述数据帧拆包成若干个小包,所述接收端将接收到的若干个小包进行组包,若能够组成完整的数据帧,则在将所述数据帧显示至显示屏上。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的投屏方法。
技术总结
本发明公开了一种投屏方法、装置及存储介质,其中方法包括:获取接收端的投屏配置信息,投屏配置信息包括显示配置信息和设备配置信息;获取需要投屏的图像数据,基于投屏配置信息,对图像数据进行预处理,得到预处理图像数据;将缓存队列中的预处理图像数据以数据帧的形式传输至接收端,且在传输过程中将数据帧拆包成若干个小包,接收端将接收到的若干个小包进行组包,若能够组成完整的数据帧,则在将数据帧显示至显示屏上。本发明能够有效提高投屏显示的效果。显示的效果。显示的效果。
技术研发人员:
刘金权 韦佳明
受保护的技术使用者:
杭州辰汉智能科技有限公司
技术研发日:
2022.11.22
技术公布日:
2023/3/21