从服务器到客户的流式传输的制作方法

文档序号:7609844阅读:210来源:国知局
专利名称:从服务器到客户的流式传输的制作方法
背景技术
本发明涉及安排从服务器到客户流式传输或下载可流式传输的文件。
流式传输系指用于在连续的基础上播放同步媒体流、如音频和视频流同时在数据网络上将那些流传送到客户的应用的能力。多媒体流式系统由流式服务器和经连接媒介(可能是网络连接)访问服务器的许多客户(播放器)构成。这些客户从服务器检索预先存储的或实况多媒体内容,并在下载内容(contenta)的同时基本上实时地回放它。整个多媒体呈示可以称为电影并可以在逻辑上将其划分成轨道。每个轨道表示单个媒体类型(例如,视频帧)的定时序列。在每个轨道内,每个定时单元称为媒体样本。
可以基于服务器端技术将流式系统划分成两个类别。在本文中这两个类别称为常规流式传输和渐进下载。在常规流式传输中,服务器采用应用级部件来控制传送的流的比特率。目的是要以大约等于其回放速率的速率传送流。一些服务器可以即时地调整多媒体文件的内容,以满足可用网络带宽和避免网络拥塞。可以使用可靠的或不可靠的传输协议和网络。如果使用的是不可靠的传输协议,常规流式服务器通常将驻留在多媒体文件中的信息封装成网络传输分组。这可以根据特定协议和格式来执行,通常使用RTP/UDP(实时传输协议/用户数据报协议)协议和RTP有效负载格式。
渐进下载,还可以称为HTTP(超文本传输协议)流式传输、HTTP快速开始或伪流式传输,它在可靠的传输协议的顶部工作。服务器可以不采用任何应用级部件来控制传送的流的比特率。相反,服务器可以依赖于由底部可靠的传输协议所提供的流控制机制。可靠的传输协议通常是面向连接的。例如,TCP(传输控制协议)用于利用基于反馈的算法来控制传送的比特率。由此,应用不是必须将任何数据封装成传输分组,但是多媒体文件同样在伪流式系统中传送。因此,客户接收在服务器端驻留的文件的精确副本。这使文件可以播放多次,而无需再次流式传输数据。
当创建内容以用于多媒体流式传输时,使用特定压缩方法压缩每个媒体样本,由此得到符合特定格式的比特流。除了媒体压缩格式外,还必须有容器格式,它是一种除其他功能外将压缩的媒体样本彼此关联的文件格式。此外,文件格式可以包括例如有关给文件编索引的信息、如何将媒体封装成传输分组的提示以及如何使媒体轨道同步的数据。媒体比特流还可以称为媒体数据,而多媒体容器文件中的所有附加信息可以称为元数据。如果可以同样在从服务器到客户的数据管道的顶部流式传输它的话,则该文件格式称为流式格式。由此,流式格式将媒体轨道交织到单个文件,以及媒体数据按解码或回放次序出现。当底部网络服务不为每种媒体类型提供单独的传输信道时,必须使用流式格式。可流式传输的文件格式包含可以在流式传输数据时被流式服务器容易地利用的信息。例如,该格式可以使以不同网络带宽为目的的多个版本的媒体比特流能够被存储,以及流式服务器可以根据客户与服务器之间的连接决定要使用哪种比特率。可流式传输的格式很少像这样流式传输,因此可以将它们交织或它们可以包含至单独的媒体轨道的链路。
QuickTime文件格式、ISO基本媒体文件格式、源于MPEG(运动图片专家组)的MP4文件格式、源于3GPP(第三代合作伙伴项目)的3GP文件格式允许创建伪可流式传输的文件。为了使伪流式传输工作,必须以专门方式创建这些可流式传输的文件。首先,在文件内定义媒体数据的特征的元数据必须位于文件的开始位置。必须在会话开始时将至少一些元数据、例如文件级元数据提供到客户,以使客户能够接收媒体数据。其次,媒体数据必须以交织方式存在于文件中。这意味着媒体数据必须以时间线的次序存储在文件中,例如作为音频数据、视频数据、音频数据、视频数据等。第三,必须在元数据中将文件专门标记为伪可流式传输的。
发明概述本发明的目的在于提供一种使至少一些上述局限得以避免的流式安排。本发明的目的通过一种由在独立权利要求中所公开的来表征的方法、系统、客户、远程通信设备、服务器和计算机程序产品来实现。在从属权利要求中阐述本发明的一些优选实施例。
根据本发明的一方面,将文件的元数据的至少一部分传送到客户,传送的元数据至少包括媒体数据范围在文件中的位置。基于接收到的元数据确定期望的媒体数据部分在文件中的位置。向服务器发送请求,告知服务器有关要传递到客户的媒体数据范围。然后将所请求的媒体数据范围传送到客户。
客户与服务器之间的会话系指客户与服务器之间用于传递可流式传输的文件的任何逻辑关系或连接。术语文件系指可能来自多个媒体源的包括元数据和媒体数据的任何数据集合。可以例如基于用户命令或呈示次序信息确定期望的媒体数据。
本发明的多个方面给出尤其在文件格式和流式安排方面的灵活性,并给出尤其适于多媒体内容流式传输的优点。当客户知道数据范围在文件中的位置时,对于客户,基本上请求文件的任何部分而与是否已流式传输或下载媒体数据范围的先前部分无关是可能的。例如,用户可以使音频静音,在此情况中客户可以安排为仅请求文件的视频媒体数据。如果由客户的用户执行前向或反向搜索,则客户因此可只是跳至稍后或先前的字节范围。本发明还使客户能够以有效的方式使用可用的存储器,以使检索的媒体数据无需作为文件存储。可以以播放并废弃的方式来利用它,即因为无需保留已经播放的媒体数据部分。就文件形成而言,本发明使媒体数据能够在文件中采取任何次序,因为客户能够按期望的次序请求单独的媒体数据范围。
附图简要说明在下文中,现在将通过优选实施例并参考参考附图来更详细地描述本发明,图中

图1是示出多媒体内容流式传输的传输系统的框图;图2示出根据本发明一个实施例的客户的功能;以及图3示出根据本发明一个实施例的服务器的功能。
发明的详细说明图1示出多媒体内容流式传输的传输系统。该系统包括编码器ENC,还可以称为编辑器,通常从多个媒体源MS准备媒体内容数据以传输;在网络NW上传送编码的多媒体文件的流式服务器SS;以及多个接收这些文件的客户C。这些内容可以来自记录实况呈示的记录装置,例如摄像机,或可以在之前将它们存储在存储设备上,如录像带、CD、DVD、硬盘等。这些内容可以是例如视频、音频、静态图像并且它们还可以包括数据文件。将来自编码器ENC的多媒体文件传送到服务器SS。服务器SS能够为多个客户C服务,并通过使用单播或组播路径将多媒体文件从服务器数据库或立即从编码器ENC传送多媒体文件来响应客户请求。网络NW可以是例如移动通信网络、局域网、广播网络或多个按网关分隔的不同网络。应该注意虽然图1中内容创建功能(由ENC实现)和流式功能(由SS实现)是分离的,但是可以通过同一个设备或多于两个设备来实现。
如下实施例可以应用于实现流式传输或下载可流式传输的文件的任何无线和/或有线远程通信系统。底部传输层可以利用电路交换或分组交换数据连接。此类通信网络的一个例子是由3GPP正在开发的第三代移动通信系统。在如下实施例中,假定将HTTP协议应用于至少传递可流式传输的文件的部分。除了HTTP/TCP外,还可以使用其他传输层协议。例如,FTP(文件传输协议)或WAP(无线应用协议)系列的WTP(无线事务处理协议)可以提供这些传输功能。
可流式传输的文件中承载的元数据可以按如下分类。通常,一部分元数据的范围是整个文件。此类元数据可以包括使用的媒体编解码器的标识或正确的显示矩形大小的指示。这种元数据可以称为文件级元数据(或表示级元数据)。另一部分元数据涉及特定媒体样本。此类元数据可以包括样本类型和以字节为单位的大小的指示。此类元数据可以称为样本专用元数据。
因为在没有文件级元数据的情况下媒体解码和回放通常是不可能的,此类元数据在流式文件的开始位置作为文件头部分出现。根据一个实施例,至少将确定媒体数据偏移位置的信息确定为在文件开始位置的文件级元数据。可以将样本专用元数据与媒体数据交织,或者它可以在文件开始位置作为紧随文件级元数据或与文件级元数据交织的整体部分出现。
图2示出流式客户的功能,如图1中的客户C。在步骤201中,客户与服务器建立会话,以流式传输或下载可流式传输的文件。在此步骤期间,保留传输资源,并例如经图1的网络NW在服务器和客户之间建立逻辑连接。在步骤202中,实际的流式传输或下载是在客户向服务器请求至少文件中指示元数据部分的大小的部分时启动的。该信息通常位于文件的开始位置,并且自然地由所应用的文件格式决定。例如,在3GP文件格式中,该信息由在“moov”框之前的4个字节指定,并且当应用该文件格式时,客户由此配置为请求202并且稍后检查204这4个比特。客户例如通过URI(统一资源标识符)来指示所涉及的文件。客户由此通过指示文件中包括该信息的范围或部分来请求文件的特定部分。
在步骤203中,客户接收至少文件中指示元数据的大小的部分。基于该接收到的信息,客户确定元数据部分在文件中的位置,并形成204对指定元数据范围的请求。客户可以请求所有元数据或仅一些。在步骤205中将该请求发送到服务器。
在步骤206中,客户接收元数据,并优选地存储它,以用于流式传输或下载会话。接收到的元数据至少包括媒体数据范围在文件中的位置。这些媒体数据范围可能因所应用的文件格式而不同;例如,它们仅确定一个媒体样本或媒体样本集合,例如轨道,并包括一个或更多个媒体类型。基于此信息,客户能够确定媒体数据的字节偏移位置。当客户知道不同媒体数据范围或部分的位置时,它可以确定期望流式传输或下载的媒体数据范围。这可以涉及提示用户。通常,已经接收到的元数据包括据以确定要请求的媒体数据范围的文件级显示和/或解码次序信息。当客户知道期望的一个或更多个媒体数据范围时,它基于接收到的位置专用元数据确定207它们在文件中的位置。然后它形成208指示要向客户传递的至少一个媒体数据范围的请求,并将该请求发送209到服务器。可以在请求(和还在元数据中)中将媒体数据范围指定为字节范围值,至少确定所请求的第一个字节值和最后一个字节值。根据具体实施和底部传输协议,可以指定一个或更多个媒体数据范围。
例如,当应用3GP、ISO和MP4文件格式时,可以通过元数据中存在的样本到块(chunk)和块偏移框来标识媒体数据范围或部分的位置。通过检查这些信息字段,客户可以标识每个样本相对于文件开始位置的字节范围。有关ISO兼容文件格式的这些字段和其他部分的更多信息,请参考ISO/IEC JTC1/SC29/WG11规范“研究中的ISO/IEC 14496-12001 Amd 3的ISO媒体文件格式规范MP4技术”(ISO Media File format specification MP4 Technology underconsideration for ISO/IEC 14496-12001 Amd 3″,2001年7月20日)。更具体地来说,第5.3章描述框定义。
在步骤210中,客户接收在请求208、209中指示的范围中发现的所请求的媒体数据。然后可以在适当时使用媒体数据;通常,为用户分析并播放它(当接收到足够的媒体数据时),但是还可以存储它以供后来使用。在一个实施例中,在步骤210中,客户C从服务器SS接收压缩且复用的多媒体文件部分。客户C分析和解复用这些部分,以获取单独的媒体轨道。然后将这些媒体轨道解压缩,以提供重构的媒体轨道,然后就可以使用用户接口的输出设备来播出它们。除了这些功能外,还在客户中设有控制器单元,以结合最终用户操作,即根据最终用户输入控制回放并处理客户服务器控制。独立的媒体播放器应用或浏览器插件可提供回放。
重要的是注意,尤其对于流式传输来说,在步骤208和209中仅请求媒体数据的相对小的部分是非常有用的。由此在一个实施例中,客户安排为连续地、例如按解码和显示的时间次序形成并发送对呈示的不同部分的请求。但是,例如,对媒体数据部分的请求的次序可能是不同的,因为用户可能希望跳过一些部分。由此,客户可以配置为基于来自用户的命令、在特殊时间限制之后、基于文件的呈示状态或根据某个其他标准返回到步骤207或208。
如上所述,客户通常配置为基于在接收到的元数据中存在的显示和解码次序信息字段确定媒体数据部分的次序,即在步骤208中请求哪些媒体数据。例如,在3GP、ISO和MP4文件格式中,时间到样本原子(atom)产生从呈示时间到媒体样本的映射。客户可以配置为使用该信息来理解样本的请求次序,并使用字节位置相关的元数据来将样本映射到字节范围。
图3示出传递可流式传输的文件的服务器的功能。应用图3的功能的服务器是流式服务器,如图1中的SS,但是它可以是能够基于来自客户的请求分析和传递可流式传输的文件的任何服务器。可以将请求的文件存储在服务器设备中或服务器可以作为对请求的响应从某个其他实体访问和/或下载它。在步骤301中,服务器与客户建立会话,以流式传输或下载可流式传输的文件。在步骤302中,服务器从客户接收对至少文件中指示元数据部分的大小的部分的请求。基于所指示的范围,服务器配置为确定所涉及的文件中的范围的内容,即至少确定确定元数据部分的大小的字段的值。服务器配置为形成303包括至少文件中指示元数据的大小的部分的响应消息,并将其发送到客户。
在步骤304中,服务器接收包括有关要传递到客户的元数据范围的指示的请求。以与上文所述相似的方式,服务器然后确定文件的所请求范围,并形成响应消息,然后将其发送305到客户。
在步骤306中,服务器从客户接收指示要传递到客户的至少一个媒体数据范围的请求。服务器从文件中确定所请求的至少一个媒体数据范围,并形成307包括所请求的媒体数据范围的响应。接下来,服务器将响应发送308到客户。如上所述,客户可以发起许多请求,在此情况中过程返回到步骤306。
就如何实现本发明的功能而言,还有其他实施例存在。在一个实施例中,步骤202至206和步骤302至303并非必需的,但是在步骤201之后,客户仅通过不含任何范围或含有预定(大)范围的请求来启动流式传输或下载。当它接收到描述不同媒体数据范围或部分的位置、例如字节偏移位置的元数据部分时,则它可进入步骤207。
可以使用任何可靠的传输协议在客户与服务器之间传递请求和响应。一个此类协议是HTTP。根据一个实施例,就指示所请求的元数据和/或媒体数据的范围来说,可以使用版本1.1的HTTP的测距(ranging)功能特征,如上面关于图2和3所示。由此,根据一个实施例的客户配置为形成HTTP GET请求,除了文件的URI和可能一些其他信息外,HTTP GET请求还在字节范围参数中包括媒体数据/元数据在文件中的一个或更多个字节范围。有关HTTP功能的更多信息,参考IETF RFC 2616,“超文本传输协议-HTTP/1.1”,1999年6月。具体来说,范围的使用在第3.12、13.5.4和14.35.1章节中描述。当客户安排为根据HTTP规范形成HTTP GET请求时,任何HTTP v.1.1兼容服务器可以响应这些包括一个或更多个范围的请求。由此,根据优选实施例,无需在HTTP服务器中作任何更改。如上所述,在一个实施例中,可能按短的时间间隔发送对媒体数据部分的连续请求是必需的。根据一个实施例,将HTTP流水线技术应用于此目的。该技术使客户能够发送多个请求而不等待每个响应,从而允许远远更有效地使用单个TCP连接,且耗时远远更短。由此,客户配置为在步骤209中发送流水线式HTTP GET请求,从而能够节省往返时间。如上所述,达到此目的一个备选方式是将多个字节范围结合在请求中。
根据一个实施例,在步骤204和205中仅请求元数据的一部分。由此,客户可以配置为稍后例如在媒体数据接收阶段过程中请求元数据的至少另一些部分。客户可以确定尚未接收元数据的哪个部分,并同时或用与请求一个或更多个媒体数据范围(步骤207至209)有关的单独的请求请求它。服务器则配置为确定文件中指示的范围,并然后将其向客户发送。根据再一个实施例,服务器配置为将所请求的元数据和媒体数据交织在响应中,而客户还配置为分析并将媒体数据与元数据分离。
可以对任何可流式传输的文件格式实现上述功能特征。可以使用的文件格式的一些例子包括MPEG-4(MP4)文件格式、QuickTime格式、ISO基本媒体格式和3GP文件格式。
在会话开始时接收并存储的元数据可以包括如下媒体数据部分的所有必需的元数据。利用分段的文件格式同样是可行的,其中将媒体数据样本和与所述媒体数据样本相关的元数据分组为独立的片段。可以紧随捕捉并编码必需的媒体数据之后创建并存储这些片段。有关如何形成和利用含有片段的这种文件格式的更多信息,参考专利申请公布WO03/028293,它通过引用结合于本文。
对于上述文件格式,不管怎样以任何期望的次序播放文件的任何部分是可能的。可以在接收设备C中分析在媒体数据部分之后将其删除(从临时存储器中移除)。由此需要较少的临时存储空间,因为在分析文件时仅需要保持元数据,在分段方法中仅文件级元数据。如果分析文件的设备还播放多媒体文件,则可以在播放它之后永久地删除媒体数据(以及分段方法中与媒体数据直接相关的元数据)。这还缩减所需的存储资源量。
本发明可以在现有的远程通信设备中实施。它们都具有可用于实施本发明功能的处理器和存储器。一种特定程序代码当在处理器中执行时可以使远程通信设备实施上述客户和/或服务器的本发明功能的至少一部分,以及可以将该程序代码从外部存储媒介或远程通信设备嵌入或加载到设备中。不同的硬件实施也是可能的,如由单独的逻辑组件或一个或更多个专用集成电路(ASIC)组成的电路。这些技术的组合也还是可行的。
对于本领域技术人员显然的是,作为技术进步,本发明的概念可以以许多不同方式来实施。因此,本发明及其实施例并不局限于上述例子,而是在所附权利要求的范围和精神内可以有所变化。
权利要求
1.一种用于网络上在服务器和客户之间安排流式传输或下载包括元数据和媒体数据的可流式传输的文件的方法,所述方法包括在客户和服务器之间建立会话,将所述文件的元数据的至少一部分传送到所述客户,所传送的元数据至少包括媒体数据范围的至少一些在所述文件中的位置,基于接收到的元数据确定期望的媒体数据部分在所述文件中的位置,向所述服务器发送请求,告知所述服务器有关要传递到所述客户的媒体数据范围,以及将所请求的媒体数据范围传送到所述客户。
2.如权利要求1所述的方法,所述方法包括通过向所述服务器请求至少所述文件中指示所述元数据的大小的部分来启动所述流式传输或下载,将至少所述文件中所述指示所述元数据的大小的部分传送到所述客户,基于接收到的大小信息确定所述元数据部分在所述文件中的位置,向所述服务器发送请求,告知所述服务器有关要传递到所述客户的元数据范围,存储所述元数据以用于流式会话,以及使用所述元数据以确定所述期望的媒体数据的位置。
3.如权利要求2所述的方法,其中在元数据范围请求中仅请求所述元数据的一部分,所述方法包括在媒体数据接收过程中请求所述元数据的至少另一些部分。
4.如权利要求3所述的方法,其中将所请求的元数据和所述媒体数据交织。
5.如权利要求1或2所述的方法,其中所述请求是HTTP GET请求。
6.如权利要求4所述的方法,其中所述HTTP GET请求包括所述文件中期望的一个或更多个媒体数据或元数据范围所对应的一个或更多个字节范围。
7.一种包括服务器和客户的远程通信系统,其中所述服务器和所述客户配置为建立会话以流式传输或下载包括元数据和媒体数据的可流式传输的文件,所述服务器配置为将所述文件的元数据的至少一部分传送到所述客户,所传送的元数据至少包括媒体数据范围的至少一些在所述文件中的位置,所述客户配置为基于接收到的元数据确定期望的媒体数据范围在所述文件中的位置,所述客户配置为向所述服务器发送请求,告知所述服务器有关要传递到所述客户的媒体数据范围,以及所述服务器配置为将所请求的媒体数据范围传送到所述客户。
8.一种用于流式系统的客户,其中所述客户配置为与服务器建立会话以流式传输或下载包括元数据和媒体数据的可流式传输的文件,所述客户配置为从所述服务器接收所述文件的元数据的至少一部分,接收到的元数据至少包括至少一些媒体数据范围在所述文件中的位置,所述客户配置为基于接收到的元数据确定期望的媒体数据部分在所述文件中的位置,以及所述客户配置为向所述服务器发送请求,告知所述服务器有关要传递到所述客户的媒体数据范围。
9.如权利要求8所述的客户,其中所述客户配置为向所述服务器请求至少所述文件中指示在所述文件中的所述元数据的大小的部分,所述客户配置为从所述服务器接收至少所述文件中所述指示所述元数据的大小的部分,所述客户配置为基于接收到的大小信息确定所述元数据部分在所述文件中的位置,所述客户配置为向所述服务器发送请求,告知所述服务器有关要传递到所述客户的元数据范围,所述客户配置为存储所述元数据以用于流式会话,以及所述客户配置为使用所述元数据确定所述期望的媒体数据的位置。
10.如权利要求9所述的客户,其中所述客户配置为在所述元数据范围请求中仅请求所述元数据的一部分,以及所述客户配置为在媒体数据接收过程中请求所述元数据的至少另一些部分。
11.如权利要求10所述的客户,其中所述客户配置为分析来自所述服务器的响应,其中将所请求的元数据和所述媒体数据交织。
12.如权利要求8或9所述的客户,其中所述客户配置为形成用于请求所述元数据或媒体数据范围的HTTP GET请求。
13.如权利要求12所述的客户,其中所述客户配置为向所述HTTP GET请求中添加所述文件中期望的一个或更多个媒体数据或元数据范围所对应的一个或更多个字节范围。
14.如权利要求12所述的客户,其中所述客户配置为流水线化含有不同媒体数据范围的HTTP GET请求。
15.如权利要求8所述的客户,其中所述客户配置为根据接收到的元数据中的文件级显示和/或解码次序信息确定要请求的至少一个媒体数据部分,以及所述客户配置为基于接收到的元数据确定所选的媒体数据部分在所述文件中的位置。
16.一种远程通信设备,其中所述设备包括如权利要求8至15中任何一项所述的客户。
17.一种用于控制远程通信设备的计算机程序产品,其中所述计算机程序产品包括执行如下操作的程序代码使所述远程通信设备与服务器建立会话以流式传输或下载包括元数据和媒体数据的可流式传输的文件,使所述远程通信设备从所述服务器接收所述文件的元数据的至少一部分,接收到的元数据至少包括媒体数据范围在所述文件中的位置,使所述远程通信设备基于接收到的元数据确定期望的媒体数据部分在所述文件中的位置,以及使所述远程通信设备向所述服务器发送请求,告知所述服务器有关要传递到所述客户的媒体数据范围。
全文摘要
本发明涉及一种用于网络上在服务器和客户之间安排流式传输或下载包括元数据和媒体数据的可流式传输的文件的方法,其中将该文件的元数据的至少一部分传送到客户,所传送的元数据至少包括媒体数据范围在该文件中的位置。基于接收到的元数据确定期望的媒体数据部分在文件中的位置。向服务器发送请求,告知服务器有关要传送到客户的媒体数据范围。然后将所请求的媒体数据范围传递给客户。
文档编号H04N7/173GK1902865SQ200480039753
公开日2007年1月24日 申请日期2004年11月4日 优先权日2003年11月7日
发明者E·阿克苏 申请人:诺基亚有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1