基于hls流媒体的视频数据加速下载方法及装置的制造方法

文档序号:9847229阅读:357来源:国知局
基于hls流媒体的视频数据加速下载方法及装置的制造方法
【技术领域】
[0001]本发明涉及流媒体技术领域,尤其涉及一种基于HLS流媒体的视频数据加速下载方法及装置。
【背景技术】
[0002]HLS(HTTP Live Streaming,超文本直播流)是基于HTTP的流媒体传输协议,可实现流媒体的直播和点播。协议支持媒体数据加密与流切换(例如不同码率),媒体数据创建后立即传输,播放接近实时。
[0003]HLS播放列表由一个有序的媒体URI列表和信息标签组成,每个媒体URI指向一个媒体文件(分片文件),这个媒体文件是单个连续媒体流上的一个片断。为了播放媒体流,客户端首先获取播放列表,然后获取并播放播放列表中的每个流媒体文件。
[0004]在现有技术中,基于HLS流媒体的视频数据下载加速可以通过多任务的形式实现,即启动多个任务同时下载多个分片文件并依序发送给客户端播放;在使用多个任务下载数据时,最多可以使速率提高达到两倍的程度,但是需要注意的是,每个单任务下载数据的速度反而降低了,而且是任务数越多单个任务的速率越慢,这就意味着播放视频时,不能随时随意的启动多任务进行码流的下载,如当多个任务同时下载多个分片文件时,当前需要播放的分片文件没有下载过来,而暂时不需要播放的分片文件却下载过来了,这将影响客户端正常播放。
[0005]上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

【发明内容】

[0006]本发明的主要目的在于提供一种基于HLS流媒体的视频数据加速下载方法及装置,旨在解决的现有技术中,在启动视频数据加速下载时,容易导致客户端播放异常的技术问题。
[0007]为实现上述目的,本发明提供一种基于HLS流媒体的视频数据加速下载方法,该方法包括:
[0008]在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;
[0009]在定时器时间达到时,判断所述HLS流媒体的播放请求对应的HLS流媒体是否下载完成;
[0010]若所述HLS流媒体的播放请求对应的HLS流媒体未下载完成,则获取缓存区中的数据量;
[0011]判断所述数据量是否大于或等于第一预设阀值;以及
[0012]若所述数据量大于或等于第一预设阀值,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
[0013]优选地,所述启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件的步骤包括:
[0014]判断当前是否通过非加速下载模式下载HLS流媒体的分片文件;
[0015]若当前未通过非加速下载模式下载HLS流媒体的分片文件,则启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
[0016]优选地,所述启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件的步骤还包括:
[0017]若当前通过非加速下载模式下载HLS流媒体的分片文件,则在非加速下载模式下载完成后且接收到所述网络媒体客户端发送的分片获取请求时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
[0018]优选地,判断所述数据量是否大于或等于第一预设阀值的步骤之后,该方法还包括:
[0019]若所述数据量小于第一预设阀值,则判断所述数据量是否为零;
[0020]若所述数据量为零,则获取当前时刻之前的预设时间内发送给所述网络媒体客户端的分片文件的第一总时长;
[0021]判断所述第一总时长是否为零;
[0022]若所述第一总时长不为零,则获取在当前时刻之前的预设时间内发送第一个分片文件的时刻到当前时刻之间的第二总时长;
[0023]若所述第二总时长大于第一总时长,则启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件,并控制计数器将计数值加I。
[0024]优选地,所述判断所述第一总时长是否为零的步骤之后,该方法还包括:
[0025]若所述第一总时长为零,则获取计数器的计数值;
[0026]若所述计数器的计数值为非零,则控制计数器将计数值加I;
[0027]重新获取计数器的计数值,并在重新获取的计数器的计数值大于预设的次数阀值时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
[0028]此外,为实现上述目的,本发明还提供一种基于HLS流媒体的视频数据加速下载装置,该装置包括:
[0029]启动模块,用于在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;
[0030]第一判断模块,用于在定时器时间达到时,判断所述HLS流媒体的播放请求对应的HLS流媒体是否下载完成;
[0031]第一获取模块,用于在所述HLS流媒体的播放请求对应的HLS流媒体未下载完成时,获取视频数据加速下载装置中的缓存区中的数据量;
[0032]第二判断模块,用于判断所述数据量是否大于或等于第一预设阀值;
[0033]第一控制模块,用于在所述数据量大于或等于第一预设阀值时,启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件。
[0034]优选地,所述第一控制模块包括:
[0035]第一判断单元,用于在所述数据量大于或等于第一预设阀值时,判断所述视频数据加速下载装置当前是否通过非加速下载模式下载HLS流媒体的分片文件;
[0036]第一控制单元,用于在所述视频数据加速下载装置当前未通过非加速下载模式下载HLS流媒体的分片文件时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
[0037]优选地,所述第一控制模块还包括:
[0038]第二控制单元,用于在所述视频数据加速下载装置当前通过非加速下载模式下载HLS流媒体的分片文件时,在非加速下载模式下载完成后且接收到所述网络媒体客户端发送的分片获取请求时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
[0039]优选地,所述装置还包括:
[0040]第三判断模块,用于在所述第二判断模块的判断结果为所述数据量小于第一预设阀值时,判断所述数据量是否为零;
[0041 ]第二获取模块,用于在所述数据量为零时,获取所述视频数据加速下载装置在当前时刻之前的预设时间内发送给所述网络媒体客户端的分片文件的第一总时长;
[0042]第三获取模块,用于在所述第一总时长不为零时,获取所述视频数据加速下载装置在当前时刻之前的预设时间内发送第一个分片文件的时刻到当前时刻之间的第二总时长;
[0043]第三控制模块,用于在所述第二总时长大于第一总时长时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件,并控制计数器将计数值加I。
[0044]优选地,所述装置还包括:
[0045]第四获取模块,用于在所述第一总时长为零时,获取计数器的计数值;
[0046]第四控制模块,用于在所述计数器的计数值为非零时,控制计数器将计数值加I;
[0047]第五控制模块,用于重新获取计数器的计数值,并在重新获取的计数器的计数值大于预设的次数阀值时,启动多线程加速下载模式,以从所述网络媒体服务器中获取HLS流媒体的分片文件。
[0048]本发明的基于HLS流媒体的视频数据加速下载方法及装置,通过在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器;在定时器时间达到时,判断所述HLS流媒体的播放请求对应的HLS流媒体是否下载完成;若所述HLS流媒体的播放请求对应的HLS流媒体未下载完成,则获取缓存区中的数据量;判断所述数据量是否大于或等于第一预设阀值;若所述数据量大于或等于第一预设阀值,则启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件;即可在网络状态良好时(缓存区中的数据量大于或等于第一预设阀值时),启动多线程加速下载模式,以从网络媒体服务器中获取HLS流媒体的分片文件,在视频数据加速下载装置中缓存尽量多的分片文件,减少网络媒体客户端出现播放异常的情况。
【附图说明】
[0049]图1为本发明基于HLS流媒体的视频数据加速下载方法的第一实施例的流程示意图;
[0050]图2为图1中步骤S14的一实施例的细化流程示意图;
[0051]图3为本发明基于HLS流媒体的视频数据加速下载方法的第二实施例的流程示意图;
[0052]图4为本发明基于HLS流媒体的视频数据加速下载装置的第一实施例的结构示意图;
[0053]图5为本发明基于HLS流媒体的视频数据加速下载装置中的第一控制模块的细化结构示意图;
[0054]图6为本发明基于HLS流媒体的视频数据加速下载装置的第二实施例的结构示意图。
[0055]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0056]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0057]参照图1,图1为本发明基于HLS流媒体的视频数据加速下载方法的第一实施例的流程示意图,该方法包括:
[0058]SlO、在接收到网络媒体客户端发送的HLS流媒体的播放请求时,循环启动定时器。
[0059]该播放请求中可包括HLS流媒体的播放列表,播放列表中的每一项对应一个分片文件,每个分片有一个唯一的编号,如,其中一个分片的编号为100,各个分片文件按照播放顺序进行排序,先播放的分片文件的编号较小。该播放列表中的每
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1