CN114338624B - 无线投屏数据处理方法、智能终端及可读存储介质 - Google Patents
无线投屏数据处理方法、智能终端及可读存储介质 Download PDFInfo
- Publication number
- CN114338624B CN114338624B CN202210017461.4A CN202210017461A CN114338624B CN 114338624 B CN114338624 B CN 114338624B CN 202210017461 A CN202210017461 A CN 202210017461A CN 114338624 B CN114338624 B CN 114338624B
- Authority
- CN
- China
- Prior art keywords
- packet sequence
- data packets
- packet
- sequence number
- rtp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000012163 sequencing technique Methods 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种无线投屏数据处理方法、智能终端及可读存储介质,属于无线投屏技术领域。本发明通过在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域;判断所述待解码区域的数据缓存参数是否达到预设条件;在所述数据缓存参数达到所述预设条件后,对所述待解码区域中的所述N个RTP数据包进行排序;将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容,解决了在无线投屏时,一旦基于UDP传输的RTP数据包出现问题,投屏画面会出现花屏的问题,提高了无线投屏时投屏画面的质量。
Description
技术领域
本发明涉及无线投屏技术领域,尤其涉及一种无线投屏数据处理方法、智能终端及可读存储介质。
背景技术
投屏功能是指手机、平板、电脑等智能设备上面的显示信息通过投屏的方式同步到另一个设备上面进行观看,投屏内容主要涉及到屏幕镜像、音视频、图片等,目前在投屏时使用的传输方式有无线和有线传输两种。其中,无线投屏技术为人们带来了一种新的生活方式,会议、教学、游戏、观影等都变得的简单高效,与此同时,对无线投屏的实时性也有较高要求。因此,在使用无线传输方式投屏时,通常使用基于UDP(User DatagramProtocol,用户数据包协议)传输的RTP(Real-time Transport Protocol,实时传输协议)数据包的形式来传输待投屏的音视频数据。
其中,UDP的特点是发送数据之前不需要建立连接,减少了开销和发送数据之前的时延;没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低;且UDP使用尽最大努力交付,即不保证可靠交付,主机不需要维持复杂的连接状态表。但也正是由于这些特点,使得UDP本身没有可靠性保证、顺序保证和流量控制字段等功能,因此基于UDP传输RTP数据包时容易出现丢包或乱序的情况。
由于播放端的播放器编解码时因为缓存问题,不会将接收到的报文调整之后再进行编解码,因此,在无线投屏时,一旦基于UDP传输的RTP数据包出现问题,则播放器所编解码的音视频画面帧也会随之出现错误,从而导致无线投屏时,投屏画面出现花屏的问题。
发明内容
本发明的主要目的在于提供一种无线投屏数据处理方法,旨在改善在无线投屏时,投屏画面出现花屏的问题。
为实现上述目的,本发明提供一种无线投屏数据处理方法,所述无线投屏数据处理方法包括以下步骤:
在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域,其中,所述N个RTP数据包包含有待投屏的音视频数据;
判断所述待解码区域的数据缓存参数是否达到预设条件,其中,所述预设条件包括所述待解码区域存放所述N个RTP数据包的最大数量值和接收所述N个RTP数据包所用的最大时长;
在所述数据缓存参数达到所述预设条件后,对所述待解码区域中的所述N个RTP数据包进行排序;
将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容。
可选地,所述在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域的步骤之后,还包括:
累计所述接收到的所述N个RTP数据包的数量,并获取所述接收到的所述N个RTP数据包的实际数量值;
累计所述接收所述N个RTP数据包所用的时间,并获取所述接收所述N个RTP数据包所用的实际时长;将所述实际数量值和实际时长作为数据缓存参数。
可选地,所述判断所述待解码区域的数据缓存参数是否达到预设条件的步骤,具体包括:
判断所述实际数量值是否大于或等于所述最大数量值,并判断所述实际时长是否大于或等于所述最大时长;
当所述实际数量值大于或等于所述最大数量值或者所述实际时长大于或等于所述预设时长时,确定所述待解码区域的数据缓存参数达到预设条件;
当所述实际数量值小于所述最大数量值且所述实际时长小于所述预设时长时,确定所述待解码区域的数据缓存参数未达到预设条件,继续执行所述在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域的步骤。
可选地,所述对所述待解码区域中的所述N个RTP数据包进行排序步骤,具体包括:
分别获取所述待解码区域中的所述N个RTP数据包封装时的包序号;
根据所述包序号对所述N个RTP数据包进行排序。
可选地,所述根据所述包序号对所述N个RTP数据包进行排序的步骤之后,还包括:
获取所述N个RTP数据包的包序号序列;
判断所述包序号序列是否连续;
若所述包序号序列连续,则执行所述将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容步骤。
可选地,所述将所述排序后的N个RTP数据包发送至播放端的播放器解码,以播放对应投屏内容步骤之后,还包括:
重置所述待解码区域的数据缓存参数;
清空所述待解码区域,等待接收下一次投屏的RTP数据包信息。
可选地,所述判断所述包序号序列是否连续步骤之后,还包括:
若所述包序号序列不连续,则获取所述包序号序列中缺失的首个RTP数据包的第一包序号;
将所述包序号序列中,所述第一包序号之前的前置包序号所对应的RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容;
根据所述第一包序号重置当前的所述实际数量值和所述实际时长,继续执行在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域步骤。
可选地,所述获取所述包序号序列中缺失的首个RTP数据包的第一包序号的步骤之后,还包括:
判断所述第一包序号是否在所述包序号序列的首位;
若所述第一包序号在所述包序号序列的首位,则进一步判断所述第一包序号之后的包序号是否连续;
若连续,则继续执行将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容步骤;
若不连续,则获取所述包序号序列中第一包序号之后缺失的首个数据包的第二包序号,将第二包序号作为新的第一包序号,执行所述将所述包序号序列中,所述第一包序号之前的前置包序号所对应的RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容的步骤。
此外,为实现上述目的,本发明还提供一种智能终端,所述智能终端包括:存储器、处理器,其中,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现如上述的一种无线投屏数据处理方法的步骤。
本发明还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的一种无线投屏数据处理方法的步骤。
本发明通过在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域,其中,所述N个RTP数据包包含有待投屏的音视频数据;判断所述待解码区域的数据缓存参数是否达到预设条件,其中,所述预设条件包括所述待解码区域存放所述N个RTP数据包的最大数量值和接收所述N个RTP数据包所用的最大时长;在所述数据缓存参数达到所述预设条件后,对所述待解码区域中的所述N个RTP数据包进行排序;将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容的方法。在无线投屏时,通过在播放端创建一个待解码区域,同时限制待解码区域可存放RTP数据包的最大数量值和接收RTP数据包所用的最大时长,将接收到的RTP数据包排序后再发送至播放器解码,实现了在不影响无线投屏的实时性和不过多占用播放端***资源的前提下,有效改善了无线投屏时,投屏画面出现花屏的问题,提高了无线投屏时投屏画面的质量。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的智能终端的结构示意图;
图2为本发明一种无线投屏数据处理方法一实施例的流程示意图;
图3为图2中步骤S30一实施例的细化流程图;
图4为本发明一实施例中待解码区域中数据处理过程的示意图;
图5为本发明另一实施例中待解码区域中数据处理过程的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请使用的术语“或”、“和/或”、“包括以下至少一个”等可被解释为包括性的,或意味着任一个或任何组合。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
为了对发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的智能终端结构示意图。
本发明实施例的智能终端可以是电脑、电视、投影仪,也可以是智能手机、平板电脑、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该智能终端可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对智能终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作***、数据存储模块、网络通信模块、用户接口模块以及无线投屏数据处理程序。
在图1所示的智能终端中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明智能终端中的处理器1001、存储器1005可以设置在智能终端设备中,智能终端通过处理器1001调用存储器1005中存储的无线投屏数据处理程序,并执行以下操作:
在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域,其中,所述N个RTP数据包包含有待投屏的音视频数据;
判断所述待解码区域的数据缓存参数是否达到预设条件,其中,所述预设条件包括所述待解码区域存放所述N个RTP数据包的最大数量值和接收所述N个RTP数据包所用的最大时长;
在所述数据缓存参数达到所述预设条件后,对所述待解码区域中的所述N个RTP数据包进行排序;
将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容。
进一步地,处理器1001可以用于调用存储器1005中存储的无线投屏数据处理程序,还执行以下操作:
在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域的步骤之后,还包括:
累计所述接收到的所述N个RTP数据包的数量,并获取所述接收到的所述N个RTP数据包的实际数量值;
累计所述接收所述N个RTP数据包所用的时间,并获取所述接收所述N个RTP数据包所用的实际时长;将所述实际数量值和实际时长作为数据缓存参数。
进一步地,处理器1001可以用于调用存储器1005中存储的无线投屏数据处理程序,还执行以下操作:
判断所述待解码区域的数据缓存参数是否达到预设条件的步骤,具体包括:
判断所述实际数量值是否大于或等于所述最大数量值,并判断所述实际时长是否大于或等于所述最大时长;
当所述实际数量值大于或等于所述最大数量值或者所述实际时长大于或等于所述预设时长时,确定所述待解码区域的数据缓存参数达到预设条件;
当所述实际数量值小于所述最大数量值且所述实际时长小于所述预设时长时,确定所述待解码区域的数据缓存参数未达到预设条件,继续执行所述在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域的步骤。
进一步地,处理器1001可以用于调用存储器1005中存储的无线投屏数据处理程序,还执行以下操作:
对所述待解码区域中的所述N个RTP数据包进行排序步骤,具体包括:
分别获取所述待解码区域中的所述N个RTP数据包封装时的包序号;
根据所述包序号对所述N个RTP数据包进行排序。
进一步地,处理器1001可以用于调用存储器1005中存储的无线投屏数据处理程序,还执行以下操作:
根据所述包序号对所述N个RTP数据包进行排序的步骤之后,还包括:
获取所述N个RTP数据包的包序号序列;
判断所述包序号序列是否连续;
若所述包序号序列连续,则执行所述将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容步骤。
进一步地,处理器1001可以用于调用存储器1005中存储的无线投屏数据处理程序,还执行以下操作:
将所述排序后的N个RTP数据包发送至播放端的播放器解码,以播放对应投屏内容步骤之后,还包括:
重置所述待解码区域的数据缓存参数;
清空所述待解码区域,等待接收下一次投屏的RTP数据包信息。
进一步地,处理器1001可以用于调用存储器1005中存储的无线投屏数据处理程序,还执行以下操作:
所述判断所述包序号序列是否连续步骤之后,还包括:
若所述包序号序列不连续,则获取所述包序号序列中缺失的首个RTP数据包的第一包序号;
将所述包序号序列中,所述第一包序号之前的前置包序号所对应的RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容;
根据所述第一包序号重置当前的所述实际数量值和所述实际时长,继续执行在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域步骤。
进一步地,处理器1001可以用于调用存储器1005中存储的无线投屏数据处理程序,还执行以下操作:
所述获取所述包序号序列中缺失的首个RTP数据包的第一包序号的步骤之后,还包括:
判断所述第一包序号是否在所述包序号序列的首位;
若所述第一包序号在所述包序号序列的首位,则进一步判断所述第一包序号之后的包序号是否连续;
若连续,则继续执行将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容步骤;
若不连续,则获取所述包序号序列中第一包序号之后缺失的首个数据包的第二包序号,将第二包序号作为新的第一包序号,执行所述将所述包序号序列中,所述第一包序号之前的前置包序号所对应的RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容的步骤。
由于在无线投屏时,待投屏音视频数据通过基于UDP传输的RTP数据包的形式来进行传输,而UDP本身没有可靠性保证、顺序保证和流量控制字段等功能,因此,基于UDP传输RTP数据包容易出现丢包或乱序的情况。而播放端的播放器编解码因为缓存问题,也不会将接收到的数据包调整之后再进行编解码,因此,在无线投屏时,一旦基于UDP传输的RTP数据包出现问题,则播放器所编解码的音视频画面帧也会随之出现错误,从而导致无线投屏时,投屏画面出现花屏的问题。
为了解决上述问题,本发明提供了一种无线投屏数据处理方法,包括:在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域,其中,所述N个RTP数据包包含有待投屏的音视频数据;判断所述待解码区域的数据缓存参数是否达到预设条件,其中,所述预设条件包括所述待解码区域存放所述N个RTP数据包的最大数量值和接收所述N个RTP数据包所用的最大时长;在所述数据缓存参数达到所述预设条件后,对所述待解码区域中的所述N个RTP数据包进行排序;将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容。这种方法有效改善了在无线投屏时,投屏画面出现花屏的问题,提高了无线投屏时投屏画面的质量。
本发明实施例提供了一种无线投屏数据处理方法,参照图2,图2为本发明的一种无线投屏数据处理方法一实施例的流程示意图。
本实施例中,所述一种无线投屏数据处理方法包括:
步骤S10,在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域,其中,所述N个RTP数据包包含有待投屏的音视频数据。
在本实施例中,智能设备通过Miracast(无线互联技术)协议向播放端发送投屏请求,其中,智能设备是指具有计算处理能力的设备,包括但不限于手机、平板或电脑;Miracast是由Wi-Fi联盟于2012年所制定,以Wi-Fi直连为基础的无线显示标准,支持此标准的设备可透过无线方式分享视频画面;播放端可以是电脑、电视、投影仪,也可以是智能手机、平板电脑、便携计算机等具有显示功能的可移动式终端设备;
待投屏的音视频数据通过基于UDP的RTP数据包形式传输;其中,待投屏的音视频数据可以是屏幕镜像、音视频、图片等形式的待投屏内容数据;UDP的作用是提供了一种应用程序无需建立连接就可以发送封装的IP(Internet Protocol,网际互连协议)数据包的方法;RTP的作用是为数据提供具有实时特征的端对端传送服务,如在组播或单播网络服务下的交互式视频音频或模拟数据;
待解码区域是在播放端申请的缓存空间,用于存放无线投屏时接收到的N个的RTP数据包;其中,N是正整数。
可选地,步骤S10,在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域之后,还包括:
步骤S11,累计所述接收到的所述N个RTP数据包的数量,并获取所述接收到的所述N个RTP数据包的实际数量值。
步骤S12,累计所述接收所述N个RTP数据包所用的时间,并获取所述接收所述N个RTP数据包所用的实际时长;将所述实际数量值和实际时长作为数据缓存参数。
本实施例通过累计接收到的N个RTP数据包的数量和接收N个RTP数据包的时间,获得接收RTP数据包的实际数量值,即待解码区域存放的RTP数据包的实际数量值,和接收RTP数据包所用的实际时长,将实际数量值和实际时长作为数据缓存参数,用于判断是否满足预设条件,即作为判断停止接收和存放RTP数据包的前提条件,实现了对数据处理过程的时间限制,避免了由于数据处理过程时间过长而造成投屏画面卡顿的情况。
步骤S20,判断所述待解码区域的数据缓存参数是否达到预设条件,其中,所述预设条件包括所述待解码区域存放所述N个RTP数据包的最大数量值和接收所述N个RTP数据包所用的最大时长。
在本实施例中,接收N个RTP数据包所用的最大时长由实测用户所能接受的最大延迟时间及无线投屏时网络传输和编解码等环节耗时共同决定,可根据实际情况自定义;所述最大时长的一个优选值为200毫秒;
N个RTP数据包能存放的最大数量值由待解码区域的大小决定,用于限制在所述最大时长内接收的N个RTP数据包的数量;可根据实际情况自定义,所述最大数量值的一个优选区间为40~100个;一个优选值为50个。
可选地,步骤S20,判断所述待解码区域的数据缓存参数是否达到预设条件具体包括:
步骤S21,判断所述实际数量值是否大于或等于所述最大数量值,并判断所述实际时长是否大于或等于所述最大时长。
步骤S22,当所述实际数量值大于或等于所述最大数量值或者所述实际时长大于或等于所述预设时长时,确定所述待解码区域的数据缓存参数达到预设条件。
步骤S23,当所述实际数量值小于所述最大数量值且所述实际时长小于所述预设时长时,确定所述待解码区域的数据缓存参数未达到预设条件,继续执行所述在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域的步骤。
在本实施例中,实际数量值大于或等于最大数量值与实际时长大于或等于最大时长,满足任一项条件即可继续执行步骤S30。
本实施例通过判断待解码区域的数据缓存参数是否达到预设条件,判断是否继续接收和存放RTP数据包。满足了无线投屏的实时性要求,解决了在进行无线投屏数据处理时,在网络速度较快的情况下,在最大时长内接收到的RTP数据包数量可能过大,从而过多占用播放端的***空间的问题。通过限制数据处理数量和时间,实现了在不影响无线投屏实时性和不过多占用播放端***资源的前提下,进行数据处理的技术效果。
步骤S30,在所述数据缓存参数达到所述预设条件后,对所述待解码区域中的所述N个RTP数据包进行排序。
在本实施例中,对所述N个RTP数据包排序可以是升序排序,也可以是降序排序;
可选地,步骤S30,对所述待解码区域中的所述N个RTP数据包进行排序,参照图3,包括:
步骤S31,分别获取所述待解码区域中的所述N个RTP数据包封装时的包序号。
在本实施例中,包序号是数据包在封装时的封装信息之一;封装是指数据包利用网络在不同设备之间传输时,为了可靠和准确的发送到目的地,并且高效地利用传输资源,事先要对数据包进行拆分和打包,在所发送的数据包上附加上目标地址,本地地址,以及一些用于纠错的字节的过程。
步骤S32,根据所述包序号对所述N个RTP数据包进行排序。
本实施例通过包序号对待解码区域中的N个RTP数据包进行排序,完成了对传输过程中出现乱序的RTP数据包进行乱序恢复,改善了投屏时由于RTP数据包乱序而出现花屏的问题,提高了投屏画面的质量。
步骤S40,将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容。
可选地,步骤S40,将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容之后,还包括:
步骤S41,重置所述待解码区域的数据缓存参数。
步骤S42,清空所述待解码区域,等待接收下一次投屏的RTP数据包信息。
在本实施例中,重置所述待解码区域是指将接收RTP数据包的实际数量值及实际时长清零,清空待解码区域,以便进行后续的RTP数据包的接收。
本实施例通过重置数据缓存参数及清空待解码区域,释放了数据处理过程中占用的播放端的***空间,以便继续接收后续待投屏画面数据,实现了无线投屏数据处理的连续性,保证了投屏画面连续性的同时避免过多占用播放端的***空间而引发***资源问题。
本实施例中,通过在无线投屏的播放端,创建一个待解码区域,将接收到的RTP数据包先放入待解码区域中,与此同时,限制待解码区域存放RTP数据包的最大数量值及接收RTP数据所用的最大时长,前者用于限制在所述时长内接收的N个RTP数据包的数量,从而避免因为待解码区域缓存的RTP数据包过多,导致占用空间过大,引发***资源问题;后者用于限制无线投屏时接收N个RTP数据包所用的时间,避免投屏播放的延时时间过长,影响投屏画面的实时性;在待解码区域中,将播放端接收到的RTP数据包排序后再发送至播放器解码,实现了在不影响无线投屏的实时性和不过多占用播放端***资源的前提下,有效改善了无线投屏时,投屏画面出现花屏的问题,提高了无线投屏时投屏画面的质量。
进一步地,在本发明一种无线投屏数据处理方法中的另一实施例中,步骤S32,根据所述包序号对所述N个RTP数据包进行排序之后,还包括:
步骤S321,获取所述N个RTP数据包的包序号序列。
在本实施例中,根据包序号对N个RTP数据包进行排序后,根据这些排序后的RTP数据包的包序号获得相应的包序号序列。
步骤S322,判断所述包序号序列是否连续。
在本实施例中,判断包序号序列是否连续,还包括判断序列中的首位包序号与上一次播放中最后播放的数据包的包序号是否连续。
步骤S323,若所述包序号序列连续,则执行所述将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容步骤。
在本实施例中,获取完成排序后的N个RTP数据包的包序号序号,判断所述包序号序列是否连续是用于判断在传输过程中是否出现因乱序而导致RTP数据包没有及时传输过来的情况。
本实施通过判断排序后的N个RTP数据包的包序号序列是否连续,判断在传输过程中是否有RTP数据包没有及时传输过来,在包序列号连续的情况下才直接将这些数据包发送至播放端播放,避免了在播放投屏时由于缺包而造成花屏,提高了投屏画面质量。
可选地,步骤S322,判断所述包序号序列是否连续之后,还包括:
步骤S3221,若所述包序号序列不连续,则获取所述包序号序列中缺失的首个RTP数据包的第一包序号。
在本实施例中,由于正常传输过程的RTP数据包的包序号应当是连续的,例如前一个数据包的包序号为“1”,则后一个数据包的包序号应当为“2”。因此,若包序号序列不连续,则说明可能有RTP数据包因乱序而没有及时传输过来,此时则获取缺失的首个RTP数据包的第一包序号,例如当包序号序列为“1、2、4、5、6”时,则此时的第一包序号为“3”。
步骤S3222,将所述包序号序列中,所述第一包序号之前的前置包序号所对应的RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容。
在本实施例中,在获取了第一包序号后,先将第一包序号号之前的包序号所对应的顺序正常的RTP数据包发送至播放器播放,释放了待解码区域的缓存空间,可以继续接收后续RTP数据包。
步骤S3223,根据所述第一包序号重置当前的所述实际数量值和所述实际时长,继续执行在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域步骤。
在本实施例中,根据所述第一包序号重置后的实际数量值为所述最大数量值减去前一步骤中已发送的RTP数据包的数量值;重置后的所述时长为0,即重新开始计算接收后续RTP数据包所用的时间。
在继续执行在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域步骤后,根据重置后的实际数量值和实际实际重新开始累计,从而继续执行本发明的步骤S20,判断所述待解码区域的数据缓存参数是否达到预设条件。
本实施例通过将首个缺失的RTP数据包之前的所有数据包先发送至播放端播放,避免了投屏画面出现卡顿的同时,通过重置当前的实际数量值和实际时长,实现了继续接收后续RTP数据包,并在待解码区域的数据缓存参数再次达到预设条件时,对待解码区域中的RTP数据包重新排序,在此过程中若接收到首个缺失的数据包,则可以解决在传输过程中由于RTP数据包没有及时传输过来而造成的丢包问题,有效改善了这种原因造成的花屏问题。
为了更好的理解,下面进行举例说明,参照图4,图中的***数字用于表示RTP数据包的包序号。本实施例中,假设待解码区域预设的存放RTP数据包的最大数量值为10个(此处仅为了方便举例,在实际实施例中可以为更大的数量值,可根据实际情况确定)。则在待解码区域存放了10个数据包以后,执行步骤S30,执行结果如图4中数据处理之前的图所示。此时执行步骤S321,可得到1-4、6-11的包序号序列;执行步骤S322,发现所述包序号序列不连续;继续执行步骤S3221,获取到包序号序列中缺失的首个数据包的第一包序号为5;执行步骤S3222,执行结果如图4中数据处理之后的图所示;此后继续执行步骤S3223,则重置后的实际数量值为6,重置后的实际时间为0,然后重新从步骤S10开始执行。
本实施例中,通过获取排序后的N个RTP数据包的包序号序列,并判断所述包序号序列是否连续,获取了可能暂时没有传输过来的首个RTP数据包的第一包序号;将第一包序号的前置包序号所对应的RTP数据包先发送至播放器解码播放,根据所述第一包序号重置当前的所述实际数量值和所述实际时长,从而可以继续接收后续RTP数据包,若所述第一包序号所对应的RTP数据包在后续及时传输过来,则不会影响投屏画面的完整性,解决了针对RTP数据包由于没有及时传输过来而导致的乱序问题,调整了此种情况下的RTP数据包乱序,改善了因此种原因而导致投屏画面出现花屏的问题,提高了无线投屏时投屏画面的质量。
进一步地,在本发明一种无线投屏数据处理方法中的另一实施例中,步骤S3221,获取所述包序号序列中缺失的首个数据包的第一序列号之后,还包括:
步骤S01,判断所述第一包序号是否在所述包序号序列的首位。
在本实施例中,若所述第一包序号不在所述包序号序列的首位,则直接执行所述将所述包序号序列中,所述第一包序号之前的前置包序号所对应的RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容步骤即可。
步骤S02,若所述第一包序号在所述包序号序列的首位,则进一步判断所述第一包序号之后的包序号是否连续。
在本实施例中,进一步判断第一包序号之后的包序号是否连续是为了判断所述排序后的N个RTP数据包中,除了第一包序号对应的缺失的RTP数据包之外,是否还有其他缺失的数据包。
步骤S03,若连续,则继续执行将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容步骤。
步骤S04,若不连续,则获取所述包序号序列中第一包序号之后缺失的首个数据包的第二包序号,将第二包序号作为新的第一包序号,执行所述将所述包序号序列中,所述第一包序号之前的前置包序号所对应的RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容的步骤。
在本实施例中,包序号序列中第一包序号之后的包序号不连续,则说明所述排序后的N个RTP数据包中,有多个RTP数据包可能因为乱序而没有及时传输过来,此时,则一个一个处理,即获取第一包序号之后缺失的首个数据包的第二包序号,将第二包序号作为新的第一包序号继续进行处理。
为了更好的理解,下面进行举例说明,参照图5,图中的***数字用于表示数据包的包序号,其中,虚线框中的数字表示缺失的数据包的包序号。执行步骤S221,获取到缺失的首个数据包的第一包序号为5,执行结果如图5中的数据处理之前的图所示;执行步骤S01,得到此时的第一包序号5在此包序号序列中的首位;执行步骤S02,得到第一包序号之后的包序号不连续;执行步骤S04,得到第二包序号10,将第二包序号作为新的第一包序号,执行步骤S3222,即将包序号10之前的包序号对应的数据包发送至播放器解码播放,执行结果如图5中的数据处理之后的图所示;此后继续执行步骤S3223,则重置后的实际数量值为6,重置后的实际时间为0,然后重新从步骤S10开始执行。
本实施例中,通过判断第一包序号在包序号序列中的首位时,进一步判断包序号序列中第一包序号之后的包序号是否连续,从而判断在所述包序号序列中是否有多个缺失的包序号,即所述排序后的N个RTP数据包是否有多个数据包缺失;若包序号序列中第一包序号之后的包序号不连续,则获取第二包序号,将第二包序号作为第一包序号处理,解决了针对排序后的N个RTP数据包中有多个RTP数据没有及时传输过来而导致的乱序问题,调整了此种情况下的RTP数据包乱序,改善了因此种原因而导致投屏画面出现花屏的问题,提高了无线投屏时投屏画面的质量。
此外,本发明实施例还提供一种智能终端,所述智能终端包括:存储器、处理器,其中,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现上述实施例提供的无线投屏数据处理方法的步骤,具体的实施步骤可参照上述实施例,此处不再过多赘述。
进一步地,本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例提供的无线投屏数据处理方法的步骤,具体的实施步骤可参照上述实施例,此处不再过多赘述。
本发明实施例所提供的智能终端和可读存储介质用于实现上述实施例提供的无线投屏数据处理方法,改善了无线投屏时,投屏画面出现花屏的问题,与现有技术相比,本发明实施例提供的智能终端和可读存储介质的有益效果与上述实施例的无线投屏数据处理方法的有益效果相同,在此不做赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
1.一种无线投屏数据处理方法,其特征在于,包括以下步骤:
在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域,其中,所述N个RTP数据包包含有待投屏的音视频数据;
判断所述待解码区域的数据缓存参数是否达到预设条件,其中,所述预设条件包括所述待解码区域存放所述N个RTP数据包的最大数量值和接收所述N个RTP数据包所用的最大时长;
在所述数据缓存参数达到所述预设条件后,对所述待解码区域中的所述N个RTP数据包进行排序;
将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容;
其中,所述在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域的步骤之后,还包括:
累计所述接收到的所述N个RTP数据包的数量,并获取所述接收到的所述N个RTP数据包的实际数量值;
累计所述接收所述N个RTP数据包所用的时间,并获取所述接收所述N个RTP数据包所用的实际时长;将所述实际数量值和实际时长作为数据缓存参数;
其中,所述判断所述待解码区域的数据缓存参数是否达到预设条件的步骤,具体包括:
判断所述实际数量值是否大于或等于所述最大数量值,并判断所述实际时长是否大于或等于所述最大时长;
当所述实际数量值大于或等于所述最大数量值或者所述实际时长大于或等于所述最大时长时,确定所述待解码区域的数据缓存参数达到预设条件;
当所述实际数量值小于所述最大数量值且所述实际时长小于所述最大时长时,确定所述待解码区域的数据缓存参数未达到预设条件,继续执行所述在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域的步骤;
其中,所述对所述待解码区域中的所述N个RTP数据包进行排序的步骤之后,还包括:
获取所述N个RTP数据包的包序号序列;
判断所述包序号序列是否连续;
若所述包序号序列连续,则执行所述将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容步骤;
若所述包序号序列不连续,则获取所述包序号序列中缺失的首个RTP数据包的第一包序号;
将所述包序号序列中,所述第一包序号之前的前置包序号所对应的RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容;
根据所述第一包序号重置当前的所述实际数量值和所述实际时长,继续执行在接收到智能设备的投屏请求时,将接收到的N个RTP数据包,放入播放端的待解码区域步骤;
其中,所述获取所述包序号序列中缺失的首个RTP数据包的第一包序号的步骤之后,还包括:
判断所述第一包序号是否在所述包序号序列的首位;
若所述第一包序号在所述包序号序列的首位,则进一步判断所述第一包序号之后的包序号是否连续;
若连续,则继续执行将所述排序后的N个RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容步骤;
若不连续,则获取所述包序号序列中第一包序号之后缺失的首个数据包的第二包序号,将第二包序号作为新的第一包序号,执行所述将所述包序号序列中,所述第一包序号之前的前置包序号所对应的RTP数据包发送至所述播放端的播放器解码,以播放对应投屏内容的步骤;
其中,所述将所述排序后的N个RTP数据包发送至播放端的播放器解码,以播放对应投屏内容步骤之后,还包括:
重置所述待解码区域的数据缓存参数,将接收RTP数据包的实际数量值及实际时长清零;
清空所述待解码区域,等待接收下一次投屏的RTP数据包信息。
2.如权利要求1所述的一种无线投屏数据处理方法,其特征在于,所述对所述待解码区域中的所述N个RTP数据包进行排序步骤,具体包括:
分别获取所述待解码区域中的所述N个RTP数据包封装时的包序号;
根据所述包序号对所述N个RTP数据包进行排序。
3.一种智能终端,其特征在于,所述智能终端包括:存储器、处理器,其中,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至2中任一项所述的一种无线投屏数据处理方法的步骤。
4.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至2中任一项所述的一种无线投屏数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210017461.4A CN114338624B (zh) | 2022-01-07 | 2022-01-07 | 无线投屏数据处理方法、智能终端及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210017461.4A CN114338624B (zh) | 2022-01-07 | 2022-01-07 | 无线投屏数据处理方法、智能终端及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338624A CN114338624A (zh) | 2022-04-12 |
CN114338624B true CN114338624B (zh) | 2024-06-14 |
Family
ID=81025561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210017461.4A Active CN114338624B (zh) | 2022-01-07 | 2022-01-07 | 无线投屏数据处理方法、智能终端及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338624B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970215A (zh) * | 2020-10-21 | 2020-11-20 | 武汉中科通达高新技术股份有限公司 | 一种数据包管理方法及装置 |
CN113778364A (zh) * | 2021-09-24 | 2021-12-10 | 京东方科技集团股份有限公司 | 投屏方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104244109B (zh) * | 2014-09-19 | 2017-12-08 | 浙江宇视科技有限公司 | 一种媒体流可靠传输和接收的方法和装置 |
CN106330930A (zh) * | 2016-08-29 | 2017-01-11 | 烽火通信科技股份有限公司 | 基于流媒体丢包二次重传***及其方法 |
CN107396172A (zh) * | 2017-08-29 | 2017-11-24 | 四川长虹电器股份有限公司 | 低延迟投屏的方法 |
-
2022
- 2022-01-07 CN CN202210017461.4A patent/CN114338624B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970215A (zh) * | 2020-10-21 | 2020-11-20 | 武汉中科通达高新技术股份有限公司 | 一种数据包管理方法及装置 |
CN113778364A (zh) * | 2021-09-24 | 2021-12-10 | 京东方科技集团股份有限公司 | 投屏方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114338624A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111882626B (zh) | 图像处理方法、装置、服务器及介质 | |
CN111246284B (zh) | 视频流播放方法、***、终端及存储介质 | |
WO2019062050A1 (zh) | 直播管控方法、装置及电子设备 | |
CN107113461B (zh) | 媒体内容流 | |
WO2017219896A1 (zh) | 视频流的传输方法及装置 | |
US8537740B2 (en) | Mobile communication device and system supporting media flow control | |
US20220255866A1 (en) | Audio/video communication method, terminal, server, computer device, and storage medium | |
CA2758763C (en) | Method and device for fast pushing unicast stream in fast channel change | |
WO2017084467A1 (zh) | 一种视频流的处理方法、装置和*** | |
CN112104893B (zh) | 一种实现网页端无插件播放的视频流管理方法及装置 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN111010603A (zh) | 一种视频缓存转发处理方法及装置 | |
CN110996035B (zh) | 信息发送方法及装置 | |
CN114221909B (zh) | 数据传输方法、装置、终端及存储介质 | |
CN114338624B (zh) | 无线投屏数据处理方法、智能终端及可读存储介质 | |
CN112543374A (zh) | 一种转码控制方法、装置及电子设备 | |
CN115278319A (zh) | 一种投屏数据传输方法、装置、电子设备和存储介质 | |
US7853979B2 (en) | Method and system for uneven distribution of data | |
CN113596556B (zh) | 视频传输方法、服务器及存储介质 | |
JP2020150387A (ja) | 受信装置、サーバシステム及び受信プログラム | |
CN115278366B (zh) | 虚拟机视频流的数据处理方法、装置以及电子设备 | |
CN114268830A (zh) | 云导播同步方法、装置、设备及存储介质 | |
CN115712469A (zh) | 数据共享方法及装置 | |
US20240223812A1 (en) | Method for transmitting streaming media data and related device | |
WO2021259175A1 (zh) | 视频传输方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |