本申请涉及机顶盒技术领域,尤其涉及一种iptv4k音视频播放管理方法、装置、显示设备。
背景技术:
iptv(internetprotocoltelevision,交互式网络电视)是一种利用宽带网络,采用dsl(digitalsubscriberline,数字用户线路)或以太网等接入方式,通过网络机顶盒或pc向用户提供多种交互式的宽带音视频业务,包括音视频直播、音视频点播、游戏、音视频会议等业务。
随着高清、大码流4k直播频道的引入,基于bras(broadbandremoteaccessserver,宽带远程接入)组播复制难以满足大规模4k直播频道用户需求,需要对网络接入方式进行改造,因此需要将原有pppoe(pointtopointprotocoloverethernet,基于以太网的点对点通讯协议)的用户逐步迁移到ipoe(internetprotocoloverethernet,基于以太网的互联网协议)进行拨号接入。由于iptv机顶盒存在ipoe和pppoe并存的两种接入方式,其传输4k直播音视频数据时,传输服务质量参差不齐,特别是在网络质量较差的情况下,容易存在丢包现象,此时,往往采用丢包重传的方式,重复发送音视频数据包。
但是,重复发送大量音视频数据包,会造成数据重传率很高,致使音视频数据包中有效音视频数据较少,导致4k音视频播放时出现卡顿静帧,无法继续播放的问题。
技术实现要素:
本申请提供了一种iptv4k音视频播放管理方法、装置、显示设备,以解决在视频数据重传率特别高的情况下,4k视频节目播放卡顿、无法继续播放的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
第一方面,本申请实施例公开了一种iptv4k音视频播放管理方法,所述方法包括:
读取并解析4k音视频数据;
获取解析后音视频数据的rtp序号;
判断所述rtp序号是否连续;
若所述rtp序号连续,则将所述rtp序号对应的音视频数据发送至音视频模块进行播放;
若所述rtp序号不连续,则判断所述rtp序号是否过期;
若所述rtp序号过期,则丢弃所述rtp序号对应的音视频数据,并向音视频读取模块发送约定返回值。
第二方面,本申请实施例还提供了一种iptv4k音视频播放管理装置,包括:
存储器,用于存储指令;
处理器,用于执行所述存储器中存储的指令,并执行如第一方面所述的iptv4k音视频播放管理方法。
第三方面,本申请实施例还提供了一种显示设备,包括如第二方面所述的iptv4k音视频播放管理装置。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如第一方面所述的iptv4k音视频播放管理方法。
与现有技术相比,本申请的有益效果为:
本申请提供的iptv4k音视频播放管理方法解析读取到的音视频数据,并获得解析后的rtp序号,通过判断rtp序号是否连续来判定音视频数据是否有效,若rtp序号连续,则直接播放连续的音视频数据;若rtp序号不连续,再通过判断rtp序号是否过期来判定是否为重传数据,若rtp序号过期,则判定该音视频数据为重传数据,丢弃该音视频数据,并向音视频读取模块发送约定返回值,说明其为无效数据,如此可降低数据的重传率,减少数据包中的无效数据,有效避免4k视频卡顿,使其能够流畅播放,进而提高视频播放质量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种iptv4k音视频播放管理方法的流程图;
图2为本申请实施例提供的iptv4k音视频播放管理方法中s100的详细流程图;
图3为rtp报头协议结构的示意图;
图4为本申请实施例提供的iptv4k音视频播放管理方法中s600的详细流程图;
图5为本申请实施例提供的iptv4k音视频播放管理方法中s700的详细流程图;
图6为本申请实施例提供的一种iptv4k音视频播放管理装置的结构框图;
图7为本申请实施例提供的一种显示设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
现阶段iptv主要提供电视直播与视频点播业务,目前运营商一般采用bras设备作为个人宽带业务控制点,通过pppoe技术实现宽带用户的控制。随着三网融合业务的发展、新型终端的出现及更灵活用户控制技术的需求,业界开始推动ipoe逐步替代pppoe应用。如此iptv机顶盒存在ipoe和pppoe并存的两种接入方式,服务器在多种网络环境下提供数据服务,造成提供数据服务的服务质量参差不齐,特别是在网络质量较差的情况下,容易存在丢包现象,目前为解决此问题,采用丢包重传的方式。
即接收端在收到不连续的数据包时,会主动向发送方请求尚未收到的缺失包,发送方收到重传请求后,会向接收方重新发送请求的包。但当网络拥塞较为严重时,会重复发送大量的数据包,造成数据重传率特高(50%),导致数据包中存在大量无效数据,如此4k视频数据播放时,出现卡顿静帧,无法继续播放的问题。
为了解决上述问题,本申请实施例提供了一种iptv4k音视频播放管理方法,该方法可在数据重传率较高的情况下,减少数据包中的无效数据,增加数据包中的有效数据,有效避免了4k节目卡住不播放,使其能够流畅播放。
如图1所示,本申请实施例提供的iptv4k音视频播放管理方法包括:
s100:读取并解析4k音视频数据。
将iptv机顶盒的传输方式设置为mpts(single-programtransportstream,单节目传输流)/rtp(real-timetransportprotocol,实时传输协议)/udp(userdatagramprotocol,用户数据报协议),本示例以rtp与udp为例进行读取4k音视频数据,具体方法如图2所示:
s101:udp读取音视频数据。
s102:判断udp是否读取到音视频数据。
s103:若udp读取到音视频数据,则rtp解析音视频数据。
s104:若udp未读取到音视频数据,则返回继续读取音视频数据。
服务器端通过udp向iptv机顶盒提供rtp数据包,iptv机顶盒接收到rtp数据包后,通过rtp协议解析该数据包,得到rtp报头。
s200:获取解析后音视频数据的rtp序号。
如图3所示,rtp报头含有:v,rtp协议的版本号,占2位(第0个8位的0-1),当前协议版本号为2;p,填充标志,占1位(第0个8位的2),如果p=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分;x,扩展标志,占1位(第0个8位的3),如果x=1,则在rtp报头后跟有一个扩展报头;cc,csrc(contributingsource,特约信源)计数器,占4位(第0个8位的4-7),指示csrc标识符的个数;m,标记,占1位(第1个8位的0),不同的有效载荷有不同的含义,对于视频,标记一帧的技术,对于音频,标记会话的开始;载荷类型pt,占7位(第1个8位的1-7),用于说明rtp报文中有效载荷的类型,如gsm音频、jpem图像等;序列号,占16位(第2个8位的0-第3个8位的7),用于标识发送者所发送的rtp报文的序列号,每发送一个报文,序列号增1,接收者可通过序列号来检测报文丢失情况,重新排序报文,恢复数据;时间戳,占32位,反映了该rtp报文的第一个八位组的采样时刻,接收者使用时间戳来计算延迟和延迟抖动,并进行同步控制;同步信源(ssrc)标识符,占32位,用于标识同步信源,该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的ssrc;特约信源(csrc)标识符,每个csrc标识符占32位,可以有0-15个,每个csrc标识了包含在该rtp报文有效载荷中的所有特约信源。
通过rtp协议解析数据包得到rtp报头后,获取rtp报头中的序列号,即rtp序号。
s300:判断rtp序号是否连续。
iptv机顶盒接收到的rtp数据报文后,解析获得rtp序列号,可通过判断rtp序号是否连续来检测报文是否有丢失或重传,若rtp序号连续,则执行s400;若rtp序号不连续,则执行s500。
s400:将rtp序号对应的音视频数据发送至音视频模块进行播放。
若rtp序号连续,说明iptv机顶盒接收到的rtp报文不存在数据丢失或重传的情况,该rtp报文为完整的4k音视频数据,此种情况下视频播放不会卡住不播放,因此可取走该音视频数据,将其发送至音视频模块直接进行播放。
s500:判断rtp序号是否过期。
若rtp序号不连续,可能是丢失数据,也可能是重传数据,使得rtp序号缺失或是存在播放过音视频数据的rtp序号,如此可通过判断rtp序号是否过期来判断是否存在重传数据。若rtp序号过期,说明存在重传数据,则执行s600;若rtp序号未过期,说明不存在重传数据,则执行s700。
s600:丢弃rtp序号对应的音视频数据,并向音视频读取模块发送约定返回值。
若rtp报文中存在重传数据,则说明udp读取到音视频数据,但是音视频数据是无效数据,则丢弃该音视频数据,并向音视频读取模块发送一个约定返回值,以向音视频读取模块说明该音视频数据为无效数据。向音视频读取模块发送约定返回值后,音视频读取模块的后续处理方法如图4所示:
s801:音视频读取模块读取音视频数据。
s802:判断音视频读取模块是否读取到音视频数据。
s803:若音视频读取模块读取到音视频数据,则将音视频数据送到解码器进行解码。
s804:若音视频读取模块未读取到音视频数据,则判断音视频读取模块是否接收到约定返回值。
s805:若音视频读取模块接收到约定返回值,则继续读取音视频数据。
s806:若音视频读取模块未接收到约定返回值,则调用sleep,让出cpu资源。
如果音视频模块读取到音视频数据,则直接将音视频数据送到解码器进行解码。
如果音视频读取模块没有读取到音视频数据,可能是udp没有读取到音视频数据,也可能是udp数据读取到无效数据,致使音视频模块没有读取到音视频数据,可通过音视频模块是否接收到约定返回值来区分。若音视频读取模块接收到约定返回值,则说明udp读取的数据为重传数据,这种情况下不能将当前任务后置,应该继续让cpu运行该读取任务,继续读取音视频数据(因为4k播放数据量极大,如果读不到有效数据的情况下,会引起卡顿);若音视频读取模块没有接收到约定返回值,则说明udp没有读取到音视频数据,这种情况下需要调用sleep,让出cpu资源,暂不执行数据读取任务,可执行解码任务等其他任务。
s700:若rtp序号未过期,则对rtp序号进行排序,并将排序后的音视频数据发送至音视频模块进行播放。
若rtp报文中不存在重传数据,则说明udp读取到有效的音视频数据,但音视频数据的顺序是混乱的,为保证4k视频的流畅播放,需对rtp序号进行排序,使得读取到的音视频数据按视频顺序先后进行排列,以顺序播放音视频数据。对rtp序号进行排序的具体方法如图5所示:
s701:将rtp序号插入排序队列,对音视频数据进行排序。
s702:判断排序队列是否已满。
s703:若排序队列已满,则从队列中取走音视频数据,并播放排序后的音视频数据。
s704:若排序队列未满,则继续读取音视频数据。
对rtp序号进行排序时,按照rtp序号的大小将rtp序号依次插入排序队列中,若读取到的有效音视频数据能够将排序队列排满,则从队列中取走音视频数据进行播放;若读取到的有效音视频数据未能将排序队列排满,则继续通过udp读取音视频数据,判定其为有效数据后,将该音视频数据的rtp序号按照大小插入排序队列中,直至将排序队列排满。
本申请实施例提供的iptv4k音视频播放管理方法通过udp读取音视频数据,之后通过rtp解析音视频数据,获得rtp序号,在rtp序号连续增加的情况下,可直接取走音视频数据进行播放;在rtp序号不连续且rtp序号过期的情况下,向音视频模块发送一个约定返回值,说明udp读取到数据,但是数据是无效数据,则丢弃该数据,音视频读取模块没有读取到数据,而接收到约定返回值,这种情况下继续让cpu运行数据读取任务;在rtp序号不连续且rtp序号未过期的情况下,对rtp序号进行排序,并对排序后的音视频数据进行播放;若udp没有读取到音视频数据,则调用sleep,让出cpu资源,让cpu运行其他任务。如此使得在网络数据重复率很高的情况下,减少音视频数据中的重传数据,提高音视频数据中的有效数据,有效避免了4k节目卡住不播放,且音视频数据按照顺序播放,保证了节目清晰流畅播放,从而大大提高了视频播放质量。
基于上述实施例所述的一种iptv4k音视频播放管理方法,本申请实施例还提供了一种iptv4k音视频播放管理装置。
如图6所示,本申请实施例提供的iptv4k音视频播放管理装置包括:
存储器,用于存储指令。
处理器,用于执行存储器中存储的指令,以执行上述实施例所述的iptv4k音视频播放管理方法。
本申请上述实施例所述的播放管理装置通过udp读取音视频数据,之后通过rtp解析音视频数据,获得rtp序号,在rtp序号连续增加的情况下,可直接取走音视频数据进行播放;在rtp序号不连续且rtp序号过期的情况下,向音视频模块发送一个约定返回值,说明udp读取到数据,但是数据是无效数据,则丢弃该数据,音视频读取模块没有读取到数据,而接收到约定返回值,这种情况下继续让cpu运行数据读取任务;在rtp序号不连续且rtp序号未过期的情况下,对rtp序号进行排序,并对排序后的音视频数据进行播放;若udp没有读取到音视频数据,则调用sleep,让出cpu资源,让cpu运行其他任务。如此使得在网络数据重复率很高的情况下,减少音视频数据中的重传数据,提高音视频数据中的有效数据,有效避免了4k节目卡住不播放,且音视频数据按照顺序播放,保证了节目清晰流畅播放,从而大大提高了视频播放质量。
在上述实施例的基础上,本申请还提供了一种显示设备,如图7所示,该显示设备包括上述实施例所述的iptv4k音视频播放管理装置,该装置通过判断音视频数据的rtp序号是否连续及rtp序号是否过期来判断该音视频数据是否为重传数据,若为重传数据,则丢弃重传的音视频数据,以在网络数据重复率很高的情况下,减少音视频数据中的重传数据,有效避免4k节目卡住不播放,使其能够流畅播放。
在上述显示设备实施例的基础上,本申请还提供了一种计算机可读存储介质,该计算机存可读储介质上存储有计算机指令,该存储介质可为包括指令的存储器,指令可由显示设备的处理器执行以完成上述实施例所述的iptv4k音视频播放管理方法。
基于上述实施例提供的计算机可读存储介质,可以通过显示设备下发4k音视频播放管理指令,以在网络数据重复率很高的情况下,减少音视频数据中的重传数据,提高音视频数据中的有效数据,让4k节目清晰流畅播放,大大提高了4k视频播放质量。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的电路结构、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种电路结构、物品或者设备所固有的要素。在没有更多限制的情况下,有语句“包括一个……”限定的要素,并不排除在包括所述要素的电路结构、物品或者设备中还存在另外的相同要素。
本领域技术人员在考虑说明书及实践这里发明的公开后,将容易想到本申请的其他实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求的内容指出。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
1.一种iptv4k音视频播放管理方法,其特征在于,所述方法包括:
读取并解析4k音视频数据;
获取解析后音视频数据的rtp序号;
判断所述rtp序号是否连续;
若所述rtp序号连续,则将所述rtp序号对应的音视频数据发送至音视频模块进行播放;
若所述rtp序号不连续,则判断所述rtp序号是否过期;
若所述rtp序号过期,则丢弃所述rtp序号对应的音视频数据,并向音视频读取模块发送约定返回值。
2.根据权利要求1所述的iptv4k音视频播放管理方法,其特征在于,读取并解析4k音视频数据,包括:
udp读取音视频数据;
判断所述udp是否读取到所述音视频数据;
若所述udp读取到所述音视频数据,则rtp解析所述音视频数据。
3.根据权利要求1所述的iptv4k音视频播放管理方法,其特征在于,丢弃所述rtp序号对应的音视频数据,并向音视频读取模块约定返回值,之后包括:
音视频读取模块读取音视频数据;
判断所述音视频读取模块是否读取到所述音视频数据;
若所述音视频读取模块读取到所述音视频数据,则将所述音视频数据送到解码器进行解码;
若所述音视频读取模块未读取到所述音视频数据,则判断所述音视频读取模块是否接收到约定返回值;
若所述音视频读取模块未接收到所述约定返回值,则调用sleep,让出cpu资源;
若所述音视频读取模块接收到所述约定返回值,则继续读取音视频数据。
4.根据权利要求1所述的iptv4k音视频播放管理方法,其特征在于,所述方法还包括:
若所述rtp序号不连续且未过期,则对所述rtp序号进行排序,并将排序后的音视频数据发送至音视频模块进行播放。
5.根据权利要求4所述的iptv4k音视频播放管理方法,其特征在于,对所述rtp序号进行排序,并播放排序后的音视频数据,包括:
将所述rtp序号插入排序队列,对所述音视频数据进行排序;
判断所述排序队列是否已满;
若所述排序队列已满,则从队列中取走所述音视频数据,并播放排序后的音视频数据;
若所述排序队列未满,则继续读取音视频数据。
6.一种iptv4k音视频播放管理装置,其特征在于,包括:
存储器,用于存储指令;
处理器,用于执行所述存储器中存储的指令,并执行如权利要求1-5任一项所述的iptv4k音视频播放管理方法。
7.一种显示设备,其特征在于,包括如权利要求6所述的iptv4k音视频播放管理装置。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1-5任一项所述的iptv4k音视频播放管理方法。
技术总结