一种在浏览器内播放媒体流的方法

文档序号:9693693阅读:2316来源:国知局
一种在浏览器内播放媒体流的方法
【专利说明】一种在浏览器内播放媒体流的方法发明领域
[0001]本发明主要涉及媒体流和下载媒体内容到在客户端上运行的浏览器应用。它进一步涉及在逐段基础上下载的媒体内容的播放。
发明背景
[0002]当用户访问包含媒体,例如音频、视频或两者兼有的网页时,在浏览器应用程序的浏览器窗口中的视频显示或音频播放器被激活。媒体本身在服务器上或者互联网上内容分发网络上的某处或者任何其它网络作为一个媒体项是可获得的。为了在媒体完全下载之前允许用户开始观看或收听,媒体可以从服务器中以多个段的形式被请求并且每个段可独立的从服务器上下载。只要第一个媒体段完成下载浏览器应用程序就可以开始呈现或播放媒体项目。在这样做的时候,下一段的媒体被下载。
[0003]这种下载方式允许在媒体项目完全下载之前呈现一个媒体项目。这导致媒体项目下载的开始和它的实际重放之间有一个小的延迟。此外,在媒体项目结束之前停止或暂停时,在下载也被停止,因此,只有所需要的视频数据被下载节约网络通信量和下载配额。
[0004]除了媒体段,服务器上也有有关媒体段在服务器上的位置和它们各自的特定时间的可用信息。该信息可以被包括在一个单一的或通常被称为清单文件的多个文件中。在呈现媒体之前,浏览器应用程序首先检索该清单文件,并选择媒体段下载。
[0005]由苹果公司开发的HTTP实时流媒体(HLS)是一种协议,描述这样一种方式下载媒体项目,即,渐进式下载。在支持HLS的客户端应用,客户端检索含有链接到一个视频项目的所有的视频段的一个或多个清单文件。每个视频项目可能有数个版本,每个版本涉及一个不同的质量和/或分辨率。当下载媒体段时,客户端可以选择何种质量或者分辨率的媒体块应基于存在于清单文件之一中的列表进行编码。由客户端选择的质量和/或分辨率的选择可取决于几个因素,如屏幕分辨率、带宽限制或用户输入和/或偏好。在HLS中,视频块是根据MPEG-TS协议被编码和作为独立的文件下载的。因此,视频产品是MPEG-TS编码的视频片段的继承。播放视频期间,客户端会下载一个或一个以上的下一个片段,因此,支持渐进式下载。
[0006]HLS更普遍称为HTTP的自适应流(HAS)协议,因为它允许流媒体内容的自适应方式,即质量和分辨率可以在流中进行调整。对于片段和清单的下载,HTTP GET请求被使用。其它HAS协议,例如微软平滑流(MSS)、HTTP动态流(HDS)由Adobe和动态自适应流通过HTTP由3GPP标准(DASH)定义。
[0007]HAS协议的一个缺点是,它们都不是被HTML5标准原生的支持。HTML5标准支持单一的媒体元素的重放而无需指定的视频格式。这样一来,HTML5的实现兼容的浏览器提供标准不支持通过链接到一个清单文件或媒体片段播放的HAS媒体项目,例如MPEG-TS视频片段。因此,要播放HAS视频项目,需要浏览器插件或HAS功能作为一个额外的特征必须被实现。这样的插件或额外的功能对于每一个浏览器应用程序需要被特别开发。通常只有几个浏览器应用程序具有这样的浏览器插件或功能可用于特定的HAS协议。
[0008]因此,本发明的目的是提供一种克服了上述缺点的用于在浏览器应用程序中播放有多个媒体片段的媒体项目的方法。
发明概述
[0009]这是通过根据权利要求1所述方法实现。
[0010]—种内容分发网络或CDN的范围可以从一个单一的文件服务器到位于在因特网上的多个数据中心的一个大的分布式系统的服务器。这些服务器可接着进一步包括缓存服务器和代理服务器以保证从⑶N到浏览器应用程序快速、低延迟输送。该媒体段驻留在单个服务器上因此没有必要的。媒体段是媒体的一部分。各部分覆盖媒体的一段时间间隔。这样的部分可以是,例如,是一个MPEG-TS视频段或MP4音频或视频文件。浏览器应用程序中进行播放的媒体可以包括音频、视频或两者建有,并且因此可以在浏览器应用程序的音频或视频播放器中播放。由于方法是在浏览器应用程序中执行的,第一和第二媒体文件可以暂时驻留,高速缓存或随机存取(RAM)的存储器使得它们只对浏览器应用程序本身是可用的,保证快速和低延迟访问。
[0011]这是一个优点,即音频和/或视频数据有效载荷被直接用在第一和第二文件的结构,因此,不需要对在浏览器应用程序中的有效载荷数据转码、解码或编码。作为这样的结果是,该方法可以在一个浏览器的脚本语言来实现,如JavaScript这是HTML协议的一部分。由于低加工的需要,这些文件的结构是实时的并且文件因此可以以流传输物质被播放,即播放第一媒体文件时下载媒体段用于第二媒体文件。即使下载的段不被浏览器应用程序支持,所构造的文件是可播放的,因为用于编码在CDN的一边的有效载荷数据的编解码器是由浏览器应用程序所支持的。
[0012]因此,第一和第二文件是在浏览器应用程序中播放,并且文件的结构完成,使得所获得的文件根据一个浏览器协议,如如HTML或HTML5协议,可由浏览器的媒体播放器播放。HTML5中,例如,第一和第二文件的播放,可以通过环绕一个链接到第一或第二个文件用〈video〉标签来实现。它因此一个优点是没有插件,例如,Si Iver light、Flash或QuickTime,需要执行媒体的解码和可视化。
[0013]根据一个实施例,方法还包括一个流媒体会话,与⑶N—起启动。这是通过从⑶N检索一个清单文件来实现的。清单文件包含媒体片段信息关于媒体片段是可用的作为文件在CDN上。媒体段的第一和第二子集,然后被选择使用这段信息。
[0014]优选的,片段信息包括内容分发网络上各个所述片段的位置的有关信息。获得第一和第二子集,于是包括通过发送请求到内容分发网络与片段的位置作为参数,检索所述第一和第二子集的每个所述片段。
[0015]通过解析清单文件,并基于清单文件中的信息选择片段,支持自适应流。这允许基于客户端运行的浏览器应用程序的质量和带宽要求选择片段。即使浏览器所使用的协议,例如HTML或HTML5,不支持自适应流,该方法允许由浏览器支持的脚本语言例如JavaScript实现在浏览器程序内这样的支持。
[0016]有利地,流会话是HTTP自适应流会话并且请求是HTTP GET请求。
[0017]这具有优势,协议如HLS、MSS、DASH或HDS可以在浏览器应用程序中被支持,而无需使用任何插件,因为该方法是通过浏览器应用程序本身执行,例如通过JavaScript代码。此夕卜,通过使用HTTP协议,能够避免防火墙或代理阻塞检索片段,在一般情况下,它们允许HTTP流量通过。这对其他非基于HTTP的协议并不总是这样,例如实时流协议(RTSP)。
[0018]根据实施例,清单文件包括关于片段的可用版本的编解码信息。此编解码信息特定用于每个版本对应编解码器用于编解码音频和/或视频片段的有效载荷数据。然后,该方法进一步包括基于编解码信息选择一种版本的片段使得相应的编解码器被浏览器程序支持。
[0019]换句话说,该清单文件中列出几个版本的段及相应的媒体,由此每个版本提供媒体和片段由不同的编解码器进行编码。由于浏览器应用程序可能不支持所有可能的编解码器在浏览器应用程序的媒体播放器内重放媒体,这允许挑选一个由浏览器支持的编解码器编解码的片段版本。
[0020]根据一个实施例,媒体片段包括索引信息,其中,包括位置信息,关于媒体片段内音频和/或视频有效载荷数据的位置信息。然后,该方法进一步包括以下步骤:
-通过使用索引信息从媒体片段中提取视频和/或音频有效载荷数据。
-存储视频和/或音频有效载荷数据。
-使用所存储的视频和/或音频有效载荷数据用于所述构建步骤。
[0021]这允许检索来自一个片段的视频和/或有效载荷数据,即使数据在片段内没有按照应当的被命令,根据所得到的文件的格式,使它由播放浏览器应用程序是可播放的。这也允许跳过产生的文件中的不被需要的额外数据,例如字幕或不同的音频流。索引信息进一步还可以包括关于媒体内音频和/或视频有效数据载荷的时间间隔的同步信息。所以每一块有效载荷数据可由关于如何使数据与其它有效载荷数据及时对齐的定时信息伴随。该信息可以被重新格式化,以由第一和第二文件形成的兼容的形式。
[0022]根据一个实施例,播放的步骤可以进一步包括:
-在浏览器应用程序中的一个第一播放器播放第一媒体文件;
-在播放第一媒体文件的同时在播放器浏览应用程序的一个第二播放器中下载第二媒体文件;
-第一个媒体文件结束时,开始播放第二个
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1