一种HLS流媒体的播放方法、系统、设备及存储介质技术方案

技术编号:37120195 阅读:29 留言:0更新日期:2023-04-01 05:15
本申请公开了一种HLS流媒体的播放方法、系统、设备及存储介质,涉及流媒体播放技术领域,通过主线程解析M3U8索引文件得到待播放的HLS流媒体的全部TS分片的URL地址,在主线程解析M3U8索引文件的过程中,新建不超过预设的可新建子线程数量的子线程并发打开已解析得到URL地址,第一个TS分片对应的URL地址打开完成,通下载线程按顺序从各个已打开的URL地址下载各个TS分片对应的播放数据。本申请能够提高起播速度,并有效避免网络带宽浪费、播放卡顿和对系统资源的过多占用。顿和对系统资源的过多占用。顿和对系统资源的过多占用。

【技术实现步骤摘要】
一种HLS流媒体的播放方法、系统、设备及存储介质


[0001]本申请涉及流媒体播放
,特别是涉及一种HLS流媒体的播放方法、系统、设备及存储介质。

技术介绍

[0002]随着移动互联网流媒体播放技术的快速发展,基于HLS协议的流媒体播放技术在移动互联网中应用越来越广泛。HLS(HTTP Live Streaming,基于HTTP的自适应码率流媒体传输协议)是一种基于HTTP(HyperText Transfer Protocol,超文本传输协议)的流媒体传输协议,可以实现流媒体的直播、点播和回看服务。HLS协议的基本原理是:服务端将音视频流切成TS分片,并建立M3U8索引文件;客户端先下载并解析M3U8索引文件得到待播放音视频流的各个TS分片的索引地址,再根据解析得到的各个TS分片的索引地址依次下载和播放对应TS分片,形成流媒体的播放。
[0003]然而,现有的HLS流媒体播放技术中,客户端在解析M3U8索引文件和打开并下载TS分片时,通常是先将M3U8索引文件的各个TS分片的索引地址全部解析完毕,然后采用单线程根据TS分片序号按照顺序依次打开并下载各个TS分片。当M3U8索引文件较大时,解析M3U8索引文件这一流程耗时较长,等待解析完毕再下载浪费时间,导致流媒体播放时的起播耗时长,起播速度慢,另外,仅由主线程按顺序依次打开并下载各个TS分片,会造成网络带宽浪费,且容易导致播放卡顿现象。
[0004]因此,在进行流媒体播放时,如何提高起播速度,并有效避免网络带宽浪费、播放卡顿和对系统资源的过多占用,是本领域技术人员亟待解决的技术问题。

技术实现思路

[0005]为解决上述技术问题,本申请提供一种HLS流媒体的播放方法,能够提高起播速度,并有效避免网络带宽浪费、播放卡顿和对系统资源的过多占用。本申请还提供一种HLS流媒体的播放系统、设备及存储介质,具有相同的技术效果。
[0006]本申请的第一个目的为提供一种HLS流媒体的播放方法。
[0007]本申请的上述申请目的一是通过以下技术方案得以实现的:
[0008]一种HLS流媒体的播放方法,包括:
[0009]获取待播放的HLS流媒体的M3U8索引文件;
[0010]通过主线程解析所述M3U8索引文件以得到所述待播放的HLS流媒体的全部TS分片的URL地址;
[0011]在所述主线程解析所述M3U8索引文件的过程中,根据已解析得到的TS分片的URL地址数量新建相应数量的子线程,并通过所述子线程打开已解析得到的各个TS分片对应的URL地址,其中,
[0012]新建子线程的数量小于等于预设的可新建子线程数量n,n为正整数,且所述预设的可新建子线程数量n小于所述待播放的HLS流媒体的TS分片数量;
[0013]当第一个TS分片对应的URL地址打开完成,通过下载线程按顺序从各个已打开的URL地址下载各个TS分片对应的播放数据。
[0014]优选地,所述方法还包括:
[0015]当所述M3U8索引文件解析完毕,通过所述主线程按顺序检索所述各个TS分片对应的URL地址是否已经开始打开;以及
[0016]通过所述主线程根据检索结果对还未开始打开的TS分片对应的URL地址执行URL地址打开操作。
[0017]优选地,所述根据已解析得到的TS分片的URL地址数量新建相应数量的子线程,并通过所述子线程打开已解析得到的各个TS分片对应的URL地址包括:
[0018]所述主线程每解析出一个所述TS分片的URL地址,则新建一个用于打开该TS分片的URL地址的子线程,并通过该新建的子线程执行打开该TS分片的URL地址的操作。
[0019]优选地,所述方法还包括:
[0020]在通过所述主线程按顺序检索所述各个TS分片对应的URL地址是否已经开始打开的过程中,当出现如下预设停止检索条件之一时,则停止检索:
[0021]停止检索条件1:检索完第n个TS分片的URL地址,且该TS分片的URL地址已经开始打开;
[0022]停止检索条件2:检索到第i个TS分片的URL地址,且该第i个TS分片的URL地址还未开始打开,其中,i为大于1的正整数,且i≤n。
[0023]优选地,所述通过所述主线程根据检索结果对还未开始打开的TS分片对应的URL地址执行URL地址打开操作包括:
[0024]当检索完第n个TS分片的URL地址,且该TS分片的URL地址已经开始打开,则所述主线程从第n+1个TS分片对应的URL地址开始执行URL地址打开操作;或者,
[0025]当检索到第i个TS分片的URL地址,且该第i个TS分片的URL地址还未开始打开,则所述主线程从该第i个TS分片对应的URL地址开始执行URL地址打开操作。
[0026]优选地,在所述获取待播放的HLS流媒体的M3U8索引文件之后,所述方法还包括:
[0027]将所述M3U8索引文件的大小与预设文件大小阈值进行比较,当所述M3U8索引文件的大小大于预设文件大小阈值时,则执行所述在所述主线程解析所述M3U8索引文件的过程中,根据已解析得到的TS分片的URL地址数量新建相应数量的子线程,并通过所述子线程打开已解析得到的各个TS分片对应的URL地址的步骤。
[0028]优选地,所述预设的可新建子线程数量n根据设备性能和网络带宽确定,其中,
[0029]所述设备性能包括服务端支持的并发连接请求数,以及客户端的CPU性能和内存大小;
[0030]所述网络带宽是指服务端与客户端之间的通信网络的带宽。
[0031]本申请的第二个目的为提供一种HLS流媒体的播放系统。
[0032]本申请的上述申请目的二是通过以下技术方案得以实现的:
[0033]一种HLS流媒体的播放系统,包括:
[0034]索引文件获取模块,用于获取待播放的HLS流媒体的M3U8索引文件;
[0035]索引文件解析模块,用于通过主线程解析所述M3U8索引文件以得到所述待播放的HLS流媒体的全部TS分片的URL地址;
[0036]第一URL地址打开模块,用于在所述主线程解析所述M3U8索引文件的过程中,根据已解析得到的TS分片的URL地址数量新建相应数量的子线程,并通过所述子线程打开已解析得到的各个TS分片对应的URL地址,其中,
[0037]新建子线程的数量小于等于预设的可新建子线程数量n,n为正整数,且所述预设的可新建子线程数量n小于所述待播放的HLS流媒体的TS分片数量;
[0038]播放数据下载模块,用于当第一个TS分片对应的URL地址打开完成,通过下载线程按顺序从各个已打开的URL地址下载各个TS分片对应的播放数据。
[0039]优选地,所述系统还包括:
[0040]URL地址检索模块,用于当所述M3U8索引文件已解析完毕,通过所述主线程按顺序检索所述各个TS分片对应的URL地址是否已经开始打开;
[0041]第二本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种HLS流媒体的播放方法,其特征在于,所述方法包括:获取待播放的HLS流媒体的M3U8索引文件;通过主线程解析所述M3U8索引文件以得到所述待播放的HLS流媒体的全部TS分片的URL地址;在所述主线程解析所述M3U8索引文件的过程中,根据已解析得到的TS分片的URL地址数量新建相应数量的子线程,并通过所述子线程打开已解析得到的各个TS分片对应的URL地址,其中,新建子线程的数量小于等于预设的可新建子线程数量n,n为正整数,且所述预设的可新建子线程数量n小于所述待播放的HLS流媒体的TS分片数量;当第一个TS分片对应的URL地址打开完成,通过下载线程按顺序从各个已打开的URL地址下载各个TS分片对应的播放数据。2.根据权利要求1所述的HLS流媒体的播放方法,其特征在于,所述方法还包括:当所述M3U8索引文件解析完毕,通过所述主线程按顺序检索所述各个TS分片对应的URL地址是否已经开始打开;以及通过所述主线程根据检索结果对还未开始打开的TS分片对应的URL地址执行URL地址打开操作。3.根据权利要求1或2所述的HLS流媒体的播放方法,其特征在于,所述根据已解析得到的TS分片的URL地址数量新建相应数量的子线程,并通过所述子线程打开已解析得到的各个TS分片对应的URL地址包括:所述主线程每解析出一个所述TS分片的URL地址,则新建一个用于打开该TS分片的URL地址的子线程,并通过该新建的子线程执行打开该TS分片的URL地址的操作。4.根据权利要求2所述的HLS流媒体的播放方法,其特征在于,所述方法还包括:在通过所述主线程按顺序检索所述各个TS分片对应的URL地址是否已经开始打开的过程中,当出现如下预设停止检索条件之一时,则停止检索:停止检索条件1:检索完第n个TS分片的URL地址,且该TS分片的URL地址已经开始打开;停止检索条件2:检索到第i个TS分片的URL地址,且该第i个TS分片的URL地址还未开始打开,其中,i为大于1的正整数,且i≤n。5.根据权利要求4所述的HLS流媒体的播放方法,其特征在于,所述通过所述主线程根据检索结果对还未开始打开的TS分片对应的URL地址执行URL地址打开操作包括:当检索完第n个TS分片的URL地址,且该TS分片的URL地址已经开始打开,则所述主线程从第n+1个TS分片对应的URL地址开始执行URL地址打开操...

【专利技术属性】
技术研发人员:陈恩洪梁伟宋希尧
申请(专利权)人:湖南国科微电子股份有限公司
类型:发明
国别省市:

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

1