一种下载音视频数据的方法及装置与流程

文档序号:12378990阅读:293来源:国知局
一种下载音视频数据的方法及装置与流程

本发明涉及互联网应用技术领域,特别涉及一种下载音视频数据的方法及装置。



背景技术:

随着技术的发展,广播业务和移动业务开始渐渐融合,不同的多媒体内容和业务在不同的网络上传输,用户希望可以利用不同的终端设备(如智能手机、平板电脑等)在不同时刻接入任何网络时都能享受到这些服务。

相关技术中,采用Http流(Streaming)传输技术来实现多媒体数据的传输,即音频或视频输入装置将音/视频输入到服务器的媒体编码器中,媒体编码器将输入的音/视频进行编码,生成TS文件输出给流分段装置进行分段后,发送给分发装置,并生成该TS文件的索引文件,通过HTTP分发给客户端。然而,目前的方案仅支持单线程下载,亟需解决这一技术问题。



技术实现要素:

本发明提供一种下载音视频数据的方法及装置,用以实现快速、便捷地下载音视频数据的目的。

本发明提供一种下载音视频数据的方法,包括:

接收下载音视频数据的请求,获取待下载音视频数据的一个或多个TS文件的下载地址;

调起任务管理模块,由所述任务管理模块将所述一个或多个TS文件分配给至少一个线程,由所述至少一个线程根据所述一个或多个TS文件的下载地址下载所述一个或多个TS文件。

在本发明一实施例中,由所述任务管理模块将所述一个或多个TS文件分配给至少一个线程,由所述至少一个线程根据所述一个或多个TS文件的下载地址下载所述一个或多个TS文件,包括:

由所述任务管理模块获取所述一个或多个TS文件中的第一个TS文件的多个分段各自的下载地址,并创建用于记录下载完成事件的数组;

由所述任务管理模块将所述第一个TS文件的多个分段分配给至少一个线程,由所述至少一个线程根据所述第一个TS文件的多个分段各自的下载地址下载所述多个分段;每当所述至少一个线程中的任意线程下载完成相应的分段后,在创建的所述数组中进行记录;

当根据所述数组的记录确定所述第一个TS文件下载完成后,获取所述一个或多个TS文件中的第二个TS文件的多个分段各自的下载地址,并清空所述数组的记录;

由所述任务管理模块将所述第二个TS文件的多个分段分配给至少一个线程,由所述至少一个线程根据所述第二个TS文件的多个分段各自的下载地址下载所述多个分段;每当所述至少一个线程中的任意线程下载完成相应的分段后,在清空后的所述数组中进行记录,以此类推,直至下载完成所述一个或多个TS文件。

在本发明一实施例中,由所述任务管理模块将所述一个或多个TS文件分配给至少一个线程,由所述至少一个线程根据所述一个或多个TS文件的下载地址下载所述一个或多个TS文件,包括:

由所述任务管理模块获取所述一个或多个TS文件中的每个TS文件的多个分段各自的下载地址,并针对所述每个TS文件创建用于记录下载完成事件的数组;

由所述任务管理模块将所述每个TS文件分配给至少一个线程,由所述至少一个线程根据所述每个TS文件的多个分段各自的下载地址下载所述多个分段;每当所述至少一个线程中的任意线程下载完成相应的分段后,在创建的所述数组中进行记录;

当根据所述数组的记录确定所述每个TS文件下载完成后,将所述每个TS文件发送给客户端播放器,以播放所述每个TS文件。

在本发明一实施例中,所述请求中携带有所述待下载音视频数据的一个或多个TS文件的下载地址,获取待下载音视频数据的一个或多个TS文件的下载地址,包括:

从所述请求中解析出待下载音视频数据的一个或多个TS文件的下载地址。

在本发明一实施例中,获取待下载音视频数据的一个或多个TS文件的下载地址,包括:

获取预设的第一代理服务、第二代理服务以及待下载音视频数据的源服务器的地址;

利用所述第一代理服务和所述源服务器的地址,获取所述待下载音视频数据的m3u8文件,并由所述第一代理服务对所述m3u8文件进行解析,得到所述待下载音视频数据的一个或多个TS文件的下载地址。

本发明还提供一种下载音视频数据的装置,包括:

获取模块,用于接收下载音视频数据的请求,获取待下载音视频数据的一个或多个TS文件的下载地址;

下载模块,用于调起任务管理模块,由所述任务管理模块将所述一个或多个TS文件分配给至少一个线程,由所述至少一个线程根据所述一个或多个TS文件的下载地址下载所述一个或多个TS文件。

在本发明一实施例中,所述下载模块还用于:

由所述任务管理模块获取所述一个或多个TS文件中的第一个TS文件的多个分段各自的下载地址,并创建用于记录下载完成事件的数组;

由所述任务管理模块将所述第一个TS文件的多个分段分配给至少一个线程,由所述至少一个线程根据所述第一个TS文件的多个分段各自的下载地址下载所述多个分段;每当所述至少一个线程中的任意线程下载完成相应的分段后,在创建的所述数组中进行记录;

当根据所述数组的记录确定所述第一个TS文件下载完成后,获取所述一个或多个TS文件中的第二个TS文件的多个分段各自的下载地址,并清空所述数组的记录;

由所述任务管理模块将所述第二个TS文件的多个分段分配给至少一个线程,由所述至少一个线程根据所述第二个TS文件的多个分段各自的下载地址下载所述多个分段;每当所述至少一个线程中的任意线程下载完成相应的分段后,在清空后的所述数组中进行记录,以此类推,直至下载完成所述一个或多个TS文件。

在本发明一实施例中,所述下载模块还用于:

由所述任务管理模块获取所述一个或多个TS文件中的每个TS文件的多个分段各自的下载地址,并针对所述每个TS文件创建用于记录下载完成事件的数组;

由所述任务管理模块将所述每个TS文件分配给至少一个线程,由所述至少一个线程根据所述每个TS文件的多个分段各自的下载地址下载所述多个分段;每当所述至少一个线程中的任意线程下载完成相应的分段后,在创建的所述数组中进行记录;

当根据所述数组的记录确定所述每个TS文件下载完成后,将所述每个TS文件发送给客户端播放器,以播放所述每个TS文件。

在本发明一实施例中,所述请求中携带有所述待下载音视频数据的一个或多个TS文件的下载地址,所述获取模块还用于:

从所述请求中解析出待下载音视频数据的一个或多个TS文件的下载地址。

在本发明一实施例中,所述获取模块还用于:

获取预设的第一代理服务、第二代理服务以及待下载音视频数据的源服务器的地址;

利用所述第一代理服务和所述源服务器的地址,获取所述待下载音视频数据的m3u8文件,并由所述第一代理服务对所述m3u8文件进行解析,得到所述待下载音视频数据的一个或多个TS文件的下载地址。

在本发明实施例中,接收下载音视频数据的请求,获取待下载音视频数据的一个或多个TS文件的下载地址;随后,调起任务管理模块,由任务管理模块将一个或多个TS文件分配给至少一个线程,由至少一个线程根据一个或多个TS文件的下载地址下载一个或多个TS文件。由此可见,本发明实施例利用至少一个线程下载TS文件,实现快速、便捷地下载音视频数据的目的。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1所示为本发明一实施例中下载音视频数据的方法的流程图;以及

图2所示为本发明一实施例中下载音视频数据的装置的结构示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

如图1所示为本发明一实施例中下载音视频数据的方法的流程图,该方法可以包括以下步骤S11-S12。

步骤S11,接收下载音视频数据的请求,获取待下载音视频数据的一个或多个TS文件的下载地址。

在该步骤中,TS文件是指音视频内容文件,其格式为TS格式。如前文介绍,目前采用Http流(Streaming)传输技术来实现多媒体数据的传输,即音频或视频输入装置将音/视频输入到服务器的媒体编码器中,媒体编码器将输入的音/视频进行编码,生成TS文件输出给流分段装置进行分段后,发送给分发装置,并生成该TS文件的索引文件,通过HTTP分发给客户端。

当请求中携带有待下载音视频数据的一个或多个TS文件的下载地址,则从该请求中解析出待下载音视频数据的一个或多个TS文件的下载地址。

步骤S12,调起任务管理模块,由任务管理模块将一个或多个TS文件分配给至少一个线程,由至少一个线程根据一个或多个TS文件的下载地址下载一个或多个TS文件。

在本发明实施例中,接收下载音视频数据的请求,获取待下载音视频数据的一个或多个TS文件的下载地址;随后,调起任务管理模块,由任务管理模块将一个或多个TS文件分配给至少一个线程,由至少一个线程根据一个或多个TS文件的下载地址下载一个或多个TS文件。由此可见,本发明实施例利用至少一个线程下载TS文件,实现快速、便捷地下载音视频数据的目的。

HTTP live Streaming(HLS)是苹果公司实现的基于HTTP(Hypertext transfer protocol,超文本传输协议)的流媒体传输协议,可以实现流媒体的播放。HLS基于HTTP协议实现,HLS协议在服务器端将数据流存储为连续的、很短时长的媒体文件,传输内容包括两部分,一是m3u8文件(是苹果公司HLS协议里规定的一种描述文件,用文本方式对媒体文件进行描述,由一系列标签组成);二是MPEG-TS(Moving Pictures Experts Group/Motion Pictures Experts Group-Transport Stream,动态图像专家组-传输流)格式的媒体文件。m3u8文件是为这些MPEG-TS格式的媒体文件创建的索引文件。客户端不断的下载并播放这些媒体文件,就实现了流媒体的播放。

上文步骤S11中获取待下载音视频数据的一个或多个TS文件的下载地址,本发明实施例提供了一种可选的方案,包括以下步骤A1-A2。

步骤A1,获取预设的第一代理服务、第二代理服务以及待下载音视频数据的源服务器的地址。

在该步骤中,本发明实施例预先定义一个类(包含set方法),该类继承了音视频数据的播放器的函数(或者方法),并且该类中还增加了用于下载音视频数据的函数,所述用于下载音视频数据的函数中包括第一代理服务和第二代理服务;从该类中获取第一代理服务和第二代理服务。

步骤A2,利用第一代理服务和源服务器的地址,获取待下载音视频数据的m3u8文件,并由第一代理服务对m3u8文件进行解析,得到待下载音视频数据的一个或多个TS文件的下载地址。

在该步骤中,set方法将源服务器的地址发送给第一代理服务,set方法调用播放器的函数,发送获取待下载音视频数据的m3u8文件的请求消息,其中,该请求消息中携带有第一代理服务的地址,由第一代理服务根据接收到的请求消息和源服务器的地址,从源服务器处获取待下载音视频数据的m3u8文件。具体地,第一代理服务根据源服务器的地址,向源服务器发送获取待下载音视频数据的m3u8文件的请求;第一代理服务接收源服务器返回的待下载音视频数据的m3u8文件。第一代理服务从源服务器处获取待下载音视频数据的m3u8文件之后,对m3u8文件进行解析,得到待下载音视频数据的一个或多个TS文件的下载地址。

由于HTTP协议本质上属于文本传输协议,并不适合实时的流媒体传输。因此,为了便于实现直播回放(针对时移业务)和边下载边看的功能,通常将节目内容在物理或逻辑上分成许多的小分段。客户端根据节目索引(Media Presentation Description,MPD)信息每次下载媒体文件的一个或多个分段进行播放,其中,MPD信息中包含有媒体分段的索引等信息,然后对已下载的数据进行解码播放。客户端顺序下载并播放所述TS文件的分段文件。

例如,客户端可以在需要播放该TS文件时,先获取该TS文件的索引信息,还可以获取该TS文件的MPD(Media Presentation Description,节目索引)信息,其中,索引信息和MPD信息文件可以在同一个文件中,也可以位于不同文件中,并且,为了不改变原始TS文件的格式,可以将TS文件的描述信息(包括关键帧索引信息和/或MPD信息)存放于另一个文件中。记录TS文件的索引信息的文件称为TS文件的索引文件。

上文步骤S12中,由任务管理模块将一个或多个TS文件分配给至少一个线程,由至少一个线程根据一个或多个TS文件的下载地址下载一个或多个TS文件,本发明实施例提供了一种可选的方案,该方案包括以下步骤B1-B4。

步骤B1,由任务管理模块获取一个或多个TS文件中的第一个TS文件的多个分段各自的下载地址,并创建用于记录下载完成事件的数组。

步骤B2,由任务管理模块将第一个TS文件的多个分段分配给至少一个线程,由至少一个线程根据第一个TS文件的多个分段各自的下载地址下载多个分段;每当至少一个线程中的任意线程下载完成相应的分段后,在创建的数组中进行记录。

步骤B3,当根据数组的记录确定第一个TS文件下载完成后,获取一个或多个TS文件中的第二个TS文件的多个分段各自的下载地址,并清空数组的记录。

步骤B4,由任务管理模块将第二个TS文件的多个分段分配给至少一个线程,由至少一个线程根据第二个TS文件的多个分段各自的下载地址下载多个分段;每当至少一个线程中的任意线程下载完成相应的分段后,在清空后的数组中进行记录,以此类推,直至下载完成一个或多个TS文件。

在上述实施例中,客户端播放器(player)请求一次TS文件时,任务管理模块创建一个数组。任务管理模块获知所有线程下载结束,且TS文件下载完成后,player再请求一个TS文件,任务管理模块清空原数组,再重新计数。

上文步骤S12中,由任务管理模块将一个或多个TS文件分配给至少一个线程,由至少一个线程根据一个或多个TS文件的下载地址下载一个或多个TS文件,本发明实施例还提供了一种可选的方案,该方案包括以下步骤C1-C3。

步骤C1,由任务管理模块获取一个或多个TS文件中的每个TS文件的多个分段各自的下载地址,并针对每个TS文件创建用于记录下载完成事件的数组。

步骤C2,由任务管理模块将每个TS文件分配给至少一个线程,由至少一个线程根据每个TS文件的多个分段各自的下载地址下载多个分段;每当至少一个线程中的任意线程下载完成相应的分段后,在创建的数组中进行记录。

步骤C3,当根据数组的记录确定每个TS文件下载完成后,将每个TS文件发送给客户端播放器,以播放每个TS文件。

在上述实施例中,任务管理模块针对每个TS文件建立一个数组,可以有多个数组。当有线程空闲时,也就是说其余线程足够将当前TS文件下载完成,任务管理模块主动向服务器请求下一个TS文件,继续下载。例如,一个m3u8文件包括3个TS文件的下载地址,所以任务管理模块是可以知道下一个TS文件的下载地址的,可以主动发请求。当player发送请求时,任务管理模块不用再向服务器发送请求,而是直接给player反馈。或者,当有线程空闲时,任务管理模块就通知player完成,由player向服务器发送请求,触发任务管理模块继续分配任务。

需要说明的是,在实际应用中,上述所有可选实施方式可以采用结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。

对应于上述实施例中的下载音视频数据的方法,本发明还提供一种下载音视频数据的装置。如图2所示为本发明一实施例中下载音视频数据的装置的结构示意图,包括:

获取模块21,用于接收下载音视频数据的请求,获取待下载音视频数据的一个或多个TS文件的下载地址;

下载模块22,用于调起任务管理模块,由所述任务管理模块将所述一个或多个TS文件分配给至少一个线程,由所述至少一个线程根据所述一个或多个TS文件的下载地址下载所述一个或多个TS文件。

在本发明一实施例中,所述下载模块22还用于:

由所述任务管理模块获取所述一个或多个TS文件中的第一个TS文件的多个分段各自的下载地址,并创建用于记录下载完成事件的数组;

由所述任务管理模块将所述第一个TS文件的多个分段分配给至少一个线程,由所述至少一个线程根据所述第一个TS文件的多个分段各自的下载地址下载所述多个分段;每当所述至少一个线程中的任意线程下载完成相应的分段后,在创建的所述数组中进行记录;

当根据所述数组的记录确定所述第一个TS文件下载完成后,获取所述一个或多个TS文件中的第二个TS文件的多个分段各自的下载地址,并清空所述数组的记录;

由所述任务管理模块将所述第二个TS文件的多个分段分配给至少一个线程,由所述至少一个线程根据所述第二个TS文件的多个分段各自的下载地址下载所述多个分段;每当所述至少一个线程中的任意线程下载完成相应的分段后,在清空后的所述数组中进行记录,以此类推,直至下载完成所述一个或多个TS文件。

在本发明一实施例中,所述下载模块22还用于:

由所述任务管理模块获取所述一个或多个TS文件中的每个TS文件的多个分段各自的下载地址,并针对所述每个TS文件创建用于记录下载完成事件的数组;

由所述任务管理模块将所述每个TS文件分配给至少一个线程,由所述至少一个线程根据所述每个TS文件的多个分段各自的下载地址下载所述多个分段;每当所述至少一个线程中的任意线程下载完成相应的分段后,在创建的所述数组中进行记录;

当根据所述数组的记录确定所述每个TS文件下载完成后,将所述每个TS文件发送给客户端播放器,以播放所述每个TS文件。

在本发明一实施例中,所述请求中携带有所述待下载音视频数据的一个或多个TS文件的下载地址,所述获取模块21还用于:

从所述请求中解析出待下载音视频数据的一个或多个TS文件的下载地址。

在本发明一实施例中,所述获取模块21还用于:

获取预设的第一代理服务、第二代理服务以及待下载音视频数据的源服务器的地址;

利用所述第一代理服务和所述源服务器的地址,获取所述待下载音视频数据的m3u8文件,并由所述第一代理服务对所述m3u8文件进行解析,得到所述待下载音视频数据的一个或多个TS文件的下载地址。

本发明实施例的上述装置:接收下载音视频数据的请求,获取待下载音视频数据的一个或多个TS文件的下载地址;随后,调起任务管理模块,由任务管理模块将一个或多个TS文件分配给至少一个线程,由至少一个线程根据一个或多个TS文件的下载地址下载一个或多个TS文件。由此可见,本发明实施例利用至少一个线程下载TS文件,实现快速、便捷地下载音视频数据的目的。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1