一种基于hls协议的视频下载方法及其装置制造方法

文档序号:7778782阅读:246来源:国知局
一种基于hls协议的视频下载方法及其装置制造方法
【专利摘要】本发明提供一种基于HLS协议的视频下载方法及其装置。所述方法包括:从云服务器获取下载目标视频的m3u8文件;根据所述m3u8文件中的多个URL从云服务器下载所述目标视频对应的多个视频片段;将下载到的各个视频片段分别存储在本地磁盘中的指定位置上。本发明根据m3u8文件中的多个URL从云服务器下载对应的多个视频片段,以实现多个视频片段的同时下载。节省了下载的等待时间,提高了下载速度。
【专利说明】一种基于HLS协议的视频下载方法及其装置
【技术领域】
[0001]本发明涉及视频通讯【技术领域】,尤其涉及一种基于HLS协议的视频下载方法及其装置。
【背景技术】
[0002]HLS (Http live streaming)协议是苹果公司实现的基于超文本传输协议Http的流媒体传输协议,HLS协议将容量巨大的连续媒体数据进行分段,分割为数量众多的小文件进行传递,迎合了网页服务器的文件传输性,采用一个不断更新的轻量级索引文件来控制分割后小媒体文件的下载和播放,可以实现流媒体的直播和点播。HLS协议在优先考虑流畅性的前提下支持码率的自动切换,目前被各大视频网站广泛使用。
[0003]通过HLS协议,视频数据经处理后分为视频片段ts文件以及媒体数据索引m3u8文件,并存在于云服务器上。m3u8文件实际上只是一种文件组的组织形式,将视频片段ts文件以播放列表的形式组织在一起以供多媒体播放器下载播放。
[0004]m3u8文件中通常包括多个视频片段的多个统一资源定位符URL。多媒体播放器获取m3u8文件后,进而按照其中的URL下载对应的视频片段并进行播放。也可以按照m3u8文件中的URL将视频片段下载并存储在本地,以供后续在本地进行播放。对于HLS协议的视频下载,是依据m3u8文件中URL的顺序从云服务器逐个依次下载视频片段,下载完成后是一个完整的视频文件。由于是依照顺序逐个下载,当其中某一个视频片段的下载出现问题时,将会影响其后的所有视频片段的下载,因此总体下载速度较慢。
[0005]综上,一种基于HLS协议的视频下载方法及其装置是亟待提供的。

【发明内容】

[0006]有鉴于此,本发明提供一种基于HLS协议的视频下载方法及其装置,以解决依照顺序逐个下载视频片段所带来的视频下载速度慢的问题。
[0007]具体地,所述方法包括:
[0008]从云服务器获取下载目标视频的m3u8文件;
[0009]根据所述m3u8文件中的多个URL从云服务器下载所述目标视频对应的多个视频片段;
[0010]将下载到的视频片段存储在本地磁盘中的指定位置上。
[0011]进一步地,所述方法还包括:
[0012]根据视频片段所在的指定位置的路径,生成所述目标视频的本地m3u8文件。
[0013]进一步地,所述方法还包括:
[0014]根据所述本地m3u8文件,将存储在指定位置的视频片段合并成所述目标视频。
[0015]进一步地,所述方法还包括:
[0016]将所述m3u8文件保存到本地,并在所述m3u8文件中标记已完成下载的URL,在重新启动所述目标视频的下载时,根据本地保存的所述m3u8文件中未做标记的URL继续下载。
[0017]进一步地,根据所述m3u8文件中的多个URL从云服务器下载所述目标视频对应的多个视频片段的过程包括:同时和所述云服务器建立多个并行的HTTP连接,依据所述多个并行的HTTP连接同时从云服务器下载多个视频片段。
[0018]所述基于HLS协议的视频下载装置包括:
[0019]获取模块,用于从云服务器获取下载目标视频的m3u8文件;
[0020]下载模块,用于根据所述m3u8文件中的多个URL从云服务器下载所述目标视频对应的多个视频片段,并将下载到的视频片段存储在本地磁盘中的指定位置上。
[0021]进一步地,所述装置还包括:
[0022]生成模块,用于根据视频片段所在的指定位置的路径,生成所述目标视频的本地m3u8文件。
[0023]进一步地,所述装置还包括:
[0024]合并模块,用于根据所述本地m3u8文件,将存储在指定位置的视频片段合并成所述目标视频。
[0025]进一步地,其特征在于,
[0026]所述下载模块,进一步用于将所述m3u8文件保存到本地,并在所述m3u8文件中标记已完成下载的URL,在重新启动所述目标视频的下载时,根据本地保存的所述m3u8文件中未做标记的URL继续下载。
[0027]进一步地,所述下载模块根据所述m3u8文件中的多个URL从云服务器下载所述目标视频对应的多个视频片段的过程包括:同时和所述云服务器建立多个并行的HTTP连接,依据所述多个并行的HTTP连接同时从云服务器下载多个视频片段。
[0028]由以上描述可以看出,本发明根据m3u8文件中的多个URL从云服务器下载对应的多个视频片段,以实现多个视频片段的同时下载。因此,即使在某一个视频片段下载出错时,也不影响其他视频片段的下载,节省了下载的等待时间,提高了下载速度。
【专利附图】

【附图说明】
[0029]图1是本发明一种实施方式中视频下载方法流程示意图;
[0030]图2是本发明一种实施方式中目标视频的m3u8文件示意图;
[0031]图3是本发明一种实施方式中目标视频的本地m3u8文件示意图;
[0032]图4是本发明一种实施方式中视频下载装置的结构示意图。
【具体实施方式】
[0033]针对现有技术中存在的下载速度较慢的问题,本发明提供一种基于HLS协议的视频下载方法。为进一步说明本发明,提供下列实施例:
[0034]实施例一
[0035]请参考图1,本实施例的基于HLS协议的视频下载方法包括以下步骤:
[0036]步骤101,从云服务器获取下载目标视频的m3u8文件。
[0037]步骤102,根据该m3u8文件中的多个URL从云服务器下载目标视频对应的多个视频片段,并将下载到的各个视频片段分别存储在本地磁盘中的指定位置上。[0038]依据HLS协议,获知用户选定下载的目标视频后,首先从云服务器获取该目标视频的m3u8文件,请参考图2所示的m3u8文件示意图,其中:
[0039]#EXTM3U:表示m3u文件头,放在第一行。
[0040]#EXT-X-TARGETDURATION:表示指定的最大视频片段时长,单位是秒。
[0041]#EXTINF:表示每个视频片段ts文件的时长,仅对其后的URL有效,#EXTINF中指定的时长必须小于等于#EXT-X-TARGETDURATION中指定的时长。
[0042]http://218.30.13.36/sample_100k_l.ts:表不视频片段 sample_100k_l 的媒体数据ts文件的URL。
[0043]#EXT-X-ENDLIST:表示 m3u8 文件的结束符。
[0044]通常来讲,一个完整的视频对应一个m3u8文件,该m3u8文件中包括这个完整视频的多个视频片段的URL。本发明在获取到上述m3u8文件后,根据该m3u8文件中各个视频片段的URL从云服务器下载视频片段,并将各个视频片段分别存储在指定的位置上。该指定的位置位于本地磁盘上,可以是下载的默认位置,比如,默认下载位置是:c:\users\Download,也可以是用户自定义的位置。
[0045]由于本发明是根据m3u8文件中的多个URL从云服务器下载多个对应的视频片段,可以实现多个视频片段的同时下载。仍以图2所示的m3u8文件为例,可以同时下载上述m3u8文件中的视频片段:sample_100k-l.ts和sample_100k_2.ts。如果其中某一个视频片段下载出错,比如:视频片段sample_100k-2.ts下载出错,那么在sample_100k_l.ts下载完成后会继续下载接下来的视频片段sample_100k-3.ts,也就是同时下载sample_100k-2.ts 和 sample_100k_3.ts。不会因为 sample_100k_2.ts 的下载出错而导致sample_100k-3.ts无法下载。从而节省了等待时间,提高下载的速度。
[0046]实施例二
[0047]本实施例在实施例一的基础上进一步地限定:根据视频片段所在的指定位置的路径,生成所述目标视频的本地m3u8文件。
[0048]本实施例在视频片段下载完成的同时,生成本地m3u8文件。优选地,该本地m3u8文件的格式和云服务器的相同,不同的是本地m3u8文件中的URL是本地地址。以图2所示的m3u8文件中的视频片段下载到本地磁盘C:\Users\Download中为例,下载完成后生成的本地m3u8文件如图3所示。通过生成上述本地m3u8文件以实现后续对目标视频的合成以
及播放。
[0049]对于传统的视频下载而言,下载完成后呈现给用户的是一个视频文件,用户点击该视频文件就可以实现播放。而本发明下载完成后,保存的是目标视频的多个视频片段,对于用户而言,可以通过点击本地m3u8文件来实现播放。目前各大播放器基本都支持m3u8文件的播放,比如,MPlayer、VLC> ffplayer等。由此可见,通过本地m3u8文件对视频片段进行播放也是极为便利的,不会产生额外操作。
[0050]实施例三
[0051]本实施例在实施例二的基础上,根据上述本地m3u8文件,将存储在指定位置的视频片段合并成目标视频。
[0052]本发明是将目标视频的各个视频片段分别下载并保存,也就是说下载好的目标视频是多个视频片段的集合,由于文件数量较多,不便于拷贝,所以可以依据上述本地m3u8文件将下载好的视频片段合成完整的目标视频。
[0053]在本实施例的一种具体实现中,依据本地m3u8文件中各个视频片段的顺序,将各个视频片段合并为完整的目标视频。其中,将各个视频片段合并为一个视频可以依据已知的视频合并方法。比如,通过视频格式编码规范对视频进行合并解码,再根据目标格式编码规范重新合并编码。以HLS协议为例,视频片段是ts格式,经过合并后可以输出一个ts格式的大视频文件。通过对视频片段的合并,可以方便用户对目标视频的拷贝等操作。
[0054]实施例四
[0055]本实施例在实施例一的基础上进一步限定根据m3u8文件中的多个URL从云服务器下载目标视频对应的多个视频片段的过程:同时和所述云服务器建立多个并行的HTTP连接,依据所述多个并行的HTTP连接同时从云服务器下载多个视频片段。
[0056]由于本发明中目标视频的视频片段下载顺序不受m3u8文件的限制,为进一步提升下载速度,本实施例同时从云服务器下载多个视频片段。
[0057]在本实施例的一种具体实现中,与云服务器同时建立多个并行的HTTP连接,依据多个并行的HTTP连接从云服务器同时下载多个视频片段,提高下载速度。优选地,和云服务器建立三个并行的HTTP连接,即同时下载三个视频片段,这样既不影响用户正常的网络连接,比如:浏览网页,玩在线游戏等,又能同时下载多个视频片段,进一步提高带宽的利用率。
[0058]实施例五
[0059]本实施例在实施例一的基`础上,将m3u8文件保存到本地,并在该m3u8文件中标记已完成下载的URL,在重新启动目标视频的下载时,根据本地保存的上述m3u8文件中未做标记的URL继续下载。
[0060]本实施例提供了一种目标视频继续下载的方法。在实际应用中,会出现一部电影没有下载完毕,但用户关闭了电脑,在电脑重新开启后,用户还想要继续下载的情况。或者是由于网络故障,导致下载中断,在故障恢复时,也需要继续下载。要实现继续下载,就需要知道哪些视频片段已经下载完毕,哪些视频片段还没有下载。本实施例设计将m3u8文件保存到本地,并在该m3u8文件中标记已完成下载的视频片段,这样在重新启动下载的时候,就可以依据该m3u8文件中未做标记的URL下载还未下载的视频片段。
[0061]具体地,可以在m3u8文件的各个视频片段的URL后面加上预设的字段用来标记,如,增加字段&d0wnl0aded用来表明该视频片段已经下载完毕。那么,在重新启动目标视
频的下载时,只需要下载上述m3u8文件中未标记&downloaded字段的视频片段。当然,也可以采取其他的方式,比如,在本地建立下载进度表。
[0062]
【权利要求】
1.一种基于HLS协议的视频下载方法,其特征在于,所述方法包括: 从云服务器获取下载目标视频的m3u8文件; 根据所述m3u8文件中的多个URL从云服务器下载所述目标视频对应的多个视频片段; 将下载到的各个视频片段分别存储在本地磁盘中的指定位置上。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 根据视频片段所在的指定位置的路径,生成所述目标视频的本地m3u8文件。
3.根据权利要求2所述的方法,其特征在于,所述方法进一步包括: 根据所述本地m3u8文件,将存储在指定位置的视频片段合并成所述目标视频。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 将所述m3u8文件保存到本地,并在所述m3u8文件中标记已完成下载的URL,在重新启动所述目标视频的下载时,根据本地保存的所述m3u8文件中未做标记的URL继续下载。
5.根据权利要求1所述的方法,其特征在于, 根据所述m3u8文件中的多个URL从云服务器下载所述目标视频对应的多个视频片段的过程包括:同时和所述云服务器建立多个并行的HTTP连接,依据所述多个并行的HTTP连接同时从云服务器下载多个视频片段。
6.一种基于HLS协议的视频下载装置,其特征在于,所述装置包括: 获取模块,用于从云服务器获取下载目标视频的m3u8文件; 下载模块,用于根据所述m3u8文件中的多个URL从云服务器下载所述目标视频对应的多个视频片段,并将下载到的各个视频片段分别存储在本地磁盘中的指定位置上。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括: 生成模块,用于根据视频片段所在的指定位置的路径,生成所述目标视频的本地m3u8文件。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 合并模块,用于根据所述本地m3u8文件,将存储在指定位置的视频片段合并成所述目标视频。
9.根据权利要求6所述的装置,其特征在于, 所述下载模块,进一步用于将所述m3u8文件保存到本地,并在所述m3u8文件中标记已完成下载的URL,在重新启动所述目标视频的下载时,根据本地保存的所述m3u8文件中未做标记的URL继续下载。
10.根据权利要求6所述的装置,其特征在于, 所述下载模块根据所述m3u8文件中的多个URL从云服务器下载所述目标视频对应的多个视频片段的过程包括:同时和所述云服务器建立多个并行的HTTP连接,依据所述多个并行的HTTP连接同时从云服务器下载多个视频片段。
【文档编号】H04N21/845GK103648019SQ201310638866
【公开日】2014年3月19日 申请日期:2013年11月29日 优先权日:2013年11月29日
【发明者】苍鹏, 李强 申请人:乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1