适于hls视频文件下载存储方法及hls视频文件播放系统的制作方法
【专利摘要】本发明涉及一种适于HLS视频文件下载存储方法及HLS视频文件播放系统。其中,下载存储方法包括下列步骤:获取分块文件目录步骤,解析分块文件目录步骤,下载分块文件步骤、生成本地分块文件目录步骤、生成本地HTTP服务器步骤以及建立本地HTTP服务器步骤。本发明能能够顺利下载HLS协议传输的流媒体节目数据的分块目录及分块数据,并在客户端进行存储,以实现客户端播放器在离线情况下进行本地播放。
【专利说明】适于HLS视频文件下载存储方法及HLS视频文件播放系统
【技术领域】
[0001]本发明涉及一种视频文件下载方法、系统及播放系统,特别是涉及一种HLS视频文件下载方法、系统及下载播放系统。
【背景技术】
[0002]HTTP Live Streaming(本专利文件简称:HLS)是苹果公司创造的一种基于Http协议的流媒体通信协议,其文件路径均是合法的URL,流媒体文件的播放列表格式是M3U8格式。它将整个媒体流分成一个个小的分块,每一个小的分块均通过HTTP协议传输,它主要运用于向iOS设备(如:iPhone, iPad)传送视频、音频流。它的主要优点如下:利用既有的HTTP协议,不需要安装特殊的服务端软件;对发送的媒体流进行加密和认证。但它有明显的缺点,即必须连接到网络,如下载只能下载流媒体的播放列表,也即M3U8格式的播放列表(下文为描述方便,简称分块文件目录),而不能下载各分块文件,故不能实现离线播放。
【发明内容】
[0003]本发明所要解决的技术问题在于针对上述现有技术存在的不足而提供一种能下载HLS协议文件的目录和各个小分块,并进行存储的方法,以实现离线播放,以及该下载、存储系统和播放系统。
[0004]本发明为解决上述基于HLS视频文件下载问题,所采用的下载存储方法,包括下列步骤:
[0005]I)获取分块文件目录步骤,本地客户端通过HTTP协议向流媒体服务器请求获取节目数据的远程分块文件目录;
[0006]2)解析分块文件目录步骤,对远程分块文件目录进行解析以确定节目数据的各分块路径是否为合法的URL,并确定各分块文件的数量及对应的网址;
[0007]3)下载分块文件步骤,根据解析的各分块网址下载节目数据的所有分块文件至客户端;
[0008]4)生成本地分块文件目录步骤,将节目数据的远程分块文件目录转换为本地分块文件目录;
[0009]5)生成本地HTTP服务器步骤,在本地建立HTTP服务器,并将分块文件和本地分块文件目录置于内置HTTP服务器中。
[0010]按上述方案,所述解析分块目录步骤包括:将获取的远程分块文件目录的每一行数据置于数组中;对数组中每一行数据进行筛选,如#开头的数据行不做处理,非#开头的数据行为分块文件地址,输入分块文件下载步骤。
[0011]按上述方案,下载到本地的分块文件的排列顺序与分块文件目录的排列顺序一致。
[0012]按上述方案,所述建立本地分块文件目录步骤为,将获取的分块文件目录中各分块文件的网址修改为各分块文件对应的本地地址。[0013]按上述方案,所述本地分块文件目录的各分块文件的本地存储地址可以是分块文件的相对地址,或下载后分块文件的绝对地址。
[0014]按上述方案,还包括建立文件夹步骤,建立本地文件夹,并将下载的分块文件及建立的本地播放目录均置于该视频文件夹中的步骤。
[0015]按上述方案,所述建立文件夹步骤在下载分块文件之前完成。
[0016]HLS视频文件下载存储方系统,包括:
[0017]I)获取分块文件目录模块,用于客户端通过HTTP协议向流媒体服务器请求获取节目数据的远程分块文件目录;
[0018]2)解析分块文件目录模块,用于对分块目录进行解析,判断分块文件路劲是否为合法的URL,确定各分块文件数量及网址,并将分块网址传给下载分块文件模块;
[0019]3)下载分块文件模块,用于基于解析分块文件目录模块传送的分块文件网址将所有分块文件下载至客户端;
[0020]4)生成本地分块文件目录模块,用于将下载后的节目数据的各分块文件,依序生成本地分块目录;
[0021]5)生成本地http服务器模块,用于在本地建立HTTP服务器,并将下载的分块文件及本地分块文件目录置于该服务器中。
[0022]按上述方案,还包括自动建立文件夹模块,用于建立文件夹并使下载的分块文件及生成的本地分块文件目录置于该文件夹中。
[0023]按上述方案,下载分块文件模块将下载的各分块文件在客户端的排列顺序与远程分块文件目录中各分块文件的排列顺序一致。
[0024]HLS视频文件播放系统,包括:HLS视频文件下载存储方系统和播放模块,所述的HLS视频文件下载存储方系统采用如权上述任一项所述的系统。
[0025]本发明的有益效果:能够顺利下载HLS协议传输的流媒体节目数据的分块目录及分块数据,并在客户端进行存储,以实现客户端播放器在离线情况下进行本地播放。
【专利附图】
【附图说明】
[0026]图1为本发明下载、存数方法流程图;
[0027]图2为本发明下载、存储系统的结构原理图;
[0028]图3为本发明播放器结构原理图;
[0029]图4为本发明远程流媒体视频文件的分块文件目录;
[0030]图5为本发明本地流媒体视频文件分块文件目录。
【具体实施方式】
[0031]为了使本发明的目的、技术方案及优点更加清楚明白,一下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限制本发明。
[0032]图1示出了本法名实施例提供的基于HTTP协议播放的流媒体文件下载方法。
[0033]在步骤SlOl中,本地客户端通过HTTP协议向流媒体服务器请求获取节目数据的远程分块文件目录,所下载的远程分块文件目录,也即流媒体的远程M3U8播放列表。[0034]在步骤S102中,对分块目录进行解析以确定节目数据的各分块路径是否为合法的URL,如果不是,则停止后续操作,该类文件非本方法可下载;如果是,则继续操作筛选获得各分块文件的数量及对应的网址。
[0035]在步骤S103中,建立本地文件夹,并将下载的分块文件及建立的本地播放目录均置于该视频文件夹中。
[0036]在步骤S104中,根据解析的分块网址下载节目数据的所有分块文件至客户端。
[0037]在步骤S105中,将节目数据的分块目录转换为本地媒体分块目录,所生成的本地媒体分块目录,也即流媒体的本地M3U8播放列表。
[0038]在步骤S106中,在本地建立HTTP服务器,并将分块文件和分块目录置于内置HTTP服务器中。
[0039]本发明方法,步骤S103可以在步骤S102之前完成,也可以作为本发明的第一步骤。
[0040]更进一步的,步骤S102筛选获得分块文件的数量及网址步骤,是把分块文件目录的所有数据行置于数组中进行筛选,非“#”开头的数据行为各分块文件的网址。
[0041]更进一步的,步骤S104下载后的分块分拣在文件夹中的排列顺序与分块文件目录中各分块文件的排列顺序一致。
[0042]更进一步的,步骤S105,为将获取的分块文件目录中各分块文件的网址修改为各分块文件对应的本地地址。
[0043]更进一步的,步骤S105中各分块文件的本地地址既可以为各分块文件的相对地址。
[0044]图2示出了本发明HLS视频文件下载存储系统结构原理。
[0045]获取分块目录模块101,用于客户端通过HTTP协议向流媒体服务器请求获取节目数据的分块文件目录,具体步骤为:通过HTTP协议向流媒体远程服务器发出获取节目数据分块目录的请求,并下载该分块目录;解析分块目录模块102,用于对远程分块目录进行解析,判断分块文件路径是否为合法的URL,如果不是则非本系统可下载的文件,提示客户终端停止操作,如果是则继续操作,确定各分块文件数量及网址,并将分块网址传给下载分块文件模块;建立文件夹模块103,用于建立文件夹并使下载的分块文件及生成的本地分块文件目录置于该文件夹中;下载节目分块模块104,用于根据解析分块目录模块102传送的各分块文件的网址将所有分块文件下载至客户端,并将下载的分块文件的排列顺序与分块目录中文件顺序一致;生成本地分块文件目录模块105,用于将下载后的节目数据的各分块文件依序生成本地分块目录,所生成的本地分块文件目录与下载的分块目录相比,仅将分块文件的网址修改为分块文件的本地地址;生成本地http服务器模块106,用于在本地建立HTTP服务器,并将下载的分块文件及本地分块文件目录置于该服务器中。
[0046]本发明方法,建立文件夹模块103也可以设置在解析分块目录模块102与获取分块目录模块101之间。
[0047]图3示出了本发明播放器的结构原理图,所述播放器包括本发明HLS视频文件下载存储系统201和播放模块202,通过HLS视频文件下载存储系统201下载流媒体文件,通过播放模块202进行播放。播放模块可为普通播放器的播放模块。
[0048]图4为某一流媒体文件远程分块文件目录示例,即M3U8格式播放列表,“http”开头的数据行为各分块文件的远程播放(在线)地址。如只下载该播放列表,离线后无法连接分块文件的远程播放地址,故而无法离线播放。
[0049]图5为通过本发明方法及设备下载分块文件并重新建立的分块文件目录示例,也即M3U8格式的播放列表,列表中的“0.ts”、”l.ts”等为下载到本地的各分块文件的播放地址。离线播放是,通过本地分块文件目录,找到各分块文件地址,进行播放。
【权利要求】
1.一种HLS视频文件下载存储方法,包括下列步骤: O获取分块文件目录步骤,本地客户端通过HTTP协议向流媒体服务器请求获取节目数据的远程分块文件目录; 2)解析分块文件目录步骤,对远程分块文件目录进行解析以确定节目数据的各分块路径是否为合法的URL,并确定各分块文件的数量及对应的网址; 3)下载分块文件步骤,根据解析的各分块网址下载节目数据的所有分块文件至客户端; 4)生成本地分块文件目录步骤,将节目数据的远程分块文件目录转换为本地分块文件目录; 5)生成本地HTTP服务器步骤,在本地建立HTTP服务器,并将分块文件和本地分块文件目录置于内置HTTP服务器中。
2.根据权利要求1所述的HLS视频文件下载存储方法,其特征在于:所述解析分块目录步骤包括:将获取的远程分块文件目录的每一行数据置于数组中;对数组中每一行数据进行筛选,如#开头的数据行不做处理,非#开头的数据行为分块文件地址,输入分块文件下载步骤。
3.根据权利要求1所述的HLS视频文件下载存储方法,其特征在于:下载到本地的分块文件的排列顺序与分 块文件目录的排列顺序一致。
4.根据权利要求1或2或3所述的HLS视频文件下载存储方法,其特征在于:所述建立本地分块文件目录步骤为,将获取的分块文件目录中各分块文件的网址修改为各分块文件对应的本地地址。
5.根据权利要求4所述的HLS视频文件下载存储方法,其特征在于:所述本地分块文件目录的各分块文件的本地存储地址可以是分块文件的相对地址,或下载后分块文件的绝对地址。
6.根据权利要求1或2或3所述的HLS视频文件下载存储方法,其特征在于:还包括建立文件夹步骤,建立本地文件夹,并将下载的分块文件及建立的本地播放目录均置于该视频文件夹中的步骤。
7.—种HLS视频文件下载存储方系统,包括: O获取分块文件目录模块,用于客户端通过HTTP协议向流媒体服务器请求获取节目数据的远程分块文件目录; 2)解析分块文件目录模块,用于对分块目录进行解析,判断分块文件路劲是否为合法的URL,确定各分块文件数量及网址,并将分块网址传给下载分块文件模块; 3)下载分块文件模块,用于基于解析分块文件目录模块传送的分块文件网址将所有分块文件下载至客户端; 4)生成本地分块文件目录模块,用于将下载后的节目数据的各分块文件,依序生成本地分块目录; 5)生成本地http服务器模块,用于在本地建立HTTP服务器,并将下载的分块文件及本地分块文件目录置于该服务器中。
8.根据权利要求7所述HLS视频文件下载存储方系统,其特征在于:还包括自动建立文件夹模块,用于建立文件夹并使下载的分块文件及生成的本地分块文件目录置于该文件夹中。
9. 根据权利要求7所述HLS视频文件下载存储方系统,其特征在于:下载分块文件模块将下载的各分块文件在客户端的排列顺序与远程分块文件目录中各分块文件的排列顺序一致。
10.一种HLS视频文件播放系统,包括:HLS视频文件下载存储方系统和播放模块,其特征在于:所述的HLS视频文件下载存储方系统采用如权利要求7至10任一项所述的系统。
【文档编号】H04N21/858GK103581764SQ201210258027
【公开日】2014年2月12日 申请日期:2012年7月24日 优先权日:2012年7月24日
【发明者】张宗飞 申请人:武汉网幂科技有限公司