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

文档序号:12376863阅读:253来源:国知局
一种播放音视频数据的方法及装置与流程

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



背景技术:

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

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



技术实现要素:

本发明提供一种播放音视频数据的方法及装置,用以实现提高音视频数据播放效率的目的。

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

监控音视频数据的播放事件,当监控到所述播放事件时,获取预设的第一代理服务、第二代理服务以及待播放音视频数据的源服务器的地址;

利用所述第一代理服务和所述源服务器的地址,获取所述待播放音视频数据的m3u8文件,并由所述第一代理服务对所述m3u8文件进行解析,得到所述待播放音视频数据的至少一个TS文件的源地址;

利用所述第二代理服务和所述至少一个TS文件的源地址,下载所述待播放音视频数据的至少一个TS文件,并播放。

在本发明一实施例中,所述播放事件包括下列任意之一:

启动智能终端播放音视频数据、切换节目频道。

在本发明一实施例中,获取预设的第一代理服务、第二代理服务,包括:

预先定义一个类,该类继承了音视频数据的播放器的函数,并且该类中还增加了用于下载音视频数据的函数,所述用于下载音视频数据的函数中包括所述第一代理服务和所述第二代理服务;

从该类中获取所述第一代理服务和所述第二代理服务。

在本发明一实施例中,利用所述第一代理服务和所述源服务器的地址,获取所述待播放音视频数据的m3u8文件,包括:

将所述源服务器的地址发送给所述第一代理服务;

调用所述播放器的函数,发送获取所述待播放音视频数据的m3u8文件的请求消息,其中,所述请求消息中携带有所述第一代理服务的地址,由所述第一代理服务根据接收到的所述请求消息和所述源服务器的地址,从所述源服务器处获取所述待播放音视频数据的m3u8文件。

在本发明一实施例中,所述第一代理服务根据接收到的所述请求消息和所述源服务器的地址,从所述源服务器处获取所述待播放音视频数据的m3u8文件,包括:

所述第一代理服务根据所述源服务器的地址,向所述源服务器发送获取所述待播放音视频数据的m3u8文件的请求;

所述第一代理服务接收所述源服务器返回的所述待播放音视频数据的m3u8文件。

在本发明一实施例中,所述方法还包括:

所述第一代理服务将所述至少一个TS文件的源地址修改为所述第二代理服务的地址,得到修改后的m3u8文件;

所述第一代理服务将所述至少一个TS文件的源地址发送给所述第二代理服务,并将所述修改后的m3u8文件发送给所述播放器的函数,以由所述播放器的函数根据所述修改后的m3u8文件向所述第二代理服务发送获取所述至少一个TS文件的请求。

在本发明一实施例中,利用所述第二代理服务和所述至少一个TS文件的源地址,下载所述待播放音视频数据的至少一个TS文件,包括:

调用所述播放器的函数,解析所述修改后的m3u8文件,得到所述至少一个TS文件的修改后的地址;

根据所述至少一个TS文件的修改后的地址向所述第二代理服务发送获取所述至少一个TS文件的请求;

所述第二代理服务接收到获取所述至少一个TS文件的请求,根据所述至少一个TS文件的源地址,下载所述待播放音视频数据的至少一个TS文件。

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

第一获取模块,用于监控音视频数据的播放事件,当监控到所述播放事件时,获取预设的第一代理服务、第二代理服务以及待播放音视频数据的源服务器的地址;

第二获取模块,用于利用所述第一代理服务和所述源服务器的地址,获取所述待播放音视频数据的m3u8文件,并由所述第一代理服务对所述m3u8文件进行解析,得到所述待播放音视频数据的至少一个TS文件的源地址;

播放模块,用于利用所述第二代理服务和所述至少一个TS文件的源地址,下载所述待播放音视频数据的至少一个TS文件,并播放。

在本发明一实施例中,所述播放事件包括下列任意之一:

启动智能终端播放音视频数据、切换节目频道。

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

预先定义一个类,该类继承了音视频数据的播放器的函数,并且该类中还增加了用于下载音视频数据的函数,所述用于下载音视频数据的函数中包括所述第一代理服务和所述第二代理服务;

从该类中获取所述第一代理服务和所述第二代理服务。

在本发明实施例中,监控音视频数据的播放事件,当监控到播放事件时,获取预设的第一代理服务、第二代理服务以及待播放音视频数据的源服务器的地址;随后,利用第一代理服务和源服务器的地址,获取待播放音视频数据的m3u8文件,并由第一代理服务对m3u8文件进行解析,得到待播放音视频数据的至少一个TS文件的源地址;之后,利用第二代理服务和至少一个TS文件的源地址,下载待播放音视频数据的至少一个TS文件,并播放。由此可见,本发明实施例利用第一代理服务和第二代理服务实现多线程下载音视频数据,从而实现提高音视频数据播放效率的目的。

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

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

附图说明

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

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

图2所示为本发明另一实施例中播放音视频数据的方法的流程图;以及

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

具体实施方式

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

如图1所示为本发明一实施例中播放音视频数据的方法的流程图,该方法可以应用在智能终端,该方法可以包括以下步骤S11-S13。

步骤S11,监控音视频数据的播放事件,当监控到播放事件时,获取预设的第一代理服务、第二代理服务以及待播放音视频数据的源服务器的地址。

在该步骤中,播放事件可以包括启动智能终端播放音视频数据、切换节目频道,等等,本发明不限于此。

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

步骤S13,利用第二代理服务和至少一个TS文件的源地址,下载待播放音视频数据的至少一个TS文件,并播放。

在本发明实施例中,监控音视频数据的播放事件,当监控到播放事件时,获取预设的第一代理服务、第二代理服务以及待播放音视频数据的源服务器的地址;随后,利用第一代理服务和源服务器的地址,获取待播放音视频数据的m3u8文件,并由第一代理服务对m3u8文件进行解析,得到待播放音视频数据的至少一个TS文件的源地址;之后,利用第二代理服务和至少一个TS文件的源地址,下载待播放音视频数据的至少一个TS文件,并播放。由此可见,本发明实施例利用第一代理服务和第二代理服务实现多线程下载音视频数据,从而实现提高音视频数据播放效率的目的。

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

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格式的媒体文件创建的索引文件。客户端不断的下载并播放这些媒体文件,就实现了流媒体的播放。

上文步骤S12中利用第一代理服务和源服务器的地址,获取待播放音视频数据的m3u8文件,可选地实施为以下步骤A1-A2。

步骤A1,将源服务器的地址发送给第一代理服务。

在该步骤中,当播放事件发生时,启动set方法,set方法获取预设的第一代理服务、第二代理服务以及待播放音视频数据的源服务器的地址,set方法将源服务器的地址发送给第一代理服务。

步骤A2,调用播放器的函数,发送获取待播放音视频数据的m3u8文件的请求消息,其中,该请求消息中携带有第一代理服务的地址,由第一代理服务根据接收到的请求消息和源服务器的地址,从源服务器处获取待播放音视频数据的m3u8文件。

在该步骤中,第一代理服务根据源服务器的地址,向源服务器发送获取待播放音视频数据的m3u8文件的请求;第一代理服务接收源服务器返回的待播放音视频数据的m3u8文件。

在本发明的可选实施例中,第一代理服务从源服务器处获取待播放音视频数据的m3u8文件之后,对m3u8文件进行解析,得到待播放音视频数据的至少一个TS文件的源地址。随后,第一代理服务将至少一个TS文件的源地址修改为第二代理服务的地址,得到修改后的m3u8文件;进而,第一代理服务将至少一个TS文件的源地址发送给第二代理服务,并将修改后的m3u8文件发送给播放器的函数,以由播放器的函数根据修改后的m3u8文件向第二代理服务发送获取至少一个TS文件的请求。

从而,在步骤S13中利用第二代理服务和至少一个TS文件的源地址,下载待播放音视频数据的至少一个TS文件时,可以包括以下步骤B1-B3。

步骤B1,调用播放器的函数,解析修改后的m3u8文件,得到至少一个TS文件的修改后的地址。

步骤B2,根据至少一个TS文件的修改后的地址向第二代理服务发送获取至少一个TS文件的请求。

在该步骤中,由于至少一个TS文件的修改后的地址为第二代理服务的地址,因而可以向第二代理服务发送获取至少一个TS文件的请求。

步骤B3,第二代理服务接收到获取至少一个TS文件的请求,根据至少一个TS文件的源地址,下载待播放音视频数据的至少一个TS文件。

以上介绍了图1所示的实施例中各环节的多种实现方式,下面通过一具体实施例来详细介绍本发明的播放音视频数据的方法的实现过程。

如图2所示为本发明另一实施例中播放音视频数据的方法的流程图,该方法可以应用在智能终端,该方法可以包括以下步骤S21-S28。

步骤S21,监控音视频数据的播放事件。

在该步骤中,播放事件可以包括启动智能终端播放音视频数据、切换节目频道,等等,本发明不限于此。

步骤S22,当监控到播放事件时,启动set方法,获取预设的第一代理服务、第二代理服务以及待播放音视频数据的源服务器的地址。

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

步骤S23,set方法将源服务器的地址发送给第一代理服务。

步骤S24,set方法调用播放器的函数,发送获取待播放音视频数据的m3u8文件的请求消息,其中,该请求消息中携带有第一代理服务的地址,由第一代理服务根据接收到的请求消息和源服务器的地址,从源服务器处获取待播放音视频数据的m3u8文件。

在该步骤中,第一代理服务根据源服务器的地址,向源服务器发送获取待播放音视频数据的m3u8文件的请求;第一代理服务接收源服务器返回的待播放音视频数据的m3u8文件。

步骤S25,第一代理服务对m3u8文件进行解析,得到待播放音视频数据的至少一个TS文件的源地址,将至少一个TS文件的源地址修改为第二代理服务的地址,得到修改后的m3u8文件。

步骤S26,第一代理服务将至少一个TS文件的源地址发送给第二代理服务,并将修改后的m3u8文件发送给播放器的函数,以由播放器的函数根据修改后的m3u8文件向第二代理服务发送获取至少一个TS文件的请求。

步骤S27,set方法调用播放器的函数,解析修改后的m3u8文件,得到至少一个TS文件的修改后的地址,根据至少一个TS文件的修改后的地址向第二代理服务发送获取至少一个TS文件的请求。

在该步骤中,由于至少一个TS文件的修改后的地址为第二代理服务的地址,因而可以向第二代理服务发送获取至少一个TS文件的请求。

步骤S28,第二代理服务接收到获取至少一个TS文件的请求,根据至少一个TS文件的源地址,下载待播放音视频数据的至少一个TS文件,并播放。

本发明实施例利用第一代理服务和第二代理服务实现多线程下载音视频数据,从而实现提高音视频数据播放效率的目的。

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

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

第一获取模块31,用于监控音视频数据的播放事件,当监控到所述播放事件时,获取预设的第一代理服务、第二代理服务以及待播放音视频数据的源服务器的地址;

第二获取模块32,用于利用所述第一代理服务和所述源服务器的地址,获取所述待播放音视频数据的m3u8文件,并由所述第一代理服务对所述m3u8文件进行解析,得到所述待播放音视频数据的至少一个TS文件的源地址;

播放模块33,用于利用所述第二代理服务和所述至少一个TS文件的源地址,下载所述待播放音视频数据的至少一个TS文件,并播放。

在本发明一实施例中,所述播放事件包括下列任意之一:

启动智能终端播放音视频数据、切换节目频道。

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

预先定义一个类,该类继承了音视频数据的播放器的函数,并且该类中还增加了用于下载音视频数据的函数,所述用于下载音视频数据的函数中包括所述第一代理服务和所述第二代理服务;

从该类中获取所述第一代理服务和所述第二代理服务。

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

将所述源服务器的地址发送给所述第一代理服务;

调用所述播放器的函数,发送获取所述待播放音视频数据的m3u8文件的请求消息,其中,所述请求消息中携带有所述第一代理服务的地址,由所述第一代理服务根据接收到的所述请求消息和所述源服务器的地址,从所述源服务器处获取所述待播放音视频数据的m3u8文件。

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

所述第一代理服务根据所述源服务器的地址,向所述源服务器发送获取所述待播放音视频数据的m3u8文件的请求;

所述第一代理服务接收所述源服务器返回的所述待播放音视频数据的m3u8文件。

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

所述第一代理服务将所述至少一个TS文件的源地址修改为所述第二代理服务的地址,得到修改后的m3u8文件;

所述第一代理服务将所述至少一个TS文件的源地址发送给所述第二代理服务,并将所述修改后的m3u8文件发送给所述播放器的函数,以由所述播放器的函数根据所述修改后的m3u8文件向所述第二代理服务发送获取所述至少一个TS文件的请求。

在本发明一实施例中,所述播放模块33还用于:

调用所述播放器的函数,解析所述修改后的m3u8文件,得到所述至少一个TS文件的修改后的地址;

根据所述至少一个TS文件的修改后的地址向所述第二代理服务发送获取所述至少一个TS文件的请求;

所述第二代理服务接收到获取所述至少一个TS文件的请求,根据所述至少一个TS文件的源地址,下载所述待播放音视频数据的至少一个TS文件。

本发明实施例的上述装置:监控音视频数据的播放事件,当监控到播放事件时,获取预设的第一代理服务、第二代理服务以及待播放音视频数据的源服务器的地址;随后,利用第一代理服务和源服务器的地址,获取待播放音视频数据的m3u8文件,并由第一代理服务对m3u8文件进行解析,得到待播放音视频数据的至少一个TS文件的源地址;之后,利用第二代理服务和至少一个TS文件的源地址,下载待播放音视频数据的至少一个TS文件,并播放。由此可见,本发明实施例利用第一代理服务和第二代理服务实现多线程下载音视频数据,从而实现提高音视频数据播放效率的目的。

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

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

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

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

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

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