流媒体数据播放方法及播放器与流程

文档序号:13516609阅读:389来源:国知局
流媒体数据播放方法及播放器与流程

本发明涉及通信技术,尤其涉及一种流媒体数据播放方法及播放器。



背景技术:

随着网络电视、通信技术及流媒体产品的迅速发展,流媒体播放系统逐渐成为热点。

单小区点对多点sc-ptm(single-cellpointtomultipoint)规范支持接收端同时接收单播方式和组播方式传输的同一业务的流媒体数据。但是,由于单播方式传输数据的通道与组播方式传输数据的通道不同,两个通道上传输的流媒体数据是彼此独立的。因此,目前,在流媒体数据播放方面,流媒体播放器一般只接收其中一种通道上传输的数据,丢包现象较严重,播放效果较差。



技术实现要素:

本发明提供一种流媒体数据播放方法及播放器,以避免发生丢包现象,提高流媒体播放器的播放效果。

本发明一方面提供一种流媒体数据播放方法。本发明提供的流媒体数据播放方法,包括如下步骤:

接收组播业务通道和专用业务通道传输的同一业务的流媒体数据包,上述流媒体数据包携带标识信息;

根据上述标识信息,判断流媒体播放器的播放缓存中是否存在上述流媒体数据包;

若上述播放缓存中不存在上述流媒体数据包,则将上述流媒体数据包存入到上述播放缓存中;

播放上述播放缓存中已经存入的流媒体数据包。

进一步地,在本发明一实施例中,上述标识信息为上述流媒体数据包包头携带的序列号或同步源标识符,上述序列号或上述同步源标示符是在发送端或网络应用层对流媒体数据进行封包处理时在流媒体数据包包头生成的。

进一步地,上述播放上述播放缓存中已经存入的流媒体数据包具体为:

根据上述流媒体数据包包头携带的序列号,顺序播放上述播放缓存中已经存入的流媒体数据包。

进一步地,在本发明一实施例中,上述标识信息为上述流媒体数据包扩展包头中携带的序列号;上述序列号是在网络应用层对接收到的流媒体数据包增加扩展包头的过程中生成的。

进一步地,上述播放上述播放缓存中已经存入的流媒体数据包具体为:

根据上述流媒体数据包扩展包头中携带的序列号,顺序播放上述播放缓存中已经存入的流媒体数据包。

进一步地,在本发明一实施例中,上述根据上述标识信息,判断流媒体播放器的播放缓存中是否存在上述流媒体数据包之后,还包括:

若上述播放缓存中存在上述流媒体数据包时,或者是,上述播放缓存无剩余缓存空间时,或者是,上述标识信息失效时,则将上述流媒体数据包丢弃。

本发明另一方面提供一种流媒体播放器。本发明提供的流媒体播放器,包括:接收模块、判断模块、缓存模块、播放模块;其中:

上述接收模块,用于接收组播业务通道和专用业务通道传输的同一业务流媒体数据包,上述流媒体数据包均携带标识信息;

上述判断模块,用于根据上述标识信息,判断流媒体播放器的播放缓存中是否存在上述流媒体数据包;

上述缓存模块,用于当判断模块判断上述播放缓存中不存在上述流媒体数据包时,将上述流媒体数据包存入到上述播放缓存中;

上述播放模块,用于播放上述播放缓存中已经存入的流媒体数据包。

进一步地,在本发明一实施例中,上述标识信息为上述流媒体数据包包头携带的序列号或同步源标识符,上述序列号或上述同步源标识符是在发送端或网络应用层对流媒体数据进行封包处理时在流媒体数据包包头生成的。

进一步地,上述播放模块,具体用于,

根据上述流媒体数据包包头携带的序列号,顺序播放上述播放缓存中已经存入的流媒体数据包。

进一步地,在本发明一实施例中,上述标识信息为上述流媒体数据包扩展包头中携带的序列号;上述序列号是在网络应用层对接收到的流媒体数据包增加扩展包头的过程中生成的。

进一步地,上述播放模块,具体用于,

根据上述流媒体数据包扩展包头中携带的序列号,顺序播放上述播放缓存中已经存入的流媒体数据包。

本发明提供的流媒体数据播放方法及播放器,流媒体播放器在播放流媒体数据时,同时接收组播业务通道和专用业务通道传输的同一业务的流媒体数据包,上述流媒体数据包均携带标识信息;并根据上述标识信息,判断流媒体播放器的播放缓存中是否存在上述流媒体数据包;当上述播放缓存中不存在上述流媒体数据包,则将上述流媒体数据包存入到上述播放缓存中,可有效地避免了丢包现象的发生,播放效果较好。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明流媒体数据播放方法实施例一的流程图;

图2为本发明流媒体播放器实施例一的示意图;

图3为本发明流媒体数据播放方法实施例二的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实时传输协议(real-timetransportprotocol,rtp)是在internet上处理流媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多(multicast,组播)的网络环境中实现传流媒体数据的实时传输。其中,单播模式是一种一对一的通讯模式,其采用专用业务通道传输数据;组播模式是一种一对多的通讯模式,需要说明的是,这里的多指的是有需要的多个接收端。

单小区点对多点sc-ptm(single-cellpointtomultipoint)规范支持接收端同时接收单播方式和组播方式传输的同一业务的流媒体数据。但是,由于单播方式在传输数据时采用的是专用业务通道,而组播方式在传输数据时采用的是组播业务通道,而这两个通道是完全不同的,因而这两个通道上传输的流媒体数据是彼此独立的。因此,目前,在流媒体数据播放方面,流媒体播放器一般只选择其中一种通道上传输的数据进行接收,而只选择其中一种通道上传输的数据进行接收时,由于该通道传输数据存在一定的丢包现象。此时,流媒体播放器没法利用另一种通道上传输的数据,播放效果较差,业务质量较差。

本发明提供一种流媒体数据播放方法及播放器,以避免发生丢包现象,提高流媒体播放器的播放效果。

实施例一

图1为本发明实施例一提供的流媒体数据播放方法。本实施例提供的流媒体数据播放方法,包括如下步骤:

s101、接收组播业务通道和专用业务通道传输的同一业务的流媒体数据包,上述流媒体数据包携带标识信息。

具体地,根据实时传输rtp协议,在进行流媒体数据传输时,发送端首先对流媒体数据进行封包处理,生成流媒体数据包,即生成rtp包;其次,发送端将上述流媒体数据包发送到网络应用层,网络应用层根据接收端的请求,将同一业务的流媒体数据包通过单播或组播的方式传输给接收端,即网络应用层将流媒体数据通过组播业务通道和专用业务通道传输给接收端,接收端接收上述组播业务通道和专用业务通道传输的同一业务的流媒体数据包。

更具体地,上述流媒体数据即可以是音频数据,也可以是视频数据,还可以是同时包含音频数据和视频数据的流媒体数据。

需要说明的是,上述流媒体数据包携带标识信息,具体地,标识信息可用于区分流媒体数据包携带的内容的不同。例如,在同一业务中,对于在上述两个不同的通道中传输的两个内容相同的流媒体数据包来说,这两个流媒体数据包携带的标识信息是相同的;而对于在上述两个不同的通道中传输的两个内容不同的流媒体数据包来说,这两个流媒体数据包携带的标识信息是不同的。

s102、根据上述标识信息,判断流媒体播放器的播放缓存中是否存在上述流媒体数据包。

具体地,在流媒体播放器播放流媒体数据的过程中,流媒体播放器通常将接收到的流媒体数据包缓存到播放缓存中,当播放缓存中已经存入的流媒体数据达到预设的数据量时,才开始播放播放缓存中已经存入的流媒体数据。

由于对于同一业务的流媒体数据包,组播业务通道及专用业务通道将会传输相同的流媒体数据包,在流媒体播放器接收组播业务通道和专用业务通道传输的流媒体数据包时,为避免将内容相同的两个数据包同时存入播放缓存中,进而造成同一内容的流媒体数据被播放两次的情况发生。因此,在将接收到的组播业务通道和专用业务通道传输的同一业务的流媒体数据包存入播放缓存的过程中,需要根据流媒体数据包携带的标识信息,判断播放缓存中是否已将存在上述流媒体数据包。例如,当接收到的流媒体数据包的标识信息与播放缓存中的某一流媒体数据包携带的标识信息相同时,判断播放缓存中已经存在上述流媒体数据包。当接收到的流媒体数据包的标识信息与播放缓存中已经存入的任一个流媒体数据包携带的标识信息均不相同时,判断播放缓存中不存在上述流媒体数据包。

s103、若上述播放缓存中不存在上述流媒体数据包,则将上述流媒体数据包存入到上述播放缓存中。

具体地,如上一步骤介绍的一样,当接收到的流媒体数据包的标识信息与播放缓存中已经存入的任一个流媒体数据包携带的标识信息均不相同时,判断播放缓存中不存在上述流媒体数据包。此时,将上述流媒体数据包存入到播放缓存中。

s104、播放上述播放缓存中已经存入的流媒体数据包。

具体地,当播放缓存中存入的流媒体数据的数据量达到预设阈值时,播放播放缓存中已经存入的流媒体数据包。需要说明的是,上述预设阈值可以是用户自己设定地,也可以是流媒体播放器设定,其反应的是,经过一定时间的缓冲后,再开始播放流媒体数据。

本实施例提供的流媒体数据播放方法,流媒体播放器在播放流媒体数据时,同时接收组播业务通道和专用业务通道传输的同一业务的流媒体数据包,上述流媒体数据包携带标识信息;并根据上述标识信息,判断流媒体播放器的播放缓存中是否存在上述流媒体数据包;当上述播放缓存中不存在上述流媒体数据包,则将上述流媒体数据包存入到上述播放缓存中。这样,可避免现有技术中,仅选择其中一个通道上传输的数据,当该通道上传输的数据发生丢包现象时,无法有效利用另一个通道上传输的同一业务的数据,因丢包现象存在,播放效果差的问题。本实施例提供的流媒体数据播放方法,能够有效避免丢包现象,播放效果较好。

进一步地,本实施例中,上述标识信息为流媒体数据包包头携带的序列号或同步源标识符,上述序列号或上述同步源标识符是在发送端或网络应用层对流媒体数据进行封包处理时在流媒体数据包包头生成的。

具体地,根据rtp协议,发送端将流媒体数据传输到网络应用层之前,需要对流媒体数据进行封包处理,以生成流媒体数据包。在发送端对流媒体数据包进行封包处理生成流媒体数据包的过程中,该流媒体数据包包头会生成相应的序列号(sequencenumber)和同步标识符(synchronizationsourceidentifier),对于不同内容的流媒体数据,流媒体数据包包头生成的序列号和同步标识符是不同的,因此,可以通过上述序列号和同步标识符来区分不同内容的流媒体数据包。

此外,当发送端将流媒体数据包发送到网络应用层后,当接收端向网络应用层发起需要获取某一业务的流媒体数据时,网络应用层可以将该业务的流媒体数据直接转发送给接收端,此时,接收端接收到的流媒体数据包包头携带的序列号或同步源标识符是在发送端对流媒体数据进行封包处理时在流媒体数据包包头生成的。当然,在发送端将流媒体数据包发送到网络应用层后,当接收端向网络应用层发起需要获取某一业务的流媒体数据时,此时,网络应用层可以对该业务的流媒体数据重新进行封包处理,之后再将封包处理后的流媒体数据发送给接收端,此时,接收端接收到的流媒体数据包包头携带的序列号或同步源标识符则是在网络应用层对流媒体数据进行封包处理时在流媒体数据包包头生成的。

本实施例提供的流媒体数据播放方法,通过流媒体数据包包头携带的序列号或同步源标识符来区分内容不同的流媒体数据,可避免将两个通道传输的内容相同的两个流媒体数据都存入到播放缓存,进而避免内容相同的流媒体数据被播放两次的情况出现,播放效果较好。

进一步地,在本实施例中,上述步骤s104具体为:根据上述流媒体数据包包头携带的序列号,顺序播放上述播放缓存中已经存入的流媒体数据包。

具体地,在该步骤中,流媒体播放器在播放流媒体数据时,根据播放缓存中已经存入的流媒体数据包包头携带序列号,依次取出流媒体数据包组成语音帧和/或视频帧,并通过解码器将上述语音帧和/或视频帧进行解码后送到播放器中,播放出声音和/或视频。

进一步地,上述根据上述标识信息,判断流媒体播放器的播放缓存中是否存在上述流媒体数据包之后,还包括:

若上述播放缓存中存在上述流媒体数据包时,或者是,上述播放缓存无剩余缓存空间时,或者是,上述标识信息失效时,则将上述流媒体数据包丢弃。

具体地,经过判断,若发现接收到的流媒体数据包包头携带的序列号与播放缓存中已经存入的某一个流媒体数据包包头携带的序列号相同。或者是,经过判断,发现接收到的流媒体数据包包头携带的同步源标识符与播放缓存中已经存入的某一个流媒体数据包包头携带的同步源标识符相同,此时,则判断上述播放缓存中已经存在上述内容流媒体数据包,此时,将接收到的流媒体数据包丢弃。

需要说明的是,上述标识信息失效时,指的是接收到的流媒体数据包与已经播放的某一流媒体数据包为内容相同的流媒体数据包,由于与该流媒体数据包内容相同的流媒体数据包已经播放,则认为该流媒体数据已经失效。

下面结合本实施例提供的流媒体数据播放方法,简单说明执行该方法步骤的流媒体播放器的结构组成。图2为本发明流媒体播放器实施例一的示意图。如图2所示,本实施例提供的流媒体播放器,包括:接收模块100、判断模块200、缓存模块300、播放模块400;其中:

接收模块100,用于接收组播业务通道和专用业务通道传输的同一业务的流媒体数据包,上述流媒体数据包均携带标识信息;

判断模块200,用于根据标识信息,判断流媒体播放器的播放缓存中是否存在流媒体数据包;

缓存模块300,用于当判断模块200判断播放缓存中不存在流媒体数据包时,将流媒体数据包存入到播放缓存中;

播放模块400,用于播放上述播放缓存中已经存入的流媒体数据包。

需要说明的是,在本实施例中,流媒体播放器将接收到的组播业务通道和专用业务通道传输的同一业务的流媒体数据包存入到同一个播放缓存中。

具体地,上述装置用于执行前述方法实施例,其实现原理与方法实施例中介绍的类似,在此不再赘述。

本实施例提供的流媒体播放器,接收模块同时接收组播业务通道和专用业务通道传输的同一业务的流媒体数据包,上述流媒体数据包均携带标识信息;判断模块根据上述标识信息,判断流媒体播放器的播放缓存中是否存在上述流媒体数据包;当上述播放缓存中不存在上述流媒体数据包,缓存模块将上述流媒体数据包存入到播放缓存中,可有效地避免了丢包现象的发生,播放效果较好。

进一步地,在本实施例中,上述标识信息为上述流媒体数据包包头携带的序列号或同步源标识符,上述序列号或上述同步源标识符是在发送端或网络应用层对流媒体数据进行封包处理时在流媒体数据包包头生成的。

进一步地,本实施例中,上述播放模块400,具体用于,

根据上述流媒体数据包包头携带的序列号,顺序播放上述播放缓存中已经存入的流媒体数据包。

具体地,上述装置用于执行前述方法实施例,其实现原理与方法实施例中介绍的类似,在此不再赘述。

实施例二

本实施例提供一种流媒体数据播放方法及流媒体播放器。图3为本发明流媒体数据播放器实施例二的流程图,如图3所示,本实施例提供的流媒体数据播放方法,同样包括如实施例一所介绍的各个步骤,本实施例提供的流媒体数据播放方法,与实施例一的区别在于,本实施例提供的流媒体数据播放方法,在步骤s201中,上述标识信息为上述流媒体数据包扩展包头中携带的序列号;上述序列号是在网络应用层对接收到的流媒体数据包增加扩展包头的过程中生成的。在步骤s204中,是根据流媒体数据包扩展包头中携带的序列号,顺序播放上述播放缓存中已经存入的流媒体数据包。此外,本实施例提供的流媒体数据播放方法,步骤s202及步骤s203与实施例一中的步骤s102及s103类似,此处不再赘述。

具体地,发送端将封好包的流媒体数据包发送到网络应用层,当接收端向网络应用层发起需要获取某一业务的流媒体数据时,网络应用层对该业务的流媒体数据包根据一定的规则增加扩展包头,并在相应的扩展包头生成序列号,且上述序列号能够区别内容不同的流媒体数据包,即内容不同的流媒体数据包,其扩展包头携带的序列号是不同的。当网络应用层对流媒体数据包增加完扩展包头后,网络应用层将该业务的流媒体数据包通过组播业务通道和专用业务通道传输给接收端。相应地,该接收端支持对上述流媒体数据包包头的扩展,可根据上述流媒体数据包包头的扩展标志位,识别流媒体数据包是否有头扩展;如果有头扩展,可从扩展包头中读取出相应的序列号。这样,判断模块就可以根据上述扩展包头中携带的序列号,判断播放缓存中是否存在与接收到的流媒体数据包内容相同的流媒体数据包。

具体地,在步骤s204中,在流媒体播放器播放流媒体数据时,根据播放缓存中已经存入的流媒体数据包扩展包头中携带的序列号,依次取出流媒体数据包组成语音帧和/或视频帧,并通过解码器将上述语音帧和/或视频帧解码后送到播放器,播放出声音和/或视频。

本实施例提供的流媒体数据播放方法,通过流媒体数据包扩展包头中携带的序列号来区分内容不同的流媒体数据,可避免将相同内容的流媒体数据存入到播放缓存,进而避免内容相同的流媒体数据被播放两次的情况出现,播放效果较好。

下面结合本实施例提供的流媒体数据播放方法,简单介绍执行上述方法实施例的流媒体播放器的结构。请参照图2,本实施例提供的流媒体播放器与上一实施例提供的流媒体播放器结构一致,本实施例提供的流媒体播放器与上一实施例提供的流媒体播放器的区别在于,本实施例提供的流媒体播放器,接收模块100接收的流媒体数据包携带的标识信息为上述流媒体数据包扩展包头中携带的序列号;上述序列号是在网络应用层对接收到的流媒体数据包增加扩展包头的过程中生成的。

进一步地,本实施例中,播放模块400,具体用于,

根据上述流媒体数据包扩展包头中携带的序列号,顺序播放上述播放缓存中已经存入的流媒体数据包。

具体地,上述装置用于执行前述方法实施例,其实现原理与方法实施例中介绍的类似,在此不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1