发明内容
本发明的实施例提供一种视频流下载方法及电子设备,可以根据下载得到的M3U8文件,实现TS的正常播放。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明实施例的第一方面,提供一种视频流下载方法,包括:
获取组成传送流TS的M3U8文件;
解析所述M3U8文件,以获取所述M3U8文件所对应的TS的所有切片文件的切片地址;
根据获取到的切片地址分别下载每个切片文件,将下载得到的所述每个切片文件存储至本地。
结合第一方面,在一种可能的实现方式中,所述解析所述M3U8文件,以获取所述M3U8文件所对应的TS的所有切片文件的切片地址,包括:
解析所述M3U8文件,以获取所述M3U8文件所对应的TS的所有切片文件的切片地址和所述切片地址对应的切片文件的播放顺序;
其中,所述播放顺序为:播放所述TS时,所述TS中的切片文件的播放先后顺序。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述在根据获取到的切片地址分别下载每个切片文件,将下载得到的所述每个切片文件存储至本地之后,所述方法还包括:
获取所有切片文件的本地存储地址;
按照所述播放顺序,生成包含所有切片文件的本地存储地址的M3U8本地列表,使得生成的所述M3U8本地列表中的本地存储地址的排列顺序与所述播放顺序相对应。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,该视频流下载方法还包括:
将所述M3U8本地列表中的所述本地存储地址的格式修订为虚拟网络地址的格式,并使得所述M3U8本地列表中的虚拟网络地址的排列顺序与所述播放顺序相对应;
在检测到TS的播放指令后,按照所述M3U8本地列表中各虚拟网络地址的排列顺序,依次根据不同的所述虚拟网络地址播放相应的切片文件。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述获取组成传送流TS的M3U8文件,包括:
检测TS的下载指令,所述下载指令中包含待下载的TS标识;
在检测到所述下载指令后,根据所述下载指令中包含的TS标识从服务器下载组成所述TS的M3U8文件。
本发明实施例的第二方面,还提供一种电子设备,包括:
第一获取单元,用于获取组成传送流TS的M3U8文件;
解析单元,用于解析所述第一获取单元获取到的所述M3U8文件,以获取所述M3U8文件所对应的TS的所有切片文件的切片地址;
下载单元,用于根据所述解析单元获取到的切片地址分别下载每个切片文件,将下载得到的所述每个切片文件存储至本地。
结合第二方面,在一种可能的实现方式中,所述解析单元,还用于解析所述M3U8文件,以获取所述M3U8文件所对应的TS的所有切片文件的切片地址和所述切片地址对应的切片文件的播放顺序;
其中,所述播放顺序为:播放所述TS时,所述TS中的切片文件的播放先后顺序。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述电子设备,还包括:
第二获取单元,用于在所述下载单元根据获取到的切片地址分别下载每个切片文件,将下载得到的所有切片文件存储至本地之后,获取所有切片文件的本地存储地址;
生成单元,用于按照所述解析单元获取到的所述播放顺序,生成包含所述第二获取单元获取到的所有切片文件的本地存储地址的M3U8本地列表,使得生成的所述M3U8本地列表中的本地存储地址的排列顺序与所述播放顺序相对应;
其中,所述本地存储地址在所述M3U8本地列表中的排列顺序为播放所述TS时,各个本地存储地址所对应的切片文件的播放先后顺序。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述电子设备,还包括:
修订单元,用于将所述生成单元生成的所述M3U8本地列表中的所述本地存储地址的格式修订为虚拟网络地址的格式,并使得所述M3U8本地列表中的虚拟网络地址的排列顺序与所述播放顺序相对应;
播放单元,用于在检测到TS的播放指令后,按照所述修订单元修订后的所述M3U8本地列表中各虚拟网络地址的排列顺序,依次根据不同的所述虚拟网络地址播放相应的切片文件。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一获取单元,具体用于检测TS的下载指令,所述下载指令中包含待下载的TS标识;在检测到所述下载指令后,根据所述下载指令中包含的TS标识从服务器下载组成所述TS的M3U8文件。
本发明实施例提供的视频流下载方法及电子设备,获取组成传送流TS的M3U8文件;解析M3U8文件,以获取M3U8文件所对应的TS的所有切片文件的切片地址;根据获取到的切片地址分别下载每个切片文件,将下载得到的所有切片文件存储至本地。
与现有技术相比,在本方案中,电子设备在获取到组成TS的M3U8文件,并解析该M3U8文件,得到TS的所有切片文件的切片地址之后,可以根据得到的所有切片地址分别下载相应的切片文件,然后将下载得到的切片文件存储至本地。通过本方案,电子设备在检测到该TS的播放指令后,可以直接从本地读取相应的TS的所有切片文件,实现TS的正常播放。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例1
本发明实施例提供一种视频流下载方法,如图1所示,包括:
S101、电子设备获取组成传送流TS的M3U8文件。
示例性的,电子设备可以为具有视频数据流下载和播放功能的电子终端,如手机、ipad、个人电脑、智能电视机等电子终端中的任意一个。
其中,传输流(Transport Stream,TS)是MPEG-2定义的一种数据流,其目的是为了在有可能发生严重错误的环境下进行一个或多个节目的编码数据的传输和存储。这种错误表现为比特值错误或传输流分组的丢失。MPEG-2传输流由连续的传输流分组构成。这些传输流分组中携带有两类信息:经编码压缩过的原始流数据和节目特定信息(programspecific information,PSI)表。携带不同类型数据的传输流分组由不同的PID字段值标识。每个被指定的PID值都与特定的传输流分组相对应,而且是唯一对应。编码压缩过的原始数据流包括视频原始流、音频原始流以及专用数据流。
需要说明的是,M3U8文件实质上也是一种M3U文件,只是两者的编码格式不同。M3U8文件的编码格式是UTF-8格式,而M3U采用Latin-1字符集编码。M3U类似于音频或者视频文件的目录信息。
具体的,M3U文件不是音频文件或者视频文件,它是音频文件或者视频文件的列表文件,是纯文本文件。当下载得到M3U文件并打开M3U文件后,电子设备的播放器播放的并不是该M3U文件,而是根据该M3U文件的记录获取到相应的网络地址,然后下载对应的切片文件并进行播放。
示例性的,电子设备获取组成TS的M3U8文件的方法具体可以包括:电子设备检测TS的下载指令,下载指令中包含待下载的TS标识;电子设备在检测到下载指令后,根据下载指令中包含的TS标识从服务器下载组成TS的M3U8文件。
S102、电子设备解析M3U8文件,以获取M3U8文件所对应的TS的所有切片文件的切片地址。
其中,电子设备可以解析下载得到的M3U8文件,以获取M3U8文件所对应的TS的所有切片文件的切片地址和切片地址对应的切片文件的播放顺序。
其中,M3U8文件中包含M3U8文件所对应的TS的所有切片文件的切片地址,M3U8文件可以为一个M3U8列表文件,该M3U8列表文件中包含TS的所有切片文件的切片地址,并且,TS的所有切片文件的切片地址在该M3U8列表文件中按照切片文件的播放先后顺序进行排列。
S103、电子设备根据获取到的切片地址分别下载每个切片文件,将下载得到的每个切片文件存储至本地。
具体的,本发明实施例的方法还可以包括:在电子设备根据获取到的切片地址分别下载每个切片文件,将下载得到的所有切片文件存储至本地之后,获取所有切片文件的本地存储地址;生成包含所有切片文件的本地存储地址的M3U8本地列表,所述本地存储地址在所述M3U8本地列表中按照所述本地存储地址所对应的切片文件的播放顺序进行排列。
进一步可选的,在电子设备生成包含所有切片文件的本地存储地址的M3U8本地列表之后,本发明实施例的方法还可以包括:电子设备将所述M3U8本地列表中的所述本地存储地址的格式修订为虚拟网络地址的格式,所述虚拟网络地址在所述M3U8本地列表中按照所述虚拟网络地址对应的本地存储地址所对应的切片文件的播放顺序进行排列;在检测到TS的播放指令后,按照所述M3U8本地列表中所述虚拟网络地址的排列顺序,根据每个所述虚拟网络地址依次播放每个所述切片文件。
本发明实施例提供的视频流下载方法,可以获取组成传送流TS的M3U8文件;解析M3U8文件,以获取M3U8文件所对应的TS的所有切片文件的切片地址;根据获取到的切片地址分别下载每个切片文件,将下载得到的每个切片文件存储至本地。
与现有技术相比,在本方案中,电子设备在获取到组成TS的M3U8文件,并解析该M3U8文件,得到TS的所有切片文件的切片地址之后,可以根据得到的所有切片地址分别下载相应的切片文件,然后将下载得到的切片文件存储至本地。通过本方案,电子设备在检测到该TS的播放指令后,可以直接从本地读取相应的TS的所有切片文件,实现TS流的正常播放。
实施例2
本发明实施例提供一种视频流下载方法,如图2所示,包括:
S201、电子设备检测TS的下载指令,下载指令中包含待下载的TS标识。
其中,电子设备接收用户对视频推荐窗口中的任意一个视频文件的图标的触发,生成包含该视频文件所对应的TS标识的TS的下载指令。
S202、电子设备在检测到下载指令后,根据所述下载指令中包含的TS标识从服务器下载组成TS的M3U8文件。
具体的,电子设备在检测到下载指令后,可以发送包含待下载的TS标识的TS的下载请求消息至服务器,以使服务器获取TS标识对应的M3U8文件,并将获取到的M3U8文件下发至该电子设备。
S203、电子设备解析M3U8文件,以获取M3U8文件所对应的TS的所有切片文件的切片地址和切片地址对应的切片文件的播放顺序。
其中,M3U8文件中包含M3U8文件所对应的TS的所有切片文件的切片地址,M3U8文件可以为一个M3U8列表文件,该M3U8列表文件中包含TS的所有切片文件的切片地址,并且,TS的所有切片文件的切片地址在该M3U8列表文件中按照切片文件的播放先后顺序进行排列。
示例性的,切片地址对应的切片文件的播放顺序为播放所述TS时,所述TS中的切片文件的播放先后顺序。
S204、电子设备根据获取到的切片地址分别下载每个切片文件,将下载得到的每个切片文件存储至本地。
其中,电子设备可以获取到M3U8文件所对应的TS的所有切片文件的切片地址,而每一个切片地址都对应于一个网络地址信息。因此,电子设备可以根据每一个切片地址分别下载相应的切片文件,然后将下载得到的所有切片文件存储至本地。
进一步优选的,电子设备可以根据切片地址对应的切片文件的播放顺序,依次分别下载每个切片文件,然后再按照切片地址对应的切片文件的播放顺序分别将将下载得到的切片文件存储至本地。
S205、电子设备获取所有切片文件的本地存储地址。
其中,切片文件的本地存储地址即切片文件在电子设备的本地存储空间中的存储位置信息。
S206、电子设备按照播放顺序,生成包含所有切片文件的本地存储地址的M3U8本地列表,使得生成的M3U8本地列表中的本地存储地址的排列顺序与播放顺序相对应。
其中,电子设备可以将切片文件的本地存储地址按照本地存储地址所对应的切片文件的播放的先后顺序,依次排列在M3U8本地列表中,以便于电子设备在播放该TS时,可以按照本地存储地址在M3U8本地列表中排列的先后顺序,根据相应的本地存储地址读取切片文件,并通过连续播放TS中的所有切片文件,实现TS的完整流畅播放。
示例性的,在本发明实施例中,本地存储地址在所述M3U8本地列表中的排列顺序为播放所述TS时,各个本地存储地址所对应的切片文件的播放先后顺序。
需要说明的是,由于电子设备的播放器仅可以识别待播放视频流的网络地址,然后根据识别到的网络地址读取并播放相应的视频流,因此电子设备的播放器是无法识别到M3U8本地列表中的本地存储地址,进而无法根据M3U8本地列表中的本地存储地址读取并播放TS的。
因此,为了保证电子设备的播放器可以识别M3U8本地列表中的本地存储地址,本发明实施例的方法还包括S207:
S207、电子设备将M3U8本地列表中的本地存储地址的格式修订为虚拟网络地址的格式,并使得M3U8本地列表中的虚拟网络地址的排列顺序与播放顺序相对应。
其中,在本发明实施例中,虚拟网络地址在所述M3U8本地列表中的排列顺序为播放所述TS时,各个虚拟网络地址所对应的切片文件的播放先后顺序。
具体的,电子设备可以在电子设备中建立一个本地超文本转移协议(Hyper Text Transfer Protocol,HTTP)服务器Server,然后通过HTTPServer将M3U8本地列表中的本地存储地址的格式修订为虚拟网络地址的格式。其中,HTTP Server将M3U8本地列表中的本地存储地址的格式修订为虚拟网络地址的格式的具体方法可以参考现有技术中将本地存储地址的格式修订为虚拟网络地址的格式的相关描述,本发明实施例这里不再赘述。
其中,HTTP是一种详细规定了浏览器和服务器之间互相通信的规则,通过因特网传送文档的数据传送协议。
S208、电子设备在检测到TS的播放指令后,按照M3U8本地列表中各虚拟网络地址的排列顺序,依次根据不同的虚拟网络地址播放相应的切片文件。
其中,由于电子设备的播放器可以直接根据经过HTTP Server修订后本地存储地址(虚拟网络地址)从本地存储空间中读取相应的切片文件,因此,电子设备在检测到TS的播放指令后,可以按照M3U8本地列表中虚拟网络地址的排列顺序,根据每个虚拟网络地址依次播放每个切片文件。
需要说明的时,电子设备可以在检测到TS的播放指令后,执行S207:将M3U8本地列表中的本地存储地址的格式修订为虚拟网络地址的格式;也可以在电子设备生成包含所有切片文件的本地存储地址的M3U8本地列表之后(无论电子设备是否检测到TS的播放指令),执行S207:将M3U8本地列表中的本地存储地址的格式修订为虚拟网络地址的格式。本发明实施例中对于S207执行的先后顺序不做限制。
本发明实施例提供的视频流下载方法,可以获取组成传送流TS的M3U8文件;解析M3U8文件,以获取M3U8文件所对应的TS的所有切片文件的切片地址;根据获取到的切片地址分别下载每个切片文件,将下载得到的每个切片文件存储至本地。
与现有技术相比,在本方案中,电子设备在获取到组成TS的M3U8文件,并解析该M3U8文件,得到TS的所有切片文件的切片地址之后,可以根据得到的所有切片地址分别下载相应的切片文件,然后将下载得到的切片文件存储至本地。通过本方案,电子设备在检测到该TS的播放指令后,可以直接从本地读取相应的TS的所有切片文件,实现TS的正常播放。
实施例3
本发明实施例提供一种电子设备,如图3所示,包括:
第一获取单元31,用于获取组成传送流TS的M3U8文件。
解析单元32,用于解析所述第一获取单元获取到的所述M3U8文件,以获取所述M3U8文件所对应的TS的所有切片文件的切片地址。
下载单元33,用于根据所述解析单元获取到的切片地址分别下载每个切片文件,将下载得到的所述每个切片文件存储至本地。
进一步的,所述解析单元32,还用于解析所述M3U8文件,以获取所述M3U8文件所对应的TS的所有切片文件的切片地址和所述切片地址对应的切片文件的播放顺序。
其中,所述播放顺序为:播放所述TS时,所述TS中的切片文件的播放先后顺序。
进一步的,如图4所示,所述电子设备,还可以包括:第二获取单元34和生成单元35。
第二获取单元34,用于在所述下载单元33根据获取到的切片地址分别下载每个切片文件,将下载得到的所有切片文件存储至本地之后,获取所有切片文件的本地存储地址。
生成单元35,用于按照所述解析单元32获取到的所述播放顺序,生成包含所述第二获取单元34获取到的所有切片文件的本地存储地址的M3U8本地列表,使得生成的所述M3U8本地列表中的本地存储地址的排列顺序与所述播放顺序相对应。
进一步的,如图5所示,所述电子设备,还可以包括:修订单元36和播放单元37。
修订单元36,用于将所述生成单元35生成的所述M3U8本地列表中的所述本地存储地址的格式修订为虚拟网络地址的格式,并使得所述M3U8本地列表中的虚拟网络地址的排列顺序与所述播放顺序相对应。
播放单元37,用于在检测到TS的播放指令后,按照所述修订单元36修订后的所述M3U8本地列表中各虚拟网络地址的排列顺序,依次根据不同的所述虚拟网络地址播放相应的切片文件。
进一步的,所述第一获取单元31,具体用于检测TS的下载指令,所述下载指令中包含待下载的TS标识;在检测到所述下载指令后,根据所述下载指令中包含的TS标识从服务器下载组成所述TS的M3U8文件。
需要说明的是,本发明实施例提供的电子设备中部分功能模块的具体描述可以参考本发明方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的电子设备,可以获取传送流组成TS的M3U8文件;解析M3U8文件,以获取M3U8文件所对应的TS的所有切片文件的切片地址;根据获取到的切片地址分别下载每个切片文件,将下载得到的每个切片文件存储至本地。
与现有技术相比,在本方案中,电子设备在获取到组成TS的M3U8文件,并解析该M3U8文件,得到TS的所有切片文件的切片地址之后,可以根据得到的所有切片地址分别下载相应的切片文件,然后将下载得到的切片文件存储至本地。通过本方案,电子设备在检测到该TS的播放指令后,可以直接从本地读取相应的TS的所有切片文件,实现TS流的正常播放。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。