Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, DEVICE AND SYSTEM FOR PLAYING STREAMED MEDIA
Document Type and Number:
WIPO Patent Application WO/2014/015738
Kind Code:
A1
Abstract:
A method, device and system for playing streamed media. The method includes: acquiring a play request for playing a streamed media file from a user; according to the play request, downloading an M3U8 file corresponding to the streamed media from a server, wherein the M3U8 file contains URL information about a media file; parsing the M3U8 file to acquire one or more pieces of URL information in the M3U8 file; and according to each piece of acquired URL information, invoking a player to play a media file corresponding to each piece of URL information. The present invention can solve the problem in the prior art that a non-Apple user client cannot play an M3U8 file, thereby realizing the support of a non-Apple-series smartphone on an Apple HTTP Live Streaming playing solution.

Inventors:
LIANG JIE (CN)
YU YONGFU (CN)
HE XIAOPENG (CN)
ZHU SHUNYAN (CN)
LAO YONGCHAO (CN)
Application Number:
PCT/CN2013/078213
Publication Date:
January 30, 2014
Filing Date:
June 27, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UC MOBILE LTD (CN)
International Classes:
H04N21/643
Domestic Patent References:
WO2010108053A12010-09-23
Foreign References:
CN102118428A2011-07-06
CN102843614A2012-12-26
CN102291399A2011-12-21
Attorney, Agent or Firm:
CHINABLE IP (CN)
北京弘权知识产权代理事务所(普通合伙) (CN)
Download PDF:
Claims:
权 利 要 求

1、 一种播放流媒体的方法, 其特征在于, 所述方法用于在基于 Android系 统的客户端上对索引文件为 M3U8文件的流媒体进行播放, 所述方法包括: 所述客户端的浏览器获取流媒体的播放请求;

所述客户端的浏览器根据所述播放请求解析所述流媒体对应的 M3U8文件, 获取所述 M3U8文件中的一条或多条 URL信息,所 URL信息为组成所述流媒体 的媒体文件的 URL信息;

所述客户端的浏览器根据获取到的所述 URL信息, 通过调用播放器播放每 条 URL信息所对应的媒体文件。

2、 根据权利要求 1所述的方法, 其特征在于, 所述客户端的浏览器根据所 述播放请求解析所述流媒体对应的 M3U8文件之前, 所述方法还包括:

所述客户端的浏览器根据所述播放请求从服务器下载所述 M3U8 文件; 或 者,

所述客户端的浏览器判断是否存在与所述流媒体对应的 M3U8文件,如果不 存在所述 M3U8文件, 根据所述播放请求从服务器下载所述 M3U8文件, 如果 存在所述 M3U8 文件, 触发执行所述根据所述播放请求解析所述流媒体对应的 M3U8文件。 3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述客户端的浏览器根 据获取到的所述 URL信息,通过调用播放器播放每条 URL信息所对应的媒体文 件, 包括:

所述客户端的浏览器从所述服务器上获取与所述每条 URL信息所对应的媒 体文件;

所述客户端的浏览器调用播放器播放所述媒体文件。

4、 根据权利要求 1至 3任意一项所述的方法, 其特征在于, 所述客户端的 浏览器获取流媒体的播放请求之前, 所述方法还包括:

所述客户端的浏览器获取网页的访问请求;

所述客户端的浏览器根据所述访问请求解析所述网页的 HTML, 当解析到 video标签或 audio标签时, 获取所述 video标签指向的链接地址或所述 audio标 签指向的链接地址;

所述客户端的浏览器判断与所述链接地址所对应的第一文件是否是 M3U8 文件;

如果判断结果为是, 则所述客户端的浏览器标记所述第一文件为 M3U8 文 件, 如果判断结果为不是, 则所述客户端的浏览器直接播放所述第一文件。

5、 根据权利要求 4所述的方法, 其特征在于, 所述客户端的浏览器判断与 所述链接地址所对应的第一文件是否是 M3U8文件, 包括:

所述客户端的浏览器根据所述链接地址的后缀判断所述链接地址的 MIME 类型是否是 M3U8;

如果所述 MIME类型是 M3U8,则所述客户端的浏览器确定所述第一文件是 M3U8文件, 如果所述 MIME类型不是 M3U8, 则所述客户端的浏览器确定所述 第一文件不是 M3U8文件。 6、 一种播放流媒体的装置, 其特征在于, 所述装置用于在基于 Android系 统的客户端上对索引文件为 M3U8文件的流媒体进行播放, 所述装置包括: 第一获取模块, 用于获取流媒体的播放请求;

第一解析模块,用于根据所述第一获取模块获取的所述播放请求解析所述流 媒体对应的 M3U8文件, 获取所述 M3U8文件中的一条或多条 URL信息, 所 URL信息为组成所述流媒体的媒体文件的 URL信息;

第一播放模块, 用于根据所述第一解析模块获取到的所述 URL信息, 通过 调用播放器播放每条 URL信息所对应的媒体文件。

7、 根据权利要求 6所述的装置, 其特征在于, 所述装置还包括: 第一下载模块,用于根据所述第一获取模块获取到的播放请求从服务器下载 所述 M3U8文件;

或者,

第一判断模块, 用于所述第一获取模块获取到所述播放请求后, 判断是否存 在与所述流媒体对应的 M3U8文件;

第二下载模块, 用于当所述第一判断模块的判断结果为不存在所述 M3U8 文件,根据所述播放请求从服务器下载所述 M3U8文件,并触发所述第一解析模 块执行解析所述流媒体对应的 M3U8文件; 所述第一解析模块, 具体用于当所述第一判断模块的判断结果为存在所述 M3U8文件, 直接执行解析所述流媒体对应的 M3U8文件。

8、 根据权利要求 6或 7所述的装置, 其特征在于, 所述第一播放模块包括: 第二获取模块,用于从所述服务器上获取与所述第一解析模块获取到的每条

URL信息所对应的媒体文件;

第二播放模块, 用于调用播放器播放所述第二获取模块获取的媒体文件。

9、 根据权利要求 6至 8任意一项所述的装置, 其特征在于, 所述装置还包 括:

第三获取模块, 用于获取网页的访问请求;

第二解析模块,用于根据所述第三获取模块获取的访问请求解析所述网页的

HTML, 当解析到 video标签或 audio标签时, 获取所述 video标签指向的链接地 址或所述 audio标签指向的链接地址;

第二判断模块, 用于判断与所述链接地址所对应的第一文件是否是 M3U8 文件;

第一标记模块, 用于在所述第二判断模块的判断结果为是时, 标记所述第一 文件为 M3U8文件;

第三播放模块, 用于在所述第二判断模块的判断结果为不是时, 直接播放所 述第一文件。

10、 根据权利要求 9所述的装置, 其特征在于, 所述第二判断模块包括: 第三判断模块, 用于根据所述链接地址的后缀判断所述链接地址的 MIME 类型是否是 M3U8,如果所述 MIME类型是 M3U8,则确定所述第一文件是 M3U8 文件, 如果所述 MIME类型不是 M3U8, 则确定所述第一文件不是 M3U8文件。

11、 一种播放流媒体的系统, 其特征在于, 所述系统用于在基于 Android系 统的客户端上对索引文件为 M3U8文件的流媒体进行播放,所系统包括:浏览器 和播放器, 其中,

所述浏览器, 用于根据流媒体的播放请求解析所述流媒体对应的 M3U8 文 件, 获取所述 M3U8文件中的一条或多条 URL信息, 根据获取到的所述 URL 信息调用所述播放器, 所 URL信息为组成所述流媒体的媒体文件的 URL信息; 所述播放器, 用于播放每条 URL信息所对应的媒体文件。

12、 一种具有处理器可执行的程序代码的计算机可读介质, 其特征在于, 在 基于 Android系统的客户端上对索引文件为 M3U8文件的流媒体进行播放时,所 述程序代码使得处理器执行下述步骤:

获取流媒体的播放请求;

根据所述播放请求解析所述流媒体对应的 M3U8文件, 获取所述 M3U8文 件中的一条或多条 URL信息,所 URL信息为组成所述流媒体的媒体文件的 URL 信息;

根据获取到的所述 URL信息,通过调用播放器播放每条 URL信息所对应的 媒体文件。

Description:
播放流媒体的方法、 装置及系统

本申请要求于 2012年 7月 27日提交中国专利局、 申请号为 201210265561.5、发 明名称为 "播放流媒体的方法、 装置及系统"的中国专利申请的优先权, 其全部内容 通过引用结合在本申请中。 技术领域 本发明涉及移动通信技术领域, 具体而言, 涉及一种播放流媒体的方法、装置及 系统。 背景技术 在超文本标记语言 HTML5标准越来越普及的情况下, 不少音视频内容提供商开 始在移动平台上面使用 HTML5的 video/audio标准来提供自己的内容。其中不少厂 使用的是苹果公司提供的 HTTP Live Streaming方案, 然而, 苹果公司提供的 HTTP Live Streaming方案只能够在 ipad/iphone平台进行播放, 即使别的平台的用户为访问 设定网页而把自己浏览器的用户代理设置为 iphone/ipad,仍然会由于格式不支持而导 致播放失败。

图 1是现有技术的 Apple HTTP Live Streaming媒体播放方案的流程图。 如图 1 所示, Apple HTTP Live Streaming媒体播放方案包括如下步骤:

( 1 ) 通过音视频输入设备输入音视频, 音视频设备可能是视频采集卡或者其他 的录入设备。

(2) 通过服务器中的媒体编码器执行音频视频的压 缩, 然后通过流分段器将压 缩后的音频视频分割成小的文件片段 (即 .ts文件)。

(3 ) 在分发服务器上存放索引文件 (即 Index file) 以及. ts文件, 索引文件及. ts 文件的存放位置由 URL指向, 外界不关心具体的绝对路径。

(4) 用户通过客户端获取音频视频文件, 客户端可以是手机或者个人计算机等 终端设备。

由上可见,分发的时候,采用的是" Index file"加上一组. ts文件的方式。其中 Index file就是 <video>或者 <audio>标签的 src属性或者 source标签指向的文件, 在 Apple HTTP Live Streaming方案中索引文件的后缀名通常为" .m3u8"。 根据 Apple官方的文 档描述, .ts 文件存放的编码信息是 MPEG-2 格式的, 而有一些网站 (如: http://www.qiyi.com) 在 ts流内存放的是 AVC (h264编码)。 从理论上来讲, 在多数 Android手机的自带媒体播放器中是可以播放 MPEG-2以及 AVC格式的文件的, 但 是由于 Android系统自带的媒体播放器无法正确解析. m3u8文件的列表格式, 所以用 户在使用 Android手机播放 Apple HTTP Live Streaming方案的视频时会出现播放失败 的情况。

针对相关技术中非 Apple用户客户端不能解析 Apple HTTP Live Streaming媒体播 放方案中 M3U8文件的列表格式, 因而不能享受播放服务的相关技术问题, 尚未提出 有效的解决方案。 发明内容 针对相关技术的非 Apple用户客户端由于不能解析 Apple HTTP Live Streaming媒 体播放方案中 M3U8文件的列表格式, 因而不能播放 M3U8文件的问题, 本发明的 主要目的在于提供一种播放流媒体的方法、 装置及系统以解决上述问题。

为了实现上述目的, 根据本发明的一个方面, 提供了一种播放流媒体的方法, 该 方法包括: 获取用户用于播放流媒体文件的播放请求; 根据播放请求从服务器下载与 流媒体对应的 M3U8文件,其中, M3U8文件包含有媒体文件的 URL信息;解析 M3U8 文件,获取 M3U8文件中的一条或多条 URL信息;根据获取到的各个 URL信息调用 播放器播放每条 URL信息所对应的媒体文件。

进一步地, 从服务器上获取与各个 URL信息所对应的媒体文件; 播放媒体文件。 进一步地, 获取用户访问网页的访问请求; 根据访问请求解析网页的 HTML, 获 取 video标签或 audio标签及 video标签或 audio标签指向的链接地址;判断与链接地 址所对应的第一文件是否是 M3U8 文件, 其中, 如果是, 则标记第一文件为 M3U8 文件, 以供用户播放; 如果不是, 则用户直接播放第一文件。

进一步地, 根据链接地址的后缀判断 URL的 MIME类型是否是 M3U8, 其中, 如果 MIME类型是 M3U8, 则确定第一文件是 M3U8文件; 如果 MIME类型不是 M3U8, 则确定第一文件不是 M3U8文件。

进一步地, 判断客户端是否存在 M3U8 文件, 其中, 如果客户端不存在 M3U8 文件, 则从服务器下载 M3U8文件; 如果客户端存在 M3U8文件, 则进入解析 M3U8 文件的步骤。

为了实现上述目的, 根据本发明的一个方面, 提供了一种播放流媒体的装置, 该 装置包括: 第一获取模块, 用于获取用户用于播放流媒体文件的播放请求 ; 第一下载 模块, 用于根据播放请求从服务器下载与流媒体对应 的 M3U8文件; 第一解析模块, 用于解析 M3U8文件, 获取 M3U8文件中的一条或多条 URL信息; 第一播放模块, 用于根据获取到的各个 URL信息播放每条 URL信息所对应的媒体文件。

进一步地, 所述第一播放模块包括: 第二获取模块, 用于从服务器上获取与各个

URL信息所对应的媒体文件; 第二播放模块, 用于播放媒体文件。

进一步地,所述装置还包括:第三获取模块, 用于获取用户访问网页的访问请求; 第二解析模块, 用于根据访问请求解析网页的 HTML, 以获取 video标签或 audio标 签及 video标签或 audio标签指向的链接地址; 第二判断模块, 用于判断与链接地址 所对应的第一文件是否是 M3U8文件;第一标记模块,用于在所述第二判 模块判断 出第一文件是 M3U8文件时, 标记第一文件为 M3U8文件, 以供用户播放; 第三播 放模块,用于在所述第二判断模块判断出第一 文件不是 M3U8文件时,直接播放第一 文件。

进一步地, 所述第二判断模块包括: 第三判断模块, 用于根据链接地址的后缀判 断 URL的 MIME类型是否是 M3U8, 其中, 如果 MIME类型是 M3U8, 则确定第一 文件是 M3U8文件, 如果 MIME类型不是 M3U8, 则确定第一文件不是 M3U8文件。

根据本发明的另一个方面,提供了一种播放流 媒体的系统,该系统包括:浏览器, 用于根据用户播放流媒体的播放请求从服务器 下载与流媒体对应的 M3U8文件,然后 解析 M3U8文件, 获取 M3U8文件中的一条或多条 URL信息, 再根据获取到的各个 URL信息调用播放器播放每条 URL信息所对应的媒体文件。

通过本发明, 非 Apple用户客户端通过从服务器上下载 M3U8文件, 并对下载到 的 M3U8文件进行解析, 从而可以获取到需要播放的媒体文件在该 M3U8文件中保 存的 URL信息, 然后根据获取到的 URL信息来调用播放器播放每个 URL信息所对 应的媒体文件, 解决了现有技术中非 Apple用户客户端不能解析 Apple HTTP Live Streaming媒体播放方案中 M3U8文件的列表格式, 因而不能支持 Apple HTTP Live Streaming 播放方案的问题, 从而实现了非 Apple 用户客户端对 Apple HTTP Live Streaming播放方案的支持。 附图说明

构成本申请的一部分的说明书附图用来提供对 本发明的进一步理解,本发明的示 意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图中: 图 1是现有技术的 Apple HTTP Live Streaming媒体播放方案的流程图; 图 2是本发明的实施例的播放流媒体的方法的流 图;

图 3是图 2所示的实施例的播放流媒体的方法的业务流 图;

图 4是图 3所示的实施例的播放流媒体的方法的业务需 图;

图 5是本发明的实施例的播放流媒体的装置的结 示意图;

图 6是图 5所示的实施例的播放流媒体的装置的结构示 图。 具体实施方式 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中的特征可以相 互组合。 下面将参考附图并结合实施例来详细说明本发 明。

图 2是本发明的实施例的播放流媒体的方法的流 图。如图 2所示本发明的播放 流媒体的方法包括如下步骤:

步骤 S101 , 获取用户用于播放流媒体的播放请求。

步骤 S103,根据播放请求从服务器下载与流媒体对 的 M3U8文件,其中, M3U8 文件包含有媒体文件的 URL信息。

步骤 S105, 解析 M3U8文件, 获取 M3U8文件中的一条或多条 URL信息。 步骤 S107, 根据获取到的各个 URL信息调用播放器播放每条 URL信息所对应 的媒体文件。

优选地,在本申请的上述实施例中,根据获取 到的各个 URL信息来播放每条 URL 信息所对应的媒体文件的步骤还包括: 从服务器上获取与各个媒体文件的 URL信息 所对应的媒体文件; 然后播放媒体文件。

在本发明的播放流媒体的方法实施例中,非 Apple用户客户端根据播放流媒体的 请求, 通过从服务器上下载与流媒体对应的 M3U8文件, 并对下载到的 M3U8文件 进行解析, 从而可以获取到需要播放的媒体文件在该 M3U8文件中保存的链接地址, 然后通过媒体文件的链接地址 (即 URL信息) 来访问服务器, 在获取到该 M3U8文 件中保存的链接地址之后,可以通过下载该链 接地址对应的媒体文件并交由系统媒体 播放器来播放, 或者从服务器上获取并播放该 URL信息对应的媒体文件, 解决了现 有技术中非 Apple用户客户端不能解析 Apple HTTP Live Streaming媒体播放方案中 M3U8文件的列表格式, 因而不能支持 Apple HTTP Live Streaming播放方案的问题, 从而实现了非 Apple系列智能手机对 Apple HTTP Live Streaming播放方案的支持。

根据本申请的上述实施例,在获取用户用于播 放 M3U8文件的播放请求之前,该 方法还可以包括: 获取用户访问网页的访问请求; 根据访问请求解析网页的 HTML, 获取 video标签或 audio标签及 video标签或 audio标签指向的链接地址; 然后, 判断 与链接地址所对应的第一文件是否是 M3U8文件, 其中, 如果是, 则标记第一文件为 M3U8文件, 以供用户播放; 如果不是, 则用户直接播放该文件。

在本发明的上述实施例中,判断与链接地址所 对应的第一文件是否是 M3U8文件 的步骤还可以包括: 根据链接地址的后缀判断 URL的多媒体文件格式 MIME的类型 是否是 M3U8, 其中, 如果 MIME类型是 M3U8, 则确定第一文件是 M3U8文件; 如 果 MIME类型不是 M3U8, 则确定第一文件不是 M3U8文件。 具体地, 通过 video标 签或 audio标签的 SCR属性判断 MIME类型是不是 M3U8格式的文件。优选地, MIME 类型通过对 URL的后缀查表得到, 通常把后缀 m3u或者 m3u8的文件当作 M3U8格 式的文件。

根据本发明的播放流媒体的方法, 在根据播放请求从服务器下载 M3U8 文件之 前, 该方法还可以包括: 判断客户端是否存在 M3U8文件, 其中, 如果客户端不存在 M3U8文件, 则从服务器下载 M3U8文件; 如果客户端存在 M3U8文件, 则进入解析 M3U8文件的流程。

优选地, 根据访问请求解析网页的 HTML, 以获取 video标签或 audio标签的步 骤还包括: 如果没有获取到 video标签或 audio标签, 则当前页面不包含音视频文件, 退出播放功能。

根据本申请的上述实施例, 播放流媒体的方法包括如下步骤:

( 1 ) 用户通过客户端中的手机浏览器访问一个支持 播放 Apple HTTP Live

Streaming格式的网址。 其中, 在访问某些网站之前, 需要把浏览器伪装成 iphone的 浏览器 (即设置手机浏览器的 user-agent为 iphone浏览器的 user-agent字符串)。

(2)从访问的页面发现视频。 具体地, 在浏览器内对访问页面的 HTML进行解 析, 发现 video标签或 audio标签及其对应的 URL信息, 则确定该页面存在音视频文 件; 如果未发现 video或 audio标签, 则该页面没有音视频文件, 客户端退出播放功 能。

(3 ) 根据上述步骤中发现的音视频文件的 URL来判定该 URL指向的文件是否 是 Apple HTTP Live Streaming的内容源, 判定成立则进入 (4) 中 Apple HTTP Live Streaming 的处理流程; 判定不成立, 则进入普通媒体文件的播放流程。 优选地, 根 据上述 URL 中文件名的后缀判定该 URL 指向的文件是否是 Apple HTTP Live Streaming的内容源。 (4) 标记播放该音视频需要使用 Apple HTTP Live Streaming的播放方式。 特别 地, 在 HTML的 video标签或 audio标签内嵌入 M3U8文件的情况下, 直到 video或 audio的播放动作被触发, 才进入播放流程。

( 5 )访问页面上的 video对象或 audio对象, 当播放动作被触发以后, 先判断是 否已经下载和保存了 M3U8文件,若没有下载过 M3U8文件,则下载并且解析出 M3U8 文件对应的播放列表, 并将 M3U8文件保存, 若已经下载和解析了 M3U8文件, 则 进行当前媒体片段的播放。其中, 每次播放下一个媒体文件的时候都从索引文件 (即 M3U8文件) 获取媒体文件的 URL, 保存下载到的 M3U8文件就可以避免每次播放 媒体文件都重新下载 M3U8文件。 优选地, 媒体文件可以是 TS文件。

图 3是图 2所示的实施例的播放流媒体的方法的业务流 图。具体的, 如图 3所 示, 本申请在客户端与服务器之间实现的播放流媒 体的业务流程实施例包括如下步 骤:

首先, 客户端获取用户发送的播放流媒体的请求。 具体地, 该步骤可以通过以下 方法实现: 用户通过点击浏览器中的界面向浏览器发送播 放请求, 浏览器接收到用户 输入的播放请求, 向服务器发送该播放请求。

然后,客户端判断是否已经下载了与流媒体对 应的 M3U8文件,如果没有下载则 从服务器下载 M3U8文件, 并且解析出媒体文件的 URL信息, 如果已经下载, 则进 入下一步流程。

接着, 通过客户端上的浏览器来获取所解析出的当前 播放的媒体文件的 URL信 息, 并根据该媒体文件的 URL信息从服务器查询得到对应的媒体文件。

最后,通过客户端上的浏览器来调用媒体播放 器,从而播放服务器上的媒体文件。 客户端对 M3U8文件循环进行上述步骤的操作, 以完成对整个页面 M3U8文件 的下载、 解析, 用于供用户播放。

图 4是图 3所示的实施例的播放流媒体的方法的业务需 图。具体的, 如图 4所 示,在本申请的客户端上所实现的播放流媒体 的业务流程实现方法中, 浏览器对象和 播放对象的调用顺序包括如下步骤:

( 1 ) 用户客户端调用播放函数, 向服务器发送播放流媒体的请求。 具体操作方 法如上述对图 3描述中的客户端获取用户发送的播放请求的 骤。

(2) 浏览器判断是否需要下载与流媒体对应的 M3U8文件, 其中, 如果没有下 载该 M3U8文件, 则需要下载 M3U8文件, 如果客户端已经存储有该 M3U8文件, 则不需要重复下载。 具体地, 在执行上述步骤 S103之前, 浏览器判断是否需要下载 M3U8文件,根据判断结果对该 M3U8文件进行相应的处理,即如果没有下载该 M3U8 文件, 则下载 M3U8文件, 如果客户端已经存储有该 M3U8文件, 则无需重复下载。

(3 ) 解析下载到的 M3U8文件。

(4) 通过上步骤中的解析过程, 从而获取媒体文件的 URL信息, 该 URL信息 对应可以实现播放的媒体文件。 具体地, 通过步骤(3 )和 (4)可以实现图 2所示的 步骤 S105。

( 5 ) 浏览器调用播放器, 播放当前 URL信息对应的媒体文件。

具体地, 根据本申请的上述实施例, 用户使用 Android系统自带的浏览器, 切换 到 iPhone 的 User- Agent (即在浏览器里设置浏览器标识为 iPhone ) , 然后访问 http://www.qiyi.com, 会出现视频播放失败情况。 在使用本申请的播放流媒体的方法 的浏览器时进行同样的 User- Agent设置, 然后访问 http://www.qiyi.com, 会出现播放 界面, 播放页面提示用户在加载视频, 然后开始播放。 其中, 客户端浏览器的播放界 面优选是全屏的播放界面。

之所以有这样的区别,是因为 Android系统自带的浏览器会得到一个 M3U8文件 (即索引文件) 的链接地址, 并且尝试把这个文件当作媒体文件来进行播放 , 由于 Android系统自带的浏览器无法解析 M3U8文件, 就会播放失败。 然而, 采用本申请 的播放流媒体的方法的浏览器,会判断访问到 的音视频文件是否是 M3U8文件。具体 地,客户端可以根据该链接地址(即 URL信息)中含有 m3u8字样判断该文件是 M3U8 格式文件, 客户端可以根据该链接地址的 video/audio 标签传递的 codec 为 application/x-mpeg判断该音视频文件是 M3U8文件。

如果判定上述链接地址是 M3U8格式,根据本申请的上述实施例,客户端 浏览 器会对前述链接地址指向的 M3U8文件进行下载及解析,从而可以根据解析 M3U8 中的媒体文件的 URL信息(链接地址信息)调用播放器播放 URL信息对应的媒体文 件。 具体地, 在 M3U8文件中, 每一行都是一个单位, 这些单位可以是 URL, 也可 以是 "#EXTINF"或者 "#EXTM3U", 其中, "#EXTM3U"是文件头, 表明这个文 件类型, "#EXTINF"用于表示紧跟着一行有效 URL所指向媒体文件的播放时长。对 于 "#EXTINF"或者 "#EXTM3U"这两个参数, 客户端在解析的时候不关心, 在判 断文件头有效以后, 就循环地解析出非" # "号开始的行, 当作媒体文件的 URL存放 起来, 以供用户播放。

需要说明的是,在附图的流程图示出的步骤可 以在诸如一组计算机可执行指令的 计算机系统中执行, 并且, 虽然在流程图中示出了逻辑顺序, 但是在某些情况下, 可 以以不同于此处的顺序执行所示出或描述的步 骤。

图 5是本发明的实施例的播放流媒体的装置的结 示意图。图 6是图 5所示的实 施例的播放流媒体的装置的结构示意图。如图 5和图 6所示,本申请的播放流媒体的 装置包括: 第一获取模块 10、 第一下载模块 30、 第一解析模块 50和第一播放模块 70。 具体地, 第一获取模块 10, 用于获取用户用于播放流媒体文件的播放请求 ; 第 一下载模块 30, 用于根据播放请求从服务器下载与流媒体对应 的 M3U8文件; 第一 解析模块 50, 用于解析 M3U8文件, 以获取 M3U8文件中的一条或多条 URL信息; 第一播放模块 70, 用于根据获取到的各个 URL信息来播放每条 URL信息所对应的 媒体文件。

其中, 第一获取模块 10、 第一下载模块 30以及第一解析模块 50可以优选安装 在客户端的浏览器中, 第一播放模块 70可以优选安装在播放器中。

优选地, 在本申请的上述实施例中, 第一播放模块 70还可以包括: 第二获取模 块 701,用于从服务器上获取与各个 URL信息所对应的媒体文件;第二播放模块 703, 用于播放媒体文件。

根据本申请的播放流媒体的装置, 通过采用第一获取模块 10、第一下载模块 30、 第一解析模块 50和第一播放模块 70, 使得非 Apple用户客户端根据播放流媒体的请 求从服务器上下载与流媒体对应的 M3U8文件, 并对下载到的 M3U8文件进行解析, 从而可以获取到需要播放的媒体文件在该 M3U8文件中保存的链接地址,然后通过媒 体文件的链接地址 (即 URL信息) 来访问服务器, 在获取到该 M3U8文件中保存的 链接地址之后,可以通过下载该链接地址对应 的媒体文件并交由系统媒体播放器来播 放, 或者从服务器上获取并播放该 URL信息对应的媒体文件, 解决了现有技术中非 Apple用户客户端由于不能解析 Apple HTTP Live Streaming媒体播放方案中 M3U8文 件的列表格式, 因而不能支持 Apple HTTP Live Streaming播放方案的问题,从而实现 了非 Apple系列智能手机对 Apple HTTP Live Streaming播放方案的支持。

在本发明的播放流媒体的装置实施例中, 该装置还可以包括: 第一判断模块, 用 于判断客户端是否存在 M3U8文件; 第二下载模块, 用于下载 M3U8文件。 其中, 如果客户端不存在 M3U8文件, 则直接进入第一解析模块 50, 进入解析 M3U8文件 的流程。

在本申请的上述实施例中, 该装置还可以包括: 第三获取模块, 用于获取用户访 问网页的访问请求; 第二解析模块, 用于根据访问请求解析网页的 HTML, 以获取 video标签或 audio标签及 video标签或 audio标签指向的链接地址; 第二判断模块, 用于判断与链接地址所对应的第一文件是否是 M3U8文件;第一标记模块,用于在所 述第二判断模块判断出第一文件是 M3U8文件时, 标记第一文件为 M3U8文件, 以 供用户播放; 第三播放模块, 用于在所述第二判断模块判断出第一文件不是 M3U8 文件时, 直接播放第一文件。

在本发明的播放流媒体的装置实施例中, 该装置还可以包括: 第一判断模块, 用 于判断客户端是否存在 M3U8文件; 第二下载模块, 用于下载 M3U8文件。 其中, 如果客户端不存在 M3U8文件, 则直接进入解析模块, 进入解析 M3U8文件的流程。

优选地, 第二判断模块还可以包括: 第三判断模块, 用于根据链接地址的后缀判 断 URL的 MIME类型是否是 M3U8, 其中, 如果 MIME类型是 M3U8, 则确定第一 文件是 M3U8文件, 如果 MIME类型不是 M3U8, 则确定第一文件不是 M3U8文件。

根据本申请的播放流媒体的系统实施例, 该系统包括: 浏览器, 用于根据用户播 放流媒体的播放请求从服务器下载与流媒体对 应的 M3U8文件, 然后解析 M3U8文 件以获取 M3U8文件中的一条或多条 URL信息,再根据获取到的各个 URL信息来调 用播放器以播放每条 URL信息所对应的媒体文件。

根据本申请提供的播放流媒体的系统,通过安 装在系统上的浏览器根据用户播放 流媒体的播放请求从服务器下载与流媒体对应 的 M3U8文件, 然后解析 M3U8文件 以获取 M3U8文件中的一条或多条 URL信息,再根据获取到的各个 URL信息来调用 播放器以播放每条 URL信息所对应的媒体文件, 解决了现有技术中非 Apple用户客 户端不能解析 Apple HTTP Live Streaming媒体播放方案中 M3U8文件的列表格式, 因而不能支持 Apple HTTP Live Streaming播放方案的问题,从而实现了非 Apple系列 智能手机对 Apple HTTP Live Streaming播放方案的支持。

从以上的描述中, 可以看出, 本发明上述的实施例实现了如下技术效果: 通过对 M3U8文件的下载和解析, 把得到的真实的媒体文件的 URL信息交由系统媒体播放 器来播放, 解决了现有技术中非 Apple用户客户端不能解析 M3U8文件的列表格式, 不能播放 M3U8文件的问题, 从而实现了非 Apple系列智能手机对 Apple HTTP Live Streaming 播放方案的支持。 在非 Apple 系列手机的内置媒体播放器不支持 Apple HTTP Live Streaming格式(M3U8文件) 的前提下, 应用本申请的方法及装置, 把识 别 M3U8文件的过程放到浏览器中处理, 通过在客户端下载并解析 M3U8文件, 然 后把解析 M3U8文件后获取到的媒体文件的链接地址传递 媒体播放器,根据媒体文 件的链接地址来播放媒体文件, 进而实现了在非 Apple平台支持 Apple HTTP Live Streaming格式的流媒体播放的功能。 另外,本领域的技术人员可以清楚地了解到本 发明实施例中的技术可借助软件加 必需的通用硬件平台的方式来实现。基于这样 的理解,本发明实施例中的技术方案本 质上或者说对现有技术做出贡献的部分可以以 软件产品的形式体现出来,该计算机软 件产品可以存储在存储介质中, 如 ROM/RAM、磁碟、光盘等, 包括若干指令用以使 得一台计算机设备(可以是个人计算机, 服务器, 或者网络设备等)执行本发明各个 实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描 述,各个实施例之间相同相似的部 分互相参见即可, 每个实施例重点说明的都是与其他实施例的不 同之处。尤其, 对于 系统实施例而言, 由于其基本相似于方法实施例, 所以描述的比较简单, 相关之处参 见方法实施例的部分说明即可。

以上所述的本发明实施方式, 并不构成对本发明保护范围的限定。任何在本 发明 的精神和原则之内所作的修改、等同替换和改 进等,均应包含在本发明的保护范围之 内。