流媒体播放方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:27130625 阅读:29 留言:0更新日期:2021-01-25 20:01
本发明专利技术公开了一种流媒体播放方法、装置、设备及计算机可读存储介质,该流媒体播放方法包括:从传输流缓冲区获取传输流数据包;根据数据包中包含的节目时钟基准获取当前缓冲传输流的缓冲时长;若当前缓冲传输流的缓冲时长符合预设条件,则启动解码器并解扰后进行解码播放。本申请的方法解决了目前的流媒体播放器使用体验差的技术问题,提升了用户的使用体验。验。验。

【技术实现步骤摘要】
流媒体播放方法、装置、设备及计算机可读存储介质


[0001]本专利技术涉及流媒体播放
,尤其涉及一种流媒体播放方法、装置、设备及计算机可读存储介质。

技术介绍

[0002]我们将以数据流的形式进行传输的多媒体数据称之为流媒体。目前,常见的流媒体传输方式是以传输流(Transport Stream,TS)传输。
[0003]传输流在进行传输时,会对PES流(把基本码流分割成段,并加上相应头文件打包成形的打包基本码流)进行加扰,从而导致播放器无法直接获取PES中的PTS(Presentation Time Stamp,显示时间戳)信息,从而无法获取数据的缓冲时长。正因为如此,目前的流媒体播放器通过设置固定大小的TS缓冲区缓冲数据。
[0004]这种方式的弊端在于,对于不同分辨率、不同码率的流媒体数据而言,固定大小TS缓冲区大小无法针对不同分辨率、不同码率的流媒体数据缓冲相同播放时长的流媒体数据。这就导致了在网络带宽不好的情况下,由于缓冲数据的不足,而导致流媒体播放出现频繁的暂停,影响用户体验。

技术实现思路

[0005]本申请实施例通过提供一种流媒体播放方法,旨在解决目前的流媒体播放器使用体验差的技术问题。
[0006]为实现上述目的,本申请实施例提供了一种流媒体播放方法,包括:
[0007]从传输流缓冲区获取传输流数据包;
[0008]根据数据包中包含的节目时钟基准获取当前缓冲传输流的缓冲时长;
[0009]若当前缓冲传输流的缓冲时长符合预设条件,则启动解码器并解扰后进行解码播放。
[0010]在其中一个实施例中,所述根据数据包中包含的节目时钟基准获取当前缓冲传输流的缓冲时长,包括:
[0011]以含有节目时钟基准的数据包为切割点切割传输流,并基于切割后的传输流模拟基本码流帧;
[0012]将模拟的基本码流帧导入帧环形缓冲队列;
[0013]获取所述帧环形缓冲队列中的基本码流帧的缓冲时长,并将所述环形缓冲队列中的基本码流帧的缓冲时长作为所述当前缓冲传输流的缓冲时长。
[0014]在其中一个实施例中,所述以含有节目时钟基准的数据包为切割点切割传输流,并基于切割后的传输流模拟基本码流帧,包括:
[0015]在当前缓冲传输流的缓冲时长符合预设条件前,执行以下循环:
[0016]解析传输流中的数据包;
[0017]当解析到含有节目时钟基准的数据包时,将所述含有节目时钟基准的数据包及其
之前的所有数据包封装为所述基本码流帧的播放数据;
[0018]根据所述节目时钟基准设置所述基本码流帧的显示时间戳。
[0019]在其中一个实施例中,所述根据播放数据中的节目时钟基准设置所述基本码流帧的显示时间戳,包括:
[0020]根据所述节目时钟基准的基值的索引值设置所述基本码流帧的索引值;
[0021]以索引值为0的基本码流帧为播放时间轴起点;
[0022]根据所述基本码流帧的索引值和播放时间轴起点的差值计算所述基本码流帧的显示时间戳。
[0023]在其中一个实施例中,所述获取所述帧环形缓冲队列中的基本码流帧的缓冲时长,包括:
[0024]计算所述帧环形缓冲队列中索引值最大和索引值最小的两帧基本码流帧的显示时间戳的差值。
[0025]在其中一个实施例中,所述方法还包括:
[0026]在接收到进度条拖动指令时,获取所述进度条拖动指令的目标显示时间戳;
[0027]若所述目标显示时间戳能与帧环形缓冲队列中的基本码流帧的显示时间戳相匹配,则重置解码器和解扰器,并将播放时间在与所述目标播放时间戳相匹配的基本码流帧之前的所有基本码流帧删除。
[0028]在其中一个实施例中,所述方法还包括:
[0029]计算所述解码器缓冲区的缓冲时长;
[0030]基于所述当前缓冲传输流的缓冲时长和所述解码器缓冲区的缓冲时长,获取当前总缓冲时长;
[0031]以缓冲进度条的形式展示所述当前总缓冲时长。
[0032]为实现上述目的,本申请实施例还提出一种流媒体播放装置,包括:
[0033]获取模块,用于从传输流缓冲区获取传输流数据包;
[0034]计算模块,用于根据数据包中包含的节目时钟基准获取当前缓冲传输流的缓冲时长;
[0035]播放模块,用于若当前缓冲传输流的缓冲时长符合预设条件,则启动解码器并解扰后进行解码播放。
[0036]为实现上述目的,本申请实施例还提出一种流媒体播放设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的流媒体播放程序,所述处理器执行所述流媒体播放程序时实现如上述的流媒体播放方法。
[0037]为实现上述目的,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有流媒体播放程序,所述流媒体播放程序被处理器执行时实现如上述的流媒体播放方法。
[0038]本申请的流媒体播放方法,通过传输流数据包中的节目时钟基准获取客户端的当前缓冲数据流的缓冲时长,再基于该缓冲时长缓冲传输流,使得无论面对什么分辨率/码率的流媒体资源时,均可缓冲足够播放时长的流媒体数据,从而避免了固定大小缓冲区在缓冲高分辨率、高码率流媒体资源时缓冲时长不足,而导致流媒体播放器频繁暂停的问题,进而极大地提升了用户的使用体验。
附图说明
[0039]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0040]图1为本专利技术流媒体播放设备一实施例的模块结构图;
[0041]图2为本专利技术流媒体播放方法一实施例的流程示意图;
[0042]图3为本专利技术流媒体播放方法另一实施例的流程示意图;
[0043]图4为本专利技术流媒体播放方法又一实施例的流程示意图;
[0044]图5为本专利技术流媒体播放方法再一实施例的流程示意图;
[0045]图6为本专利技术流媒体播放方法再一实施例的流程示意图;
[0046]图7为本专利技术流媒体播放装置一实施例的模块结构图。
[0047]本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0048]应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0049]为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0050]应当注意的是,在权利要求中,不应将位于括号之间的任何参本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种流媒体播放方法,其特征在于,包括:从传输流缓冲区获取传输流数据包;根据数据包中包含的节目时钟基准获取当前缓冲传输流的缓冲时长;若当前缓冲传输流的缓冲时长符合预设条件,则启动解码器并解扰后进行解码播放。2.如权利要求1所述的流媒体播放方法,其特征在于,所述根据数据包中包含的节目时钟基准获取当前缓冲传输流的缓冲时长,包括:以含有节目时钟基准的数据包为切割点切割传输流,并基于切割后的传输流模拟基本码流帧;将模拟的基本码流帧导入帧环形缓冲队列;获取所述帧环形缓冲队列中的基本码流帧的缓冲时长,并将所述环形缓冲队列中的基本码流帧的缓冲时长作为所述当前缓冲传输流的缓冲时长。3.如权利要求2所述的流媒体播放方法,其特征在于,所述以含有节目时钟基准的数据包为切割点切割传输流,并基于切割后的传输流模拟基本码流帧,包括:在当前缓冲传输流的缓冲时长符合预设条件前,执行以下循环:解析传输流中的数据包;当解析到含有节目时钟基准的数据包时,将所述含有节目时钟基准的数据包及其之前的所有数据包封装为所述基本码流帧的播放数据;根据所述节目时钟基准设置所述基本码流帧的显示时间戳。4.如权利要求3所述的流媒体播放方法,其特征在于,所述根据播放数据中的节目时钟基准设置所述基本码流帧的显示时间戳,包括:根据所述节目时钟基准的基值的索引值设置所述基本码流帧的索引值;以索引值为0的基本码流帧为播放时间轴起点;根据所述基本码流帧的索引值和播放时间轴起点的差值计算所述基本码流帧的显示时间戳。5.如权利要求3所述的流媒体播放方法,其特...

【专利技术属性】
技术研发人员:孙学刚
申请(专利权)人:深圳市创维软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利