CN105916058B - 一种流媒体缓冲播放方法、装置及显示设备 - Google Patents
一种流媒体缓冲播放方法、装置及显示设备 Download PDFInfo
- Publication number
- CN105916058B CN105916058B CN201610293396.2A CN201610293396A CN105916058B CN 105916058 B CN105916058 B CN 105916058B CN 201610293396 A CN201610293396 A CN 201610293396A CN 105916058 B CN105916058 B CN 105916058B
- Authority
- CN
- China
- Prior art keywords
- load
- decoded
- buffer area
- frame
- video frame
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
Abstract
本发明提供一种流媒体缓冲播放方法、装置及显示设备,涉及显示技术领域,用于在保证流媒体节目流畅播放的同时尽可能缩短启动播放的时间。该方法包括:接收RTP数据包,其中RTP数据包包括:包头和负载;将负载缓冲至缓冲区域并根据包头获取缓冲区域内未解码的负载所包含的视频帧数量;判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值;若缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值,则对缓冲区域内未解码的负载进行解码并播放。本发明用于流媒体的缓冲播放。
Description
技术领域
本发明涉及显示技术领域,尤其涉及一种流媒体缓冲播放方法、装置及显示设备。
背景技术
随着网络技术的发展和网络终端设备的普及,流媒体播放成为机顶盒等终端设备最常用和最重要的功能。通常流媒体点播功能主要涉及前端服务器、中间网络传输和终端数据下载和缓冲,以及音视频解码和显示,而对于终端用户来说,能够快速和流畅地看到所点播的流媒体节目是其基本的需求,也是终端设备的最终的实现目标。
若要能够快速的看到所点播的流媒体节目,则需要尽可能的缩短启动播放时间,而要流畅的看到所点播的流媒体节目,则需要尽可能的避免视频卡顿。但是尽可能的缩短启动播放的时间和尽可能的避免视频卡顿在一定条件下相互矛盾,无法同时满足。例如:在网络带宽不足时播放高分辨率的流媒体节目时,为了快速看到所点播的流媒体节目,需要缩短启动播放时间,加快视频帧的播出,即缓冲尽可能小的数据就开始对流媒体节目进行播放,而这会迅速消耗缓冲区内的缓冲数据,当带宽不足时会导致:缓冲-播放-暂停-缓冲-播放,表现为视频频繁的卡顿,即无法流畅的看到所点播的流媒体节目。而为了流畅的看到所点播的流媒体节目,则需要增大启动播放时间,也就是在流媒体节目开始解码前尽可能地多缓冲数据。为了平衡快速的看到所点播的流媒体节目和流畅的看到所点播的流媒体节目之间的关系,现有技术中,通过在播放器中设定一个固定大小的阈值,当播放器缓冲的数据达到阈值时,启动解码器对缓冲的数据进行解码并播放。然而由于不同的流媒体节目在数据量大小相同时其播放时间长度却不一定相同,所以通过设置阈值的方式仍无法平衡快速启动播放和流畅播放之间的矛盾。
发明内容
本发明的实施例提供一种流媒体缓冲播放方法、装置及显示设备,用于在保证流媒体节目流畅播放的同时尽可能缩短启动播放的时间。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种流媒体缓冲播放方法,包括:
接收RTP(英文全称:Real-time Transport Protocol,中文名称:实时传输协议)数据包,其中所述RTP数据包包括:包头和负载;
将所述负载缓冲至缓冲区域并根据所述包头获取所述缓冲区域内未解码的负载所包含的视频帧数量;
判断所述缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值;
若所述缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值,则对所述缓冲区域内未解码的负载进行解码并播放。
第二方面,提供一种流媒体缓冲播放装置,包括:
接收单元,用于接收RTP数据包,其中所述RTP数据包包括:包头和负载;
获取单元,用于将所述负载缓冲至缓冲区域并根据所述包头获取所述缓冲区域内未解码的负载所包含的视频帧数量;
处理单元,用于判断所述缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值;
若所述缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值,所述处理单元还用于对所述缓冲区域内的负载进行解码并播放。
第三方面,提供一种显示设备,包括第二方面所述的流媒体缓冲播放装置。
本发明实施例提供的流媒体缓冲播放方法,首先接收RTP数据包,其次将RTP数据包的负载缓冲至缓冲区域并根据RTP数据包的包头获取缓冲区域内未解码的负载所包含的视频帧数量;然后再判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值,当缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值,则对所述缓冲区域内未解码的负载进行解码并播放,即本发明实例中根据RTP数据包的包头获取缓存区域内未解码的负载所包含视频帧数量,然后在根据获取缓存区域内未解码的负载所包含视频帧数量判断是否开始对缓存区域内未解码的负载解码并播放,相比于现有技术中缓存固定大小的数据量,然后开始对视频数据解析并播放,本发明实施例通过视频帧数量判断是否开始解码并播放,因此可以避免因数据量大小相同时其播放时间长度不一定相同引起的无法平衡快速启动播放和流畅播放之间的矛盾,所以本发明实施例可以在保证流媒体节目流畅播放的同时尽可能缩短启动播放的时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的流媒体缓冲播放方法的步骤流程图一;
图2为本发明实施例提供的流媒体传输协议栈结构的示意图;
图3为本发明实施例提供的流媒体缓冲播放方法的步骤流程图二;
图4为本发明实施例提供的RTP数据包的包头的示意性结构图;
图5为本发明实施例提供的帧号与缓存地址对应关系的示意图;
图6为本发明实施例提供的流媒体缓冲播放方法的步骤流程图三;
图7为本发明实施例提供的流媒体缓冲播放方法的步骤流程图四;
图8为本发明实施例提供的流媒体缓冲播放方法的步骤流程图五;
图9为本发明实施例提供的流媒体缓冲播放装置的示意性结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的发明原理为:在流媒体缓冲播放过程中,通过缓冲区域内未解码的负载所包含的视频帧数量判断是否开始读缓存区域内未解码的负载进行解码并播放,从而从根本上避免了由于因数据量大小相同时其播放时间长度不一定相同引起的无法平衡快速启动播放和流畅播放之间的矛盾的问题,因此本发明实施例可以在保证流媒体节目流畅播放的同时尽可能缩短启动播放的时间。
本发明实施例提供一种流媒体缓冲播放方法,参照图1所示,该方法包括如下步骤:
S11、接收RTP数据包。其中RTP数据包包括:包头和负载。
具体的,RTP是一种网络传输协议,其广泛应用于流媒体相关的电话、视频会议、电视、一键通等通讯和娱乐业务中。RTP说明了在互联网上传递音频和视频的标准数据包格式,即本文中的RTP数据包的格式。通常RTP和RTP控制协议(英文名称:RTP ControlProtocol,简称:RTCP)一起使用,其中RTP用于实时传输数据,提供的信息包括:时间戳、序列号以及负载格式等;RTCP用于服务质量(英文名称:Quality Of Service,简称:QOS)反馈和同步媒体流。其中,RTP传输协议的报文(即RTP数据包)由包头和负载两部分内容组成;包头中包括:RTP协议的版本号、填充标志、扩展标志、CSRC计数器等内容,用于表示RTP数据包的版本号、负载类型等信息;负载即为RTP数据数据包实际需要传输的数据流,若RTP数据用于传输音频文件,则负载为需要传输的音频数据;若RTP数据用于传输视频文件,则负载为需要传输的视频数据。
进一步的,参照图2所示,图2中描述了基于RTP的动态图像专家组传输流(英文全称:Moving Picture Experts Group Transport Stream,英文简称:MPEG-TS)流媒体传输协议栈结构。基于该流媒体传输协议栈结构,终端和内容分发系统之间的接口分为两个通道,其一为:流媒体传输和接收通道21;其二为:媒体流会话控制通道22。即终端与内容分发系统之间按照图2中所示流媒体传输和接收通道21的格式和协议来完成实际媒体流数据的传输和解包播放,终端与内容分发系统之间按照图2中所示媒体流会话控制通道22的协议来完成对媒体流的控制和交互。
S12、将负载缓冲至缓冲区域并根据包头获取缓冲区域内未解码的负载所包含的视频帧数量。
需要说明的时,在接收RTP数据包后应首先对RTP数据包进行解码,然后才能够缓冲负载和根据包头取缓冲区域内未解码的负载所包含的视频帧数量。其中本发明的实施例中对RTP数据包进行解析的方法可以与现有技术中对RTP数据报的解析方法相同,本发明实施例在此不做详细说明。
具体的,RTP数据包的负载为传输(英文名称:Transport Stream,简称:TS)流,所以上述步骤S12即为将TS流缓冲值缓存区域,然后获取缓冲区域中尚未进行解码的TS流包含的视频帧数量。
S13、判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值。
需要说明的是,缓冲区域内未解码的负载是指已经缓存在缓存区域,但解码器尚未读取并解码的负载。缓存区域内的负载在解码前和解码后,负载本身并未发生变化,其区别仅在于解码器是否对该部分负载进行读取,若解码器已对该部分负载进行读取,则该部分负载为已解的码负载,而若解码器尚未对该部分负载进行读取,则该部分负载为未解码的负载。此外,当解码器对负载读取并解码后,可以将该分部已解码负载从缓存区域中删除,节省解码缓存区域的存储空间。且若每次解码器读取负载后都将缓存区域的已读取的负载进行删除,则缓存区域中仅包括未解码的负载,缓存区域内未解码的负载即为缓存区域内的全部负载。
此外,第一阈值可以由本领域技术人员根据实际的数据传输带宽设定,带宽较大时,第一阈值可以设定的较小;带宽较小时,第一阈值应该设定的较大。在上述步骤S13中,若缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值则执行步骤S14;若缓冲区域内未解码的负载所包含的视频帧数量小于第一阈值则返回步骤S11,继续接受RTP数据包。
S14、对缓冲区域内未解码的负载进行解码并播放。
即,第一阈值表示满足对负载进行解码并播放的条件,或者是在暂停解码并播放后满足重新开始解码并播放的条件。缓存区域内未解码的负载所包含的视频帧数量达到第一阈值时,即开始对缓存区域中的未解码的负载进行解码并播放。
需要说明的是,本发明实施例中的接收RTP数据包并对RTP数据包解析后将负载缓冲至缓冲区域和对负载进行解码并播放是两个独立的线程。其中,第一个线程不断接收通过网络传输来的RTP数据包、对RTP数据包解析并将负载缓冲至缓冲区域;第二个线程则在缓冲区域内未解码的负载所包含的视频帧数量的控制下开始或者停止对负载进行解码并播放。
本发明实施例提供的流媒体缓冲播放方法,首先接收RTP数据包,其次将RTP数据包的负载缓冲至缓冲区域并根据RTP数据包的包头获取缓冲区域内未解码的负载所包含的视频帧数量;然后再判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值,当缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值,则对缓冲区域内未解码的负载进行解码并播放,即本发明实例中根据RTP数据包的包头获取缓存区域内未解码的负载所包含视频帧数量,然后在根据获取缓存区域内未解码的负载所包含视频帧数量判断是否开始对缓存区域内未解码的负载解码并播放,相比于现有技术中缓存固定大小的数据量,然后开始对视频数据解析并播放,本发明实施例通过视频帧数量判断是否开始解码并播放,因此可以避免因数据量大小相同时其播放时间长度不一定相同引起的无法平衡快速启动播放和流畅播放之间的矛盾,所以本发明实施例可以在保证流媒体节目流畅播放的同时尽可能缩短启动播放的时间。
进一步的,参照图3所示,上述实施例的步骤S12中根据包头获取负载所包含的视频帧数量具体可以通过如下步骤实现。
S121、获取起始帧的帧号。其中起始帧为缓冲区域内未解码的负载所包含的视频帧中帧号最小的视频帧。
起始帧为缓冲区域内未解码的负载包含的视频帧中帧号最小的视频帧,所以在每一读取并解码缓存区域的负载后,初始帧的帧号都会重新进行赋值。示例性的,在第一次读取缓存区域内的视频帧时,缓存区域内的负载全部都未被读取,最小的帧号为1,所以在第一次读取时帧号为1的视频帧为初始帧。而若第一读取时读取了缓存区域内包含10个视频帧(帧号为1-10的视频帧)的负载,则此时缓冲区域内未解码的负载包含的视频帧中最小的帧号为11,所以在第二次读取缓冲区域内的负载时帧号为11的视频帧则为初始帧。以此类推,在第三、第四以及以后各次取缓存区域的负载后,都会根据前一次读取负载包含视频帧数量对初始帧的帧号重新进行赋值。
S122、根据包头中的有效载荷类型判断负载是否为视频数据。
具体的,参照图4所示,图4为RTP数据包的包头的格式。RTP数据包的包头的前两位(bit0-1)为RTP协议的版本号V,图4中以RTP协议的版本号V=2为例进行说明。包头的第三位(bit2)为填充标志P,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。包头的第四位(bit3)为扩展标志X,如果X=1,则在RTP报头后跟有一个扩展报头。包头的第五位至第八位CC(bit4-7)为CSRC计数器,表示CSRC标识符的个数。包头的第九位(bit8)为标记位M,对于不同的效载荷类型M表示不同的含义,当有效载荷为视频,则M表示一帧的结束,当有效载荷为音频,则M表示会话的开始。包头的第十位至第十七位(bit9-16)为有效载荷类型PT,用于说明RTP数据包中负载的类型,在流媒体中一般用于区分音频流和视频流,从而便于终端进行解析。此外,包头中还包括:序列号、时戳等信息。对于RTP数据包的包头中包含的本申请不涉及的信息本文不再详细进行说明。
即上述步骤S122中需要根据包头的第十位至第十七位(bit9-16)有效载荷类型PT判断包头对应的负载是否为视频数据。
在步骤S122中,若根据有效载荷类型PT判断得出包头对应的负载为视频数据则进一步执行步骤S123;而若根据PT判断得出包头对应的负载不为视频数据,则包头对应的负载不可能包含视频帧,返回上述实施例中的步骤S11,继续接收RTP数据包。
S123、根据包头中的标记位判断负载所包含视频帧是否结束。
具体的,根据标记位M,判断包头对应的负载所包含视频帧是否结束。当步骤S123中判断得出包头对应的负载所包含视频帧结束,则执行步骤S124。
S124、结束帧的帧号递增1。
即,结束帧的帧号为缓冲区域内未解码的负载所包含的视频帧中帧号最大的视频帧。所以结束帧的帧号随着RTP数据包的接收缓冲也在不断重新赋值。
S125、根据起始帧的帧号与结束帧的帧号的差值获取缓冲区域内未解码的负载所包含的视频帧数量。
即缓存区域内未解码的负载所包含的视频帧数量即为:起始帧的帧号与结束帧的帧号的差值。
若起始帧的帧号为frameNO_strat、结束帧的帧号为frameNO_end,缓存区域内未解码的负载所包含的视频帧数量为frameNum,则有frameNum=frameNO_end-frameNO_strat。
此外,上述实施例还可以在开始执行上述实施例中的各个步骤之前对视频帧的帧号进行重置,即将初始视频帧的帧号重置为0。若在开始执行上述实施例中的各个步骤之前还对视频帧的帧号进行重置,可以简化获取缓冲区域内未解码的负载所包含的视频帧数量时的计算过程。
由上述获取视频帧的过程可知,在对RTP数据包的上层协议解析阶段就可以判断出RTP数据包中是否包含完整的视频帧,而无需等到对RTP数据包中的负载进行解码后才判断出是否包含完整的视频帧,所以通过上述实施例可以为缓冲后的播放时机提供准确的判断条件,同时为播放过程中出现缓冲欠载而需要暂停解码和播放并继续缓冲的时机提供了准确的判断条件。
此外,优选的,参照图5所示,上述实例中还可以将RTP数据包的负载中的每一个视频帧缓冲在一个独立缓冲区域中,并获取该缓冲区域的缓冲地址,然后针对每一个视频帧的帧号和缓冲地址建立对应关系。即,在对负载进行缓冲的过程中可以将TS流以视频帧为单位进行缓冲,使每一个缓冲区域中均包含一个完整的视频帧,其中,缓冲区域中的视频帧可以为内部编码帧(简称:I帧)或者前向预测帧(简称:P帧)或者双向内插帧(简称:B帧),将RTP数据包的负载缓冲至缓冲区域后,记录缓冲后的帧号以及每一个帧号对应的缓冲地址,然后通过帧号以帧号对应的缓存地址来控制负载的注入。
进一步的,参照图6所示,上述实施例的步骤S14中对缓冲区域内未解码的负载进行解码并播放具体可以包括如下步骤。
S141、判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第二阈值。
第二阈值可以由实际使用中解码器一次最多可以处理的数据设定,一次最多可以处理的数据量越大则第二阈值应该设定的越大,一次最多可以处理的数据量越小则第二阈值应该设定的越小。在上述步骤S141中,若视频帧数量大于或等于第二阈值则执行步骤S142;若视频帧数量小于第二阈值则执行步骤S143。
S142、由起始帧开始读取包含第二阈值个视频帧的负载。
S143、由起始帧开始读取缓冲区域内全部未解码的负载。
第二阈值表示解码器一次最多可以读取的视频帧数量。若视频帧数量大于第二阈值,则由起始帧开始读取包含第二阈值个视频帧的负载,若视频帧数量小于第二阈值,则由起始帧开始读取缓存区域中全部未解码的负载。
因为第一阈值表示满足对负载进行解码并播放的条件,或者是在暂停解码并播放后满足重新开始解码并播放的条件,而第二阈值表示表示一次最多可以读取的视频帧数量,所以在设定第一阈值和第二阈值时应满足第一阈值小于第二阈值。
若起始帧的帧号为frameNO_strat、结束帧的帧号为frameNO_end,第一阈值为START,第二阈值为OVERFLOW,则有START<OVERFLOW,且在frameNO_end-frameNO_strat大于或等于OVERFLOW时,由frameNO_strat开始读取包含OVERFLOW个视频帧的负载,在frameNO_end-frameNO_strat小于OVERFLOW时,由frameNO_strat开始读取全部未解码的负载。
S144、对读取的负载进行解码并播放。
进一步的,参照图7所示,在上述步骤S144对读取的负载进行解码并播放之前,上述实施例还可以包括如下步骤:
S145、判断解码器是否为暂停状态。
若解码器为暂停状态,则执行步骤S146,若解码器不为暂停状态,则执行步骤S147。
S146、恢复解码器。
S147、判断是否已开始解码并播放。
若没有开始解码并播放则执行步骤S158。
S148、启动解码器。
优选的,参照图8所示,在步骤S13中,若缓冲区域内未解码的负载所包含的视频帧数量小于第一阈值时执行步骤S15。
S15、判断解码器是否为启动状态。
在步骤S15中,若解码器为启动状态,则执行步骤S16,若解码器为非启动状态,则返回步骤S11。
S16、判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第三阈值。
第三阈值表示若缓冲区域内未解码的负载所包含的视频帧数量小于该数量,则暂停对缓冲区域内的负载解码并播放,等待数据缓冲。第三阈值可以根据实际需要设定为任意值。此外,因为第一阈值表示满足对负载进行解码并播放的条件,或者是在暂停解码并播放后满足重新开始解码并播放的条件,而第三阈值表示若缓冲区域内未解码的负载所包含的视频帧数量小于该数量,则暂停对缓冲区域内的负载解码并播放,所以在设定第一阈值和第二阈值时应满足第一阈值大于第三阈值。
在步骤S16中,若缓冲区域内未解码的负载所包含的视频帧数量大于或等于第三阈值,则执行步骤S17,若缓冲区域内未解码的负载所包含的视频帧数量小于第三阈值,则执行步骤S18。
S17、由起始帧开始读取缓冲区域内的全部未解码的负载并对读取的负载进行解码并播放。
S18、暂停解码器。
若起始帧的帧号为frameNO_strat、结束帧的帧号为frameNO_end,第一阈值为START,第三阈值为UNDERFLOW,则有START>UNDERFLOW,在解码器启动且frameNO_end-frameNO_strat大于或等于UNDERFLOW时,由frameNO_strat开始读取缓冲区域内的全部未解码的负载并对读取的负载进行解码并播放,在解码器启动且frameNO_end-frameNO_strat小于UNDERFLOW时,暂停解码器。
此外,本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明再一实施例提供一种流媒体缓冲播放装置,参照图9所示,该流媒体缓冲播放装置90包括:
接收单元91,用于接收RTP数据包,其中RTP数据包包括:包头和负载;
获取单元92,用于将负载缓冲至缓冲区域并根据包头获取缓冲区域内未解码的负载所包含的视频帧数量;
处理单元93,用于判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值;
若缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值,处理单元93还用于对缓冲区域内的负载进行解码并播放。
本发明实施例提供的流媒体缓冲播放装置,通过接收单元接收RTP数据包并通过解析单元解析接收到的RTP数据包,再通过获取单元将RTP数据包的负载缓冲至缓冲区域并根据RTP数据包的包头获取缓冲区域内未解码的负载所包含的视频帧数量;最后通过处理单元再判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值,当缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值,则对缓冲区域内未解码的负载进行解码并播放,即本发明实例中根据RTP数据包的包头获取缓存区域内未解码的负载所包含视频帧数量,然后在根据获取缓存区域内未解码的负载所包含视频帧数量判断是否开始对缓存区域内未解码的负载解码并播放,相比于现有技术中缓存固定大小的数据量,然后开始对视频数据解析并播放,本发明实施例通过视频帧数量判断是否开始解码并播放,因此可以避免因数据量大小相同时其播放时间长度不一定相同引起的无法平衡快速启动播放和流畅播放之间的矛盾,所以本发明实施例可以在保证流媒体节目流畅播放的同时尽可能缩短启动播放的时间。
可选的,处理单元93具体用于获取起始帧的帧号;根据包头中的有效载荷类型判断负载是否为视频数据;若是,根据包头中的标记位判断负载所包含的视频帧是否结束;若负载包含的视频帧结束,则结束帧的帧号递增1;根据起始帧的帧号与结束帧的帧号的差值获取缓冲区域内未解码的负载所包含的视频帧数量;其中起始帧为缓冲区域内未解码的负载所包含的视频帧中帧号最小的视频帧。
可选的,处理单元93还用于在缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值时,判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第二阈值;
若是,处理单元93还用于由起始帧开始读取包含第二阈值个视频帧的负载;
若否,处理单元93还用于由起始帧开始读取缓冲区域内全部未解码的负载;
处理单元93还用于对读取的负载进行解码并播放;
其中,第一阈值小于第二阈值。
可选的,处理单元93还用于判断解码器是否为暂停状态;
处理单元93还用在解码器为暂停状态时,恢复解码器;
处理单元93还用在解码器不为暂停状态,判断是否已开始进行解码并播放;
若否,处理单元93还用启动解码器。
可选的,处理单元93还用于在当缓冲区域内未解码的负载所包含的视频帧数量小于第一阈值时,判断解码器是否为启动状态;
若解码器为启动状态,处理单元93还用于判断缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第三阈值是否大于或等于第三阈值;
若是,处理单元93还用于由起始帧开始读取缓冲区域内的全部未解码的负载并对读取的负载进行解码并播放;
若否,处理单元93还用于暂停解码器;
其中,第一阈值大于第三阈值。
需要说明的是,上述流媒体缓冲播放装置中接收单元91可以为显示装置中具有接收功能的电路接口,获取单元92可以通过显示其中具有逻辑运算功能的电路实现。处理单元93可以为单独设立的处理器,也可以集成在显示装置的某一个处理器中实现,此外,也可以以程序代码的形式存储于显示装置的存储器中,由显示装置的某一个处理器调用并执行以上处理单元93的功能。这里的处理器可以是一个中央处理器(英文全称:CentralProcessing Unit,英文简称:CPU),或者是特定集成电路(英文全称:ApplicationSpecific Integrated Circuit,英文简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
本发明再一实施例提供一种显示设备,该显示设备包括上述任一实施例提供的流媒体缓冲播放装置。另外,显示装置可以为:电子纸、手机、平板电脑、电视机、显示器、笔记本电脑、数码相框、导航仪等任何具有显示功能的产品或部件。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种流媒体缓冲播放方法,其特征在于,包括:
接收RTP数据包,其中所述RTP数据包包括:包头和负载;
将所述负载缓冲至缓冲区域并根据所述包头获取所述缓冲区域内未解码的负载所包含的视频帧数量;
判断所述缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值;
若所述缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值,则对所述缓冲区域内未解码的负载进行解码并播放;
若所述缓冲区域内未解码的负载所包含的视频帧数量小于第一阈值时,判断解码器是否为启动状态;若所述解码器为启动状态,则判断所述缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第三阈值;
若是,则由起始帧开始读取所述缓冲区域内的全部未解码的负载并对读取的负载进行解码并播放;
若否,则暂停所述解码器;
其中,所述第一阈值大于所述第三阈值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述包头获取所述缓冲区域内未解码的负载所包含的视频帧数量,包括:
获取所述起始帧的帧号,其中所述起始帧为所述缓冲区域内未解码的负载所包含的视频帧中帧号最小的视频帧;
根据所述包头中的有效载荷类型判断所述负载是否为视频数据;
若是,则根据所述包头中的标记位判断所述负载所包含的视频帧是否结束;
若所述负载包含的视频帧结束,则结束帧的帧号递增1;
根据所述起始帧的帧号与所述结束帧的帧号的差值获取所述缓冲区域内未解码的负载所包含的视频帧数量。
3.根据权利要求2所述的方法,其特征在于,所述对所述缓冲区域内未解码的负载进行解码并播放包括:
判断所述缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第二阈值;
若是,则由所述起始帧开始读取包含第二阈值个视频帧的负载;
若否,则由所述起始帧开始读取所述缓冲区域内全部未解码的负载;
对读取的负载进行解码并播放;
其中,所述第一阈值小于所述第二阈值。
4.根据权利要求3所述的方法,其特征在于,所述对读取的负载进行解码并播放前,所述方法还包括:
判断解码器是否为暂停状态;
若所述解码器为暂停状态,则恢复所述解码器;
若所述解码器不为暂停状态,则判断是否已开始解码并播放;
若否,则启动所述解码器。
5.一种流媒体缓冲播放装置,其特征在于,包括:
接收单元,用于接收RTP数据包,其中所述RTP数据包包括:包头和负载;
获取单元,用于将所述负载缓冲至缓冲区域并根据所述包头获取所述缓冲区域内未解码的负载所包含的视频帧数量;
处理单元,用于判断所述缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第一阈值;
若所述缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值,所述处理单元还用于对所述缓冲区域内的负载进行解码并播放;
若所述缓冲区域内未解码的负载所包含的视频帧数量小于第一阈值时,判断解码器是否为启动状态;
若所述解码器为启动状态,则判断所述缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第三阈值;
若是,则由起始帧开始读取所述缓冲区域内的全部未解码的负载并对读取的负载进行解码并播放;
若否,则暂停所述解码器;
其中,所述第一阈值大于所述第三阈值。
6.根据权利要求5所述的装置,其特征在于,所述处理单元具体用于获取所述起始帧的帧号;根据所述包头中的有效载荷类型判断所述负载是否为视频数据;若是,根据所述包头中的标记位判断所述负载所包含的视频帧是否结束;若所述负载包含的视频帧结束,则结束帧的帧号递增1;根据所述起始帧的帧号与所述结束帧的帧号的差值获取所述缓冲区域内未解码的负载所包含的视频帧数量;
其中所述起始帧为所述缓冲区域内未解码的负载所包含的视频帧中帧号最小的视频帧。
7.根据权利要求6所述的装置,其特征在于,所述处理单元还用于在所述缓冲区域内未解码的负载所包含的视频帧数量大于或等于第一阈值时,判断所述缓冲区域内未解码的负载所包含的视频帧数量是否大于或等于第二阈值;
若是,所述处理单元还用于由所述起始帧开始读取包含第二阈值个视频帧的负载;
若否,所述处理单元还用于由所述起始帧开始读取所述缓冲区域内全部未解码的负载;
所述处理单元还用于对读取的负载进行解码并播放;
其中,所述第一阈值小于所述第二阈值。
8.根据权利要求7所述的装置,其特征在于,所述处理单元还用于判断解码器是否为暂停状态;
所述处理单元还用在所述解码器为暂停状态时,恢复所述解码器;
所述处理单元还用在所述解码器不为暂停状态,判断是否已开始进行解码并播放;
若否,所述处理单元还用启动所述解码器。
9.一种显示设备,其特征在于,包括权利要求5-8任一项所述的流媒体缓冲播放装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610293396.2A CN105916058B (zh) | 2016-05-05 | 2016-05-05 | 一种流媒体缓冲播放方法、装置及显示设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610293396.2A CN105916058B (zh) | 2016-05-05 | 2016-05-05 | 一种流媒体缓冲播放方法、装置及显示设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105916058A CN105916058A (zh) | 2016-08-31 |
CN105916058B true CN105916058B (zh) | 2019-09-20 |
Family
ID=56752277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610293396.2A Active CN105916058B (zh) | 2016-05-05 | 2016-05-05 | 一种流媒体缓冲播放方法、装置及显示设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105916058B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106792163B (zh) * | 2016-11-25 | 2021-10-29 | 上海乐欢软件有限公司 | 一种视频播放状态的检测方法及装置 |
CN108206969A (zh) * | 2016-12-16 | 2018-06-26 | 北京酷我科技有限公司 | 一种视频播放快速启动方法及系统 |
CN106713941A (zh) * | 2017-01-04 | 2017-05-24 | 北京百度网讯科技有限公司 | 一种音视频直播的实现方法和服务器 |
CN108696771B (zh) * | 2017-04-11 | 2021-03-09 | 苏州谦问万答吧教育科技有限公司 | 一种视频播放方法及装置 |
CN107493510B (zh) * | 2017-09-19 | 2020-03-17 | 武汉斗鱼网络科技有限公司 | 直播间内直播流播放方法、装置、计算机存储介质及设备 |
CN108156515B (zh) * | 2017-12-27 | 2021-04-16 | 深圳Tcl新技术有限公司 | 视频播放方法、智能电视及计算机可读存储介质 |
CN109348282A (zh) * | 2018-11-19 | 2019-02-15 | 深圳市炬力北方微电子有限公司 | 一种降低无线投屏时延的方法及装置 |
CN110677715B (zh) * | 2019-10-11 | 2022-04-22 | 北京达佳互联信息技术有限公司 | 一种解码方法、解码器、电子设备及存储介质 |
CN111416990B (zh) * | 2020-03-21 | 2021-08-17 | 杭州视在数科信息技术有限公司 | 一种流式数据平台的ts流的访问方法 |
CN112261445B (zh) * | 2020-10-21 | 2022-07-12 | 深圳市创维软件有限公司 | 流媒体播放方法、装置、设备及计算机可读存储介质 |
CN112601109A (zh) * | 2020-11-30 | 2021-04-02 | 海信视像科技股份有限公司 | 音频播放方法及显示设备 |
CN112911376A (zh) * | 2021-02-01 | 2021-06-04 | 华录智达科技股份有限公司 | 一种基于实时视频播放流畅的播放方法 |
CN114827715A (zh) * | 2022-04-13 | 2022-07-29 | 海信视像科技股份有限公司 | 显示设备和媒资播放方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863302A (zh) * | 2005-11-03 | 2006-11-15 | 华为技术有限公司 | 多媒体通信方法及其终端 |
CN101674486A (zh) * | 2009-09-29 | 2010-03-17 | 深圳市融创天下科技发展有限公司 | 一种流媒体音视频同步方法及系统 |
CN103442307A (zh) * | 2013-08-20 | 2013-12-11 | 深圳市融创天下科技股份有限公司 | 播放视频流媒体的方法和装置 |
CN103731720A (zh) * | 2013-11-25 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 一种智能电视的多媒体数据缓存方法及装置 |
CN103905897A (zh) * | 2014-04-23 | 2014-07-02 | 无锡天脉聚源传媒科技有限公司 | 一种视频播放装置及其播放方法 |
CN104735485A (zh) * | 2015-03-05 | 2015-06-24 | 上海小蚁科技有限公司 | 一种播放视频的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130262691A1 (en) * | 2012-03-28 | 2013-10-03 | Rovi Corp | System and Methods of Media Streaming using RTSP with Reduced Delays |
-
2016
- 2016-05-05 CN CN201610293396.2A patent/CN105916058B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863302A (zh) * | 2005-11-03 | 2006-11-15 | 华为技术有限公司 | 多媒体通信方法及其终端 |
CN101674486A (zh) * | 2009-09-29 | 2010-03-17 | 深圳市融创天下科技发展有限公司 | 一种流媒体音视频同步方法及系统 |
CN103442307A (zh) * | 2013-08-20 | 2013-12-11 | 深圳市融创天下科技股份有限公司 | 播放视频流媒体的方法和装置 |
CN103731720A (zh) * | 2013-11-25 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 一种智能电视的多媒体数据缓存方法及装置 |
CN103905897A (zh) * | 2014-04-23 | 2014-07-02 | 无锡天脉聚源传媒科技有限公司 | 一种视频播放装置及其播放方法 |
CN104735485A (zh) * | 2015-03-05 | 2015-06-24 | 上海小蚁科技有限公司 | 一种播放视频的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105916058A (zh) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105916058B (zh) | 一种流媒体缓冲播放方法、装置及显示设备 | |
JP6177843B2 (ja) | 部分化を利用した適応的なストリーミング方法及びその装置 | |
CN104519372B (zh) | 一种流媒体播放的切换方法和系统 | |
CN1764974B (zh) | 存储多媒体数据的存储介质和再现多媒体数据的方法和设备 | |
US10869106B2 (en) | Data transmission method and apparatus, and electronic device | |
KR101750049B1 (ko) | 적응적인 스트리밍 방법 및 장치 | |
EP2665261A1 (en) | Content reproduction device, content reproduction method, delivery system, content reproduction program, recording medium, and data structure | |
US10887645B2 (en) | Processing media data using file tracks for web content | |
CN107566889B (zh) | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 | |
CN102656857B (zh) | 一种启动阶段的流媒体数据获取、发送方法及装置 | |
WO2011044285A2 (en) | Low latency cacheable media streaming | |
JP2007295038A (ja) | 動画再生装置及び方法 | |
RU2598805C2 (ru) | Способ для динамической адаптации частоты следования битов при приеме и соответствующий приемник | |
WO2015169172A1 (zh) | 网络视频播放的方法和装置 | |
US11184655B1 (en) | System and method for intelligent delivery of segmented media streams | |
CN105812847A (zh) | Hls视频直播方法、服务器及系统 | |
JP2004215203A (ja) | 伝送データ構造及びそれを伝送するための方法並びに装置 | |
CN104581340A (zh) | 客户端、流媒体数据接收方法和流媒体数据传输系统 | |
KR20210042051A (ko) | 적응적 스트리밍 서비스를 위한 다중 경로 기반 블록 전송 시스템 및 스트리밍 방법 | |
CN104469538A (zh) | 面向画面画质较小损失的rtp视频流数据包重组方法 | |
CN106331847B (zh) | 音视频播放方法及设备 | |
EP2524502B1 (en) | Method and apparatus for processing transport streams | |
JP2008017328A (ja) | 録画機能付デジタル放送受信機 | |
US20130124699A1 (en) | Apparatus and method for transceiving a streaming service | |
CN105657460B (zh) | 流媒体播放方法、装置和移动终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |