针对hls协议栈在网络抖动时的优化实现方法和装置的制造方法

文档序号:10555546阅读:577来源:国知局
针对hls协议栈在网络抖动时的优化实现方法和装置的制造方法
【专利摘要】本发明公开了针对HLS协议栈在网络抖动时的优化实现方法和装置,其中,该方法包括:分别建立用于更新M3U8索引列表的第一线程和用于更新切片内容的第二线程,同时启动所述第一线程和所述第二线程;预先设置一个切片下载链表,根据所述M3U8索引列表对所述切片下载链表进行更新;监听所述切片下载链表,当所述切片下载链表发生更新时,唤醒所述第二线程并根据所述切片下载链表依次下载各个切片的切片内容。本发明的针对HLS协议栈在网络抖动时的优化实现方法和装置,能够在发生短时网络抖动时,不对下载切片内容的第二线程造成影响,避免了直播过程中节目流出现丢失或者跳段情况,使得直播节目更加稳定、流畅,提高了直播体验效果。
【专利说明】
针对HLS协议栈在网络抖动时的优化实现方法和装置
技术领域
[0001 ]本发明涉及流媒体播放技术领域,具体地,涉及一种针对HLS协议栈在网络抖动时的优化实现方法和装置。
【背景技术】
[0002]HLS的全称是HTTP Live Streaming,动态码率自适应技术,是苹果公司开放的一个流媒体协议栈,基本思路是将一个整体的码流分割为若干个小的切片ts,通过M3U8索引列表的形式将切片整理在一起,客户端首先从服务器下载索引列表,再逐一下载切片内容。在点播节目中,索引列表会包含所有的切片内容;而在直播节目中,索引列表包含3-5个数量不等的切片地址和属性信息,并定时更新索引列表,获得最新的切片内容。
[0003]在低速网络中,常常因为网速原因导致不能及时地下载切片和索引列表,导致在直播节目中经常出现视频卡顿和节目跳段的情况。在现有的流媒体播放方案中,客户端下载更新M3U8索引列表,计算其MD5值,如果此MD5值与前一次更新M3U8索引列表时的MD5值相同,则认为是相同的M3U8索引列表,没有新的切片更新,如果不同则认为是有新的切片更新。在直播节目中,M3U8索引列表是定时更新的,所以客户端也需要定时更新,如果客户端更新的速度太快,就会下载两个相同的M3U8索引列表,此时这两个M3U8索引列表的MD5值是相同的。
[0004]当发生网络抖动时,比如一个1s的切片,其下载就耗时1 s以上,此时再去更新M3U8索引列表时可能已经漏掉了几个切片,当网络抖动结束后再去更新则不能获得连续的切片,使得流媒体播放出现跳段。现有技术中的播放方案都采用串行方式来下载切片和M3U8索引列表,使得遇到短时网络抖动时会出现跳段情况,无法实现直播节目的稳定和流畅。

【发明内容】

[0005]为了解决现有技术中采用串行方式下载切片内容和M3U8索引列表,在直播节目中遇到短时网络抖动时会出现跳段和卡顿的技术问题,本发明提出了一种针对HLS协议栈在网络抖动时的优化实现方法和装置。
[0006]本发明的针对HLS协议栈在网络抖动时的优化实现方法,包括:
[0007]分别建立用于更新M3U8索引列表的第一线程和用于更新切片内容的第二线程,同时启动所述第一线程和所述第二线程;
[0008]预先设置一个切片下载链表,根据所述M3U8索引列表对所述切片下载链表进行更新;
[0009]监听所述切片下载链表,当所述切片下载链表发生更新时,唤醒所述第二线程并根据所述切片下载链表依次下载各个切片的切片内容。
[0010]优选的,根据所述切片下载链表依次下载各个切片的切片内容时,对所述切片下载链表进行检测,当所述切片下载链表中存在未下载切片时,按照切片排列顺序依次下载所述未下载切片的切片内容。
[0011]优选的,所述切片下载链表用于存储对每次更新后的M3U8索引列表进行解析获取的切片地址和属性信息。
[0012]优选的,所述根据所述M3U8索引列表对所述切片下载链表进行更新包括:
[0013]自服务器端下载当前时刻的M3U8索引列表,对所述当前时刻的M3U8索引列表进行解析,获取所述当前时刻的M3U8索引列表中包含的切片地址和属性信息;
[0014]将解析获取的所述切片地址和属性信息插入到所述切片下载链表中。
[0015]优选的,当发生网络抖动时,在下载并解析完当前时刻的M3U8索引列表后,立即下载最新的M3U8索引列表;
[0016]对所述最新的M3U8索引列表进行解析,并将解析结果插入到所述切片下载链表中。
[0017]优选的,在下载切片内容时,根据实际网络需求预先设置每次下载的切片个数。
[0018]本发明的针对HLS协议栈在网络抖动时的优化实现方法,改变了现有技术的串行下载方式,使用并行线程和同步机制来更新切片内容和M3U8索引列表。由于更新M3U8索引列表的第一线程与更新切片内容的第二线程是同时并行执行,因此,能够在发生短时网络抖动时,不对下载切片内容的第二线程造成影响,避免了直播过程中节目流出现丢失或者跳段情况,使得直播节目更加稳定、流畅,提高了直播体验效果。
[0019]本发明的针对HLS协议栈在网络抖动时的优化实现装置,包括:
[0020]线程建立模块,用于分别建立用于更新M3U8索引列表的第一线程和用于更新切片内容的第二线程,同时启动所述第一线程和所述第二线程;
[0021]链表更新模块,用于预先设置一个切片下载链表,根据所述M3U8索引列表对所述切片下载链表进行更新;
[0022]监听下载模块,用于监听所述切片下载链表,当所述切片下载链表发生更新时,唤醒所述第二线程并根据所述切片下载链表依次下载各个切片的切片内容。
[0023]优选的,所述监听下载模块还用于,
[0024]根据所述切片下载链表依次下载各个切片的切片内容时,对所述切片下载链表进行检测,当所述切片下载链表中存在未下载切片时,按照切片排列顺序依次下载所述未下载切片的切片内容。
[0025]优选的,所述切片下载链表用于存储对每次更新后的M3U8索引列表进行解析获取的切片地址和属性信息。
[0026]优选的,所述链表更新模块包括:
[0027]下载解析子模块,用于自服务器端下载当前时刻的M3U8索引列表,对所述当前时刻的M3U8索弓I列表进行解析,获取所述当前时刻的M3U8索引列表中包含的切片地址和属性信息;
[0028]信息插入子模块,用于将解析获取的所述切片地址和属性信息插入到所述切片下载链表中。
[0029]优选的,当发生网络抖动时,在下载并解析完当前时刻的M3U8索引列表后,立即下载最新的M3U8索引列表;
[0030]对所述最新的M3U8索引列表进行解析,并将解析结果插入到所述切片下载链表中。
[0031]优选的,在下载切片内容时,根据实际网络需求预先设置每次下载的切片个数。
[0032]本发明的针对HLS协议栈在网络抖动时的优化实现装置,改变了现有技术的串行下载方式,使用并行线程和同步机制来更新切片内容和M3U8索引列表。由于更新M3U8索引列表的第一线程与更新切片内容的第二线程是同时并行执行,因此,能够在发生短时网络抖动时,不对下载切片内容的第二线程造成影响,避免了直播过程中节目流出现丢失或者跳段情况,使得直播节目更加稳定、流畅,提高了直播体验效果。
[0033]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0034]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】
[0035]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0036]图1为现有技术中的工作流程示意图;
[0037]图2为本发明的针对HLS协议栈在网络抖动时的优化实现方法的流程示意图;
[0038]图3为本发明实施例三中第一线程和第二线程在时间线上工作示意图;
[0039]图4为本发明的切片队列的示意图;
[0040]图5为本发明的针对HLS协议栈在网络抖动时的优化实现装置的结构示意图。
【具体实施方式】
[0041]下面结合附图,对本发明的【具体实施方式】进行详细描述,但应当理解本发明的保护范围并不受【具体实施方式】的限制。
[0042]为了解决现有技术中采用串行方式下载切片内容和M3U8索引列表,在直播节目中遇到短时网络抖动时会出现跳段和卡顿的技术问题,本发明提出了一种针对HLS协议栈在网络抖动时的优化实现方法和装置。
[0043]本发明通过改变使用原来的串行方式,而使用并行线程和同步机制来更新切片内容和M3U8索引列表,避免直播节目流出现丢失或者跳段的情况,使得直播节目更加稳定流畅,提高直播体验效果。
[0044]实施例一
[0045]本实施例主要对现有技术的串行下载方式进行详细说明,以与本发明提出的并行、同步机制进行对比。为了便于定量分析,在本申请说明书的实施例中,对各种参数作出以下假设,本领域技术人员应当了解,以下各种假设的数值可能与实际情况不符,其仅用于更清楚地说明现有技术和本发明的工作流程,并不构成本发明保护范围的限制。其中,
[0046]1、假设每个切片包含1s的内容,1s的内容是指该切片在实际播放时的播放时间为10s。这里假设每个切片包含1s的内容是为了方便定量分析,计算本发明的技术方案可以避免丢失切片的情况,具体参见实施例一与实施例三。
[0047]2、假设服务器每1s会更新M3U8索引列表,如在第一次更新M3U8索引列表到第二次更新M3U8索引列表,该M3U8索引列表的内容从
[0048]#EXTM3U
[0049]#EXT-X-TARGETDURAT1N:10
[0050]#EXT-X-MEDIA-SEQUENCE:1
[0051]#EXTINF:10,
[0052]http://letv.eom/2014052616/l.ts
[0053]#EXTINF:10,
[0054]http://Ietv.com/2014052616/2.ts
[0055]#EXTINF:10,
[0056]http://Ietv.com/2014052616/3.ts
[0057]更新为
[0058]#EXTM3U
[0059]#EXT-X-TARGETDURAT1N:10
[0060]#EXT-X-MEDIA-SEQUENCE:2
[0061]#EXTINF:10,
[0062]http://Ietv.com/2014052616/2.ts
[0063]#EXTINF:10,
[0064]http://Ietv.com/2014052616/3.ts
[0065]#EXTINF:10,
[0066]http://Ietv.com/2014052616/4.ts.
[0067]在现有技术和本发明中,切片内容的时长是确定服务器更新M3U8索引列表时间间隔的一个重要因素,基本上可以认为,每消耗一个切片的时长就有一个新的切片生成并更新。但切片内容的时长并不是唯一的确定因素,还取决于服务器的其他设置,为便于分析计算,在本申请说明书中仅用切片内容的时长作为每次更新M3U8索引列表的时间依据,上述假设并不会构成本发明的保护范围的限制。
[0068]3、假设在网络正常的情况下每个切片可以在5s内下载完成,发生网络抖动后需要10-15S完成,本申请说明书中假设网络抖动比网络正常时多耗时10s。并假设每次只下载一个切片,实际操作过程中,每次下载的切片数量可以根据实际需求进行设置。
[0069]4、假设在网络正常的情况下每次M3U8索引列表可以在2s内下载完成并在3s内解析结束。
[0070]如图1所示,服务器端分别在08、108、208、308、408等时间点更新一次131]8索引列表。
[0071 ]现有技术的工作流程包括:
[0072]步骤S101:(0-5s)更新M3U8索引列表,并解析该M3U8索引列表,得到切片l.ts、2.ts、3.ts的地址和属性信息,属性信息可以包含切片的索引和时长等信息。
[0073]步骤S102:(5-10s)下载切片 l.ts。
[0074]步骤3103:(10-158)更新131]8索引列表,解析131]8索引列表,得到切片2上、3上、4ts的地址和属性信息。
[0075]步骤S104: (15-30S)下载切片2.ts,由于发生短时网络抖动,网络恶化,下载超时。
[0076]步骤3105:(30-358)更新131]8索引列表,解析列表,得到4.丨8、5.丨8、6丨8的地址和属性信息。步骤S106: (35-40s)网络好转,下载切片4.ts。此时由于网络抖动造成切片3.ts的丢失。
[0077]从上述现有技术的工作流程可以看出,由于采用串行机制,当在更新M3U8索引列表和/或下载切片内容的过程中,发生短时网络抖动时,极易造成某个或某些切片的丢失,从而导致直播过程中出现卡顿或跳段的现象,无法保证直播节目的稳定和流畅。
[0078]实施例二
[0079]本实施例主要对本发明提出的针对HLS协议栈在网络抖动时的优化实现方法进行说明,如图2所示,包括以下步骤:
[0080]步骤S201:分别建立用于更新M3U8索引列表的第一线程和用于更新切片内容的第二线程,同时启动所述第一线程和所述第二线程;
[0081]建立双线程的并行、同步运行机制是本发明的核心,通过第一线程和第二线程的同步执行,能够避免因在下载M3U8索引列表的过程中发生短时网络抖动,造成的切片丢失。
[0082]步骤S202:预先设置一个切片下载链表,根据所述M3U8索引列表对所述切片下载链表进行更新;
[0083]在建立双线程的同时,还需要设置一个切片下载链表,所述切片下载链表用于存储对每次更新后的M3U8索引列表进行解析获取的切片地址和属性信息。
[0084]上述步骤S201和步骤S202并不构成对本发明方法执行顺序的限制,本领域技术人员应当了解,对切片下载链表进行更新的过程可以设置在第一线程中,也可以单独设置。
[0085]步骤S203:监听所述切片下载链表,当所述切片下载链表发生更新时,唤醒所述第二线程并根据所述切片下载链表依次下载各个切片的切片内容。
[0086]优选的,根据所述切片下载链表依次下载各个切片的切片内容时,对所述切片下载链表进行检测,当所述切片下载链表中存在未下载切片时,按照切片排列顺序依次下载所述未下载切片的切片内容,而并不需要等待每更新一次M3U8索引列表之后才下载切片的切片内容。本领域技术人员应当了解,步骤S203的执行过程可以设置在第一线程中,也可以单独执行。
[0087]具体的,步骤S202中“根据所述M3U8索引列表对所述切片下载链表进行更新”可实施为以下步骤:
[0088]步骤S2021:自服务器端下载当前时刻的M3U8索引列表,对所述当前时刻的M3U8索弓I列表进行解析,获取所述当前时刻的M3U8索引列表中包含的切片地址和属性信息;
[0089]步骤S2022:将解析获取的所述切片地址和属性信息插入到所述切片下载链表中。
[0090]步骤S2023:当发生网络抖动时,在下载并解析完当前时刻的M3U8索引列表后,立即下载最新的M3U8索引列表。
[0091 ]步骤S2024:对所述最新的M3U8索引列表进行解析,并将解析结果插入到所述切片下载链表中。
[0092]在第二线程下载切片的过程中,当监听到切片下载链表发生更新时,会从切片下载链表中获取各个切片的地址和属性信息,每下载完一个切片,就检测切片下载链表中是否有未下载的其他切片,进而连续地依次下载各个切片。
[0093]优选的,下载切片内容时,可以根据实际网络需求预先设置每次下载的切片个数。
[0094]本发明的针对HLS协议栈在网络抖动时的优化实现方法,改变了现有技术的串行下载方式,使用并行线程和同步机制来更新切片内容和M3U8索引列表。由于更新M3U8索引列表的第一线程与更新切片内容的第二线程是同时并行执行,因此,能够在发生短时网络抖动时,不对下载切片内容的第二线程造成影响,避免了直播过程中节目流出现丢失或者跳段情况,使得直播节目更加稳定、流畅,提高了直播体验效果。
[0095]实施例三
[0096]以下以具体实施例的方式对本发明的技术方案进行更加具体的说明,在本实施例中,假设M3U8索引列表中包含3个切片的地址和属性信息,每次下载M3U8索引列表耗时2s,解析M3U8索引列表耗时3s,第一线程和第二线程在相应的时间点上同步执行,因此,以下分别以两个线程各自的执行过程进行说明。
[0097]首先,本发明的技术方案需要分别建立用于更新M3U8索引列表的第一线程ThreadI和用于更新切片内容的第二线程Thread 2,同时启动所述第一线程Thread I和所述第二线程Thread 2;
[0098]如图3所示,第一线程的工作流程包括:
[0099]步骤S301:(0-2s)从服务器端下载当前时刻最新的M3U8索引列表,此时得到的是包含1.七8、248、3.七8三个切片的]\01]8索引列表。
[0100]步骤S302:(2-5s)解析步骤S302中得到的M3U8索引列表,得到3个切片的URL地址和属性等信息,解析结果是一个队列,队列中的每个节点都是一个切片的信息,包括索引、地址、时长等属性,如图4所示为切片队列的示意图。其中,包含的切片为:
[0101]#EXTM3U
[0102]#EXT-X-TARGETDURAT1N:8
[0103]#EXT-X-MEDIA-SEQUENCE:100
[0104]#EXTINF:7,
[0105]http://letv.com/2014052616/ll.ts
[0106]#EXTINF8,
[0107]http://letv.com/2014052616/12.ts
[0108]#EXTINF:8,
[0109]http://letv.com/2014052616/13.ts.
[0110]步骤3303:(2-58)将步骤3303中解析得到的得到切片1^8、248、348的地址和属性插入到切片下载链表QueueA中。
[0111]步骤304: (2_5s)当监听到切片下载链表QueueA发生更新时,即表明有新的切片插入,会通知并唤醒第二线程Thread 2。
[0112]步骤303和步骤304是在解析M3U8索引列表结束同时执行的过程,因此,与步骤2在时间线上所耗费的时间相同。
[0113]步骤S305: (5-10S)由于M3U8索引列表每隔1s更新一次,且此时已唤醒第二线程执行下载切片的操作,因此第一线程线程Thread I在此时间段内处于睡眠状态,等待1s时间点的到来继续更新M3U8索引列表。
[0114]步骤S306:(10-22s)在1s时,第一线程Thread I醒来,并希望重复步骤1_5,但是由于此时发生网络抖动开始恶化,原本可以在2s内下载M3U8索引列表的操作,在网络恶化后需要耗时12s (即多耗时1s)才下载完M3U8索引列表。
[0115]步骤S307: (22-25s)解析步骤6中下载得到的M3U8索引列表。
[0116]步骤3308:(22-258)解析完成后得到的是切片2^8、348、4^8的地址和属性,将2.ts、3.ts、4.ts的地址和属性插入到切片下载链表QueueA中,此时网络状况恢复正常。
[0117]步骤309:(25-27s)因为上一次M3U8索引列表更新超时,实际服务器端已经再次更新了索引列表,因此第一线程需要立即再次更新M3U8索引列表。
[0118]步骤3310:(27-308)对步骤3309中得到的]\01]8索引列表进行解析得到348、4.七8、
5.ts的地址和属性信息,并插入到切片下载链表QueueA中。
[0119]在本发明的技术方案中,第一线程ThreadI的主要作用是确保M3U8索引列表能够及时更新,保证得到连续的切片地址和属性信息,即1.ts、2.ts、3.ts、4.ts、5.ts......,第二线程Thread2才实际地根据切片下载链表依次下载每一个切片。
[0120]第二线程包括:
[0121]步骤S401:(0-5s)监听切片下载链表QueueA是否发生更新;
[0122]步骤S402:(5-10s)监听到切片下载链表QueueA发生更新,根据从切片下载链表QueueA获取的切片地址和属性信息,下载切片1.ts。
[0123]步骤S403:(10-25s)检测切片下载链表QueueA,发现未下载的切片2.ts,下载
2.ts,由于网络抖动,本应在5s内下载2.ts多耗时1s延时到了15s;
[0124]步骤S404:(25-30s)检测切片下载链表QueueA,发现未下载的切片3.ts,下载
3.tso
[0125]对比实施例一和实施例三可知,在实施例一的现有技术中,由于发生网络抖动(延时10s),造成在步骤S104-S106下载的切片中丢失了 3.ts,导致直播过程发生卡顿或跳段。而在实施例三的本发明中,虽然在步骤S306中同样发生网络抖动(延时也为1s),但是,由于下载切片内容的第二线程与更新M3U8索引列表的第一线程同时并行执行,只要在第一线程的执行过程中,得到的切片地址和属性是连续的,从而在步骤S404中就能够下载每一个切片(包括现有技术中会丢失的切片3.ts)的内容,从而保证了直播节目的稳定和流畅。
[0126]实施例四
[0127]本发明还提出了一种针对HLS协议栈在网络抖动时的优化实现装置,如图5所示,包括:
[0128]线程建立模块51,用于分别建立用于更新M3U8索引列表的第一线程和用于更新切片内容的第二线程,同时启动所述第一线程和所述第二线程;
[0129]链表更新模块52,用于预先设置一个切片下载链表,根据所述M3U8索引列表对所述切片下载链表进行更新;
[0130]监听下载模块53,用于监听所述切片下载链表,当所述切片下载链表发生更新时,唤醒所述第二线程并根据所述切片下载链表依次下载各个切片的切片内容。
[0131]优选的,所述监听下载模块53还用于,
[0132]根据所述切片下载链表依次下载各个切片的切片内容时,对所述切片下载链表进行检测,当所述切片下载链表中存在未下载切片时,按照切片排列顺序依次下载所述未下载切片的切片内容。
[0133]优选的,所述切片下载链表用于存储对每次更新后的M3U8索引列表进行解析获取的切片地址和属性信息。
[0134]优选的,所述链表更新模块52包括:
[0135]下载解析子模块521,用于自服务器端下载当前时刻的M3U8索引列表,对所述当前时刻的M3U8索弓I列表进行解析,获取所述当前时刻的M3U8索引列表中包含的切片地址和属性信息;
[0136]信息插入子模块522,用于将解析获取的所述切片地址和属性信息插入到所述切片下载链表中。
[0137]优选的,当发生网络抖动时,在下载并解析完当前时刻的M3U8索引列表后,立即下载最新的M3U8索引列表;
[0138]对所述最新的M3U8索引列表进行解析,并将解析结果插入到所述切片下载链表中。
[0139]优选的,在下载切片内容时,根据实际网络需求预先设置每次下载的切片个数。
[0140]本发明的针对HLS协议栈在网络抖动时的优化实现装置,改变了现有技术的串行下载方式,使用并行线程和同步机制来更新切片内容和M3U8索引列表。由于更新M3U8索引列表的第一线程与更新切片内容的第二线程是同时并行执行,因此,能够在发生短时网络抖动时,不对下载切片内容的第二线程造成影响,避免了直播过程中节目流出现丢失或者跳段情况,使得直播节目更加稳定、流畅,提高了直播体验效果。
[0141]本发明能有多种不同形式的【具体实施方式】,上面以图1-图5为例结合附图对本发明的技术方案作举例说明,这并不意味着本发明所应用的具体实例只能局限在特定的流程或实施例结构中,本领域的普通技术人员应当了解,上文所提供的具体实施方案只是多种优选用法中的一些示例,任何体现本发明权利要求的实施方式均应在本发明技术方案所要求保护的范围之内。
[0142]最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种针对HLS协议栈在网络抖动时的优化实现方法,其特征在于,包括: 分别建立用于更新M3U8索引列表的第一线程和用于更新切片内容的第二线程,同时启动所述第一线程和所述第二线程; 预先设置一个切片下载链表,根据所述M3U8索引列表对所述切片下载链表进行更新; 监听所述切片下载链表,当所述切片下载链表发生更新时,唤醒所述第二线程并根据所述切片下载链表依次下载各个切片的切片内容。2.根据权利要求1所述的针对HLS协议栈在网络抖动时的优化实现方法,其特征在于,根据所述切片下载链表依次下载各个切片的切片内容时,对所述切片下载链表进行检测,当所述切片下载链表中存在未下载切片时,按照切片排列顺序依次下载所述未下载切片的切片内容。3.根据权利要求1所述的针对HLS协议栈在网络抖动时的优化实现方法,其特征在于,所述切片下载链表用于存储对每次更新后的M3U8索引列表进行解析获取的切片地址和属性信息。4.根据权利要求1所述的针对HLS协议栈在网络抖动时的优化实现方法,其特征在于,所述根据所述M3U8索引列表对所述切片下载链表进行更新包括: 自服务器端下载当前时刻的M3U8索引列表,对所述当前时刻的M3U8索引列表进行解析,获取所述当前时刻的M3U8索引列表中包含的切片地址和属性信息; 将解析获取的所述切片地址和属性信息插入到所述切片下载链表中。5.根据权利要求4所述的针对HLS协议栈在网络抖动时的优化实现方法,其特征在于,当发生网络抖动时,在下载并解析完当前时刻的M3U8索引列表后,立即下载最新的M3U8索引列表; 对所述最新的M3U8索引列表进行解析,并将解析结果插入到所述切片下载链表中。6.根据权利要求1-5任意一项所述的针对HLS协议栈在网络抖动时的优化实现方法,其特征在于,在下载切片内容时,根据实际网络需求预先设置每次下载的切片个数。7.一种针对HLS协议栈在网络抖动时的优化实现装置,其特征在于,包括: 线程建立模块,用于分别建立用于更新M3U8索引列表的第一线程和用于更新切片内容的第二线程,同时启动所述第一线程和所述第二线程; 链表更新模块,用于预先设置一个切片下载链表,根据所述M3U8索引列表对所述切片下载链表进行更新; 监听下载模块,用于监听所述切片下载链表,当所述切片下载链表发生更新时,唤醒所述第二线程并根据所述切片下载链表依次下载各个切片的切片内容。8.根据权利要求7所述的针对HLS协议栈在网络抖动时的优化实现装置,其特征在于,所述监听下载模块还用于, 根据所述切片下载链表依次下载各个切片的切片内容时,对所述切片下载链表进行检测,当所述切片下载链表中存在未下载切片时,按照切片排列顺序依次下载所述未下载切片的切片内容。9.根据权利要求7所述的针对HLS协议栈在网络抖动时的优化实现装置,其特征在于,所述切片下载链表用于存储对每次更新后的M3U8索引列表进行解析获取的切片地址和属性信息。10.根据权利要求7所述的针对HLS协议栈在网络抖动时的优化实现装置,其特征在于,所述链表更新模块包括: 下载解析子模块,用于自服务器端下载当前时刻的M3U8索引列表,对所述当前时刻的M3U8索引列表进行解析,获取所述当前时刻的M3U8索引列表中包含的切片地址和属性信息; 信息插入子模块,用于将解析获取的所述切片地址和属性信息插入到所述切片下载链表中。11.根据权利要求10所述的针对HLS协议栈在网络抖动时的优化实现装置,其特征在于,当发生网络抖动时,在下载并解析完当前时刻的M3U8索引列表后,立即下载最新的M3U8索引列表; 对所述最新的M3U8索引列表进行解析,并将解析结果插入到所述切片下载链表中。12.根据权利要求7-11任意一项所述的针对HLS协议栈在网络抖动时的优化实现装置,其特征在于,在下载切片内容时,根据实际网络需求预先设置每次下载的切片个数。
【文档编号】H04N21/845GK105915489SQ201510760159
【公开日】2016年8月31日
【申请日】2015年11月9日
【发明人】郑吉剑
【申请人】乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1