专利名称:用于动态媒体文件流送的系统、方法和装置的制作方法
技术领域:
本发明的实施例总体上涉及通信技术,并且更具体地,涉及用于媒体文件流送 (streaming)的系统、方法和装置。
背景技术:
联网技术和使用联网技术的计算设备已经以继续促进信息传输的容易性和对用户的方便性这样的方式在演进。就此而言,网络的扩展和网络计算设备的演进已经提供了充足的处理功率、存储空间和网络带宽,以便使得能够传输和回放日益增加的复杂数字媒体文件。因此,因特网电视、视频共享等正在获得普及性。为了促进数字媒体文件的传输和回放,数字媒体文件可以从服务器流送到内容消费设备,诸如计算设备。可以通过将媒体文件分片成多个片段来适应媒体文件流送。内容消费设备可以请求媒体文件的片段,并且服务器然后可以响应于该请求而将该片段传送到内容消费设备。在传送和接收到一个片段之后,客户端消费设备可以从服务器请求另一片段。该处理可以重复,其中媒体文件一次一个片段地被从服务器传送到内容消费设备。
发明内容
因此,根据一个实施例,提供了用于使用诸如超文本传输协议(HTTP)的传输协议来促进媒体文件的流送的系统、方法、装置和计算机程序产品。在一个实施例中,客户端消费设备可以发布传输协议请求,其使得服务器传送媒体文件的多个片段。通过响应于传输协议请求而传送多个片段,可以在更低的请求开销以及在服务器与专用于内容本身的内容消费设备之间传送的更大百分比的数据的情况下,按照更高效的方式来对媒体文件进行流送。为了进一步提高流送处理的效率,可以发布传输协议请求,所述传输协议请求标识了两个或更多不同类型的轨道(track),从而使得可以响应于所述传输协议请求来提供所述两个或更多不同种类的轨道中的每一个种类的轨道的多个片段。另外,响应于单个传输协议请求的对多个片段的传输可以允许与网络状况的质量相一致地在对媒体文件进行流送的过程中更平滑地调整比特率,其中在比特率中的任何改变都扰乱了(disconcert)观看者。 而且,通过允许所述传输协议请求来标识要下载的一部分媒体文件而不必指定要下载的特定片段,服务器不必在最初提供可用片段的索引文件,并且如此,服务器可以响应于所述传输协议请求而动态地生成片段。在一个实施例中,提供了一种方法,该方法包括接收对媒体文件的至少一部分的传输协议请求,其指示所述媒体文件的至少一部分要被流送到请求所述媒体文件的内容消费设备。该实施例的方法还基于所述传输协议请求来确定要传送到所述内容消费设备的多个片段,并且然后响应于所述传输协议请求而提供所述多个片段到所述内容消费设备的传输。在另一个实施例中,提供了一种计算机程序产品。所述计算机程序产品包括其中存储了计算机可读程序指令的至少一个计算机可读存储介质。该实施例的计算机可读程序指令可以包括程序指令,当由服务器执行时,所述程序指令被配置以便接收对媒体文件的至少一部分的传输协议请求,其指示所述媒体文件的至少一部分要被流送到请求所述媒体文件的内容消费设备。该实施例的计算机可读程序指令当被执行时还被配置以便使得所述服务器基于所述传输协议请求来确定要传送到所述内容消费设备的多个片段,并且然后响应于所述传输协议请求而提供所述多个片段到所述内容消费设备的传输。在进一步的实施例中,提供了一种装置。该实施例的装置包括至少一个处理器和存储了计算机程序代码的至少一个存储器。存储了计算机程序代码的所述至少一个存储器被配置以便与所述至少一个处理器一起工作,使得所述装置接收对媒体文件的至少一部分的传输协议请求,其指示所述媒体文件的至少一部分要被流送到请求所述媒体文件的内容消费设备。还使得该实施例的装置基于所述传输协议请求来确定要传送到所述内容消费设备的多个片段,并且然后响应于所述传输协议请求而提供所述多个片段到所述内容消费设备的传输。在又一个实施例中,提供了一种设备,该设备包括用于接收对媒体文件的至少一部分的传输协议请求的装置,所述传输协议请求指示所述媒体文件的至少一部分要被流送到请求所述媒体文件的内容消费设备。该实施例的所述设备还包括用于基于所述传输协议请求来确定要传送到所述内容消费设备的多个片段的装置;以及用于响应于所述传输协议请求而提供所述多个片段到所述内容消费设备的传输的装置。在另一个实施例中,提供了一种方法,所述方法包括引导发布对媒体文件的至少一部分的传输协议请求,其指示要从服务器流送所述媒体文件的至少一部分。该实施例的方法还包括从所述服务器接收响应于所述传输协议请求的多个片段。在另一个实施例中,提供了一种计算机程序产品。所述计算机程序产品包括其中存储了计算机可读程序指令的至少一个计算机可读存储介质。该实施例的计算机可读程序指令可以包括程序指令,当由处理器执行时,所述程序指令被配置以便引导发布对媒体文件的至少一部分的传输协议请求,其指示要从服务器流送所述媒体文件的至少一部分。该实施例的计算机可读程序指令当由处理器执行时还被配置以便使得通信设备从所述服务器接收响应于所述传输协议请求的多个片段。在进一步的实施例中,提供了一种装置。该实施例的装置包括至少一个处理器和存储了计算机程序代码的至少一个存储器。存储了计算机程序代码的所述至少一个存储器被配置以便与所述至少一个处理器一起工作,使得所述装置引导发布对媒体文件的至少一部分的传输协议请求,其指示要从服务器流送所述媒体文件的至少一部分。还使得该实施例的装置从所述服务器接收响应于所述传输协议请求的多个片段。在又一个实施例中,提供了一种设备,该设备包括用于引导发布对媒体文件的至少一部分的传输协议请求的装置,所述传输协议请求指示要从服务器流送所述媒体文件的至少一部分。该实施例的设备还包括用于从所述服务器接收响应于所述传输协议请求的多个片段的装置。在进一步的实施例中,提供了一种系统,所述系统包括服务器和内容消费设备,所述系统被配置以便支持从所述服务器到所述内容消费设备的媒体文件流送。在该实施例中,所述内容消费设备被配置以便引导发布对所述媒体文件的至少一部分的传输协议请求,其指示要从服务器流送所述媒体文件的至少一部分;以及从所述服务器接收响应于所述传输协议请求的多个片段。另外,在该实施例中的服务器被配置以便接收对所述媒体文件的至少一部分的传输协议请求,其指示所述媒体文件的至少一部分要被流送到请求所述媒体文件的内容消费设备。该实施例的服务器还被配置以便基于所述传输协议请求来确定要传送到所述内容消费设备的多个片段;以及然后响应于所述传输协议请求而提供所述多个片段到所述内容消费设备的传输。仅出于以下目的而提供了以上
发明内容
总结本发明的一些示例实施例,以便提供对本发明的一些方面的基本理解。因此,可以理解,上述示例实施例仅是例子并且不应当被解释成以任何方式缩窄本发明的精神或范围。可以理解,本发明的范围包括除了这里总结的那些之外的任何可能的实施例,下面将进一步描述其中一些实施例。
因此已经概括地描述了本发明的实施例,现在将参考附图(其不一定按比例绘制),并且在附图中图1根据本发明示例性实施例图示了用于使用传输协议来促进媒体文件的流送的系统;图2是根据本发明示例性实施例的移动终端的示意框图;图3是按照本发明的一个示例实施例的根据用于促进媒体文件的流送的示例性方法的流程图;图4图示了按照本发明的一个示例实施例可格式化的依从ISOFF的 (ISOFF-compliant)结构化媒体内容;以及图5-图8依照本发明的示例性实施例图示了根据用于促进媒体文件的流送的示例性方法的附加流程图。
具体实施例方式现在将在下文中参照附图更充分地描述本发明的一些实施例,在附图中示出了一些但不是所有的实施例。实际上,应当理解,除了在此阐述和描述的那些实施例之外,本发明的其它可能的实施例可以以很多不同的形式来体现。本发明的实施例不应当被解释为限于在此阐述的实施例;相反,提供了在此阐述的实施例是使得该公开将满足适用的法律要求。相同的附图标记始终指的是相同的元素。如在此使用的,术语“电路”指的是(a)仅硬件电路实现(例如,模拟电路和/或数字电路中的实现);(b)电路与计算机程序产品的组合,所述计算机程序产品包括在一起工作的一个或多个计算机可读存储器上存储的软件和/或固件指令,以使得装置执行在此描述的一个或多个功能;以及(c)即使软件或固件在物理上不存在也要求用于操作的软件或固件的电路,例如像微处理器或微处理器的一部分。“电路”的该定义应用于在此对该术语的所有使用,包括在任何权利要求中。作为进一步的例子,如在此使用的,术语“电路”还包括含有一个或多个处理器和/或其部分以及配附的软件和/或固件的实现。作为另一个例子,如在此使用的术语“电路”还包括例如用于移动电话的应用处理器集成电路或基带集成电路或者服务器中的类似集成电路、蜂窝网络设备、其它网络设备和/或其它计算设备。一些多媒体服务器基于用户数据报协议(UDP)使用实时传输协议(RTP)来进行媒体流送(与作为控制协议的实时流送协议(RTSP) —起)。就此而言,UDP提供基础传输功能性,诸如应用寻址和损坏检测(corruption detection)。RTP向UDP补充媒体传输相关功能性,诸如丢失检测、分组重排序、同步、统计数据收集,以及会话参与标识。然而,基于UDP 的RTP(RTP/UDP)并不提供内置拥塞控制和/或纠错功能性。RTP/UDP可以搜集充足的信息来基于需要而在应用级上实现拥塞控制和/或纠错功能性。然而,随着移动和因特网视频的日益普及,通过适当的速率控制机制来维持良好的网络性能正在变得甚至更为优先。另外,在基于RTP/UDP的流送应用中,流式媒体的发送机和/或接收机如果未被适当地进行配置,则可能无法穿越位于发送机和接收机之间的流送路径中的网络地址转换(NAT)设备和 /或防火墙。超文本传输协议(HTTP)流式媒体递送在一些应用中正在取代基于RTSP/RTP的流送。即使HTTP不被设计用于实时媒体的递送,HTTP也提供了使其对于流式媒体内容递送应用有吸引力的益处。就此而言,HTTP相对容易设置和部署。另外,HTTP媒体递送克服了阻碍使用基于RTSP/RTP的流送的NAT和防火墙穿越问题。此外,利用使得能够进行高效数据分发的十分稳健的基础设施(诸如HTTP缓存)来广泛部署HTTP。HTTP是被开发用于递送超链接文本文档的应用级传输协议。对该协议的使用已经进一步演进以便涵盖对不同类型的文件和数据的文件的递送。HTTP使用请求/响应模型来检索来自Web服务器的远程资源。客户端通常在端口 80上建立与服务器的传输协议连接 (例如,传输控制协议(TCP)连接),并且与服务器交换HTTP消息。HTTP消息可以包括报头部分和可选的主体部分。报头部分可以包括一系列HTTP报头字段,每一字段以回车/换行字符结束。HTTP消息报头可以通过空行而与HTTP消息主体分离。以人类可读文本格式来提供HTTP报头字段。统一资源定位符(URL)或统一资源标识符(URI)被用于标识和定位要由HTTP客户端检索的资源。URI包括协议标识符、全资域名、到所请求的资源的路径,以及可选地包括查询串。然而,通过HTTP的媒体流送由于例如相对高的请求开销而造成仍然不是如期望的那样有效率。就此而言,在流送媒体之前,内容消费设备通常从服务器取得索引文件。索引文件包括与媒体文件的所有内容片断相关联的一个或多个标识符的列表。由于与媒体文件的整个长度相比内容片断相对要短,诸如两秒或四秒,因此索引文件可以被调整大小并且其到内容消费设备的传输可消耗比所期望的更多的带宽,特别是因为索引文件通常可以在相当频繁的基础上被更新和重传,例如,对于实况内容。此外,通常以必须首先被内容消费设备解析和处理的可扩展标记语言(XML)文档的形式来提供索引文件。对索引文件的解析还可能比所期望的消耗更多的时间和资源,并且还可能非预期地增加与媒体文件流送相关联的开销。与索引文件列表标识符(其关联于所有的内容片断)的超前供应相关联的另外的问题是对索引文件的供应预先假定媒体文件已经被格式化成片断。然而,关于一些类型的媒体文件(诸如捕获实况或正在发生的事件(诸如体育赛事或实况音乐表演)的那些媒体文件,或者请求式媒体文件),媒体文件可能事先未被格式化成片断,并且实际上可能在编译索引文件时并不存在。在将索引文件从服务器传送到内容消费设备之后,内容消费设备可以发布对该媒体文件的特定片断的请求。服务器然后可以提供该媒体文件的所请求的片断,并且仅在由内容消费设备接收到该片断之后,媒体消费设备才可以请求该媒体文件的另一片段。然后,可以多次重复该过程(通过该过程请求媒体文件并且在逐片段的基础上递送媒体文件), 直到已经将媒体文件的期望部分传送到内容消费设备。所重复的对媒体文件的片段的请求非预想地增加了与媒体文件流送相关联的开销。另外,由于内容消费设备在通过相同的TCP 连接发布对下一片段的请求之前必须等待对紧挨的前一片段的接收,因此在以下情况中可能将延迟引入到媒体文件流送过程中片段之一被错误地引导或者在别的方式下内容消费设备未能及时接收到片段之一。在接收数据片段时的延迟可能导致在内容消费设备处对媒体内容的回放的中断。可以按照多个不同的比特率从服务器获得媒体文件的片段。基于网络状况,内容消费设备因此可以例如通过以下方式来制定其请求从媒体内容的低比特率轨道请求片段,以便调整成降低可用网络带宽。如果检测到网络状况或网络带宽方面的改善,则内容消费设备可以从媒体内容的高比特率轨道请求片段。在该情况下,检测到相对差网络状况 (诸如相对低带宽)的内容消费设备可以请求具有较低比特率且因此具有降低的质量的片段,而检测到改善的网络状况(诸如较大带宽)的内容消费设备可以请求具有较大比特率且因此具有改善的质量的片段。通常在逐请求的基础上由内容消费设备来执行对网络状况的确定。然而,由于每个请求针对单个片段,因此内容消费设备可能未配备有充足的持续时间来测定当前网络状况。此外,由于比特率(以及因此片段的质量)可以随着每一个片段而发生改变,诸如每两秒到四秒,因此所得到的在显示质量方面的改变对观看者而言可能是种扰乱。媒体文件可以包括多个不同的轨道。如上所述,媒体文件可以包括同一类型但比特率不同的不同轨道,诸如视频轨道,由此来促进响应于当前网络状况的比特率调整。通过不同类型的轨道的例子,媒体文件可以包括用于相同媒体文件的视频轨道、音频轨道和字幕轨道。常规地,内容消费设备将不得不分别从每一个不同类型的轨道发布对片段的请求, 诸如对音频轨道片段的一个请求、对视频轨道片段的另一请求,以及对字幕轨道片段的又一请求。由于必须以串行的方式来发布每个请求,因此发布对不同类型轨道的单独请求的必要性进一步增加了请求开销并且降低了媒体文件流送处理的效率。因此,本发明的实施例提供了可以解决常规媒体流送技术的一些不足的系统、方法、装置和计算机程序产品。例如,为了减少请求开销和增加媒体文件流送处理的效率以及提供其它优点,根据本发明的实施例提供了允许响应于单个传输协议请求而将多个片段从服务器传送到内容消费设备的系统、装置、方法和计算机程序产品。就此而言,图1图示了根据本发明示例性实施例的用于促进对媒体文件的流送的系统100的框图。如在此使用的,“示例性”仅意指例子并且如此表示本发明的一个示例实施例,而不应当被解释成以任何方式缩窄本发明的范围或精神。可以理解,本发明的范围除了在此图示和描述的那些之外还包括很多可能的实施例。如此,尽管图1图示了用于促进对媒体文件的流送的系统的配置的一个例子,但是还可以使用很多其它配置来实现本发明的实施例。此外,应当理解, 超文本传输协议(HTTP)被用作应用层传输协议的例子,其可以用于按照本发明的一些实施例来对媒体文件进行流送。本发明的其它实施例被配置以便使用除了 HTTP之外或者代替HTTP的其它应用层传输协议来流送媒体文件。图1图示了根据本发明示例实施例的用于使用应用层传输协议(诸如超文本传输协议(HTTP))来流送媒体文件的系统100的框图。在示例实施例中,系统100包括内容消
9费设备102和服务器104。内容消费设备102和服务器104被配置以便通过网络108进行通信。网络108例如包括一个或多个有线网络、一个或多个无线网络、或其某种组合。网络 108可以包括由网络运营商运营的公共陆地移动网络(PLMN)。就此而言,网络108例如包括诸如按照3GPP标准的提供蜂窝网络接入的运营商网络。附加地或替代地,网络108可以包括因特网。内容消费设备102可以包括被配置以便通过网络108访问来自服务器104的内容的任何设备。例如,内容消费设备102包括服务器、桌上型计算机、膝上型计算机、移动终端、移动计算机、移动电话、移动通信设备、游戏设备、数字相机/摄录机、音频/视频播放器、电视设备、无线电接收机、数字视频记录仪、定位设备和/或其任何组合等。在示例实施例中,内容消费设备102被体现为诸如图2中图示的移动终端。就此而言,图2图示了按照本发明实施例表示了内容消费设备102的一个实施例的移动终端10 的框图。然而,应当理解,在下文中描述的和图示的移动终端10仅说明了可以实现和/或受益于本发明实施例的一种类型的内容消费设备102,并且因此不应当被视为限制本发明的范围。尽管图示了并且在下文中将为了示例的目的而描述电子设备的若干实施例,但是其它类型的电子设备(诸如移动电话、移动计算机、便携式数字助理(PDA)、寻呼机、膝上型计算机、桌上型计算机、游戏设备、电视和其它类型的电子系统)也可以采用本发明的实施例。如图所示,移动终端10可以包括与发射机14和接收机16通信的天线12(或多个天线1 。移动终端还可以包括处理器20,处理器20分别将信号提供到发射机和接收机并且从发射机和接收机接收信号。这些信号可以包括按照可用蜂窝系统的空中接口标准的信令信息和/或任何数目的不同有线或无线联网技术,包括但不限于无线保真(Wi-Fi)和/ 或无线局域网(WLAN)技术,诸如电子和电气工程师协会(IEEE)802. 11等。另外,这些信号可以包括语音数据、用户生成的数据和/或用户请求的数据等。就此而言,移动终端可能能够按一个或多个空中接口标准、通信协议、调制类型和/或接入类型等来操作。更特别地, 移动终端可能能够按照各种第一代(IG)、第二代(2G)、2. 5G、第三代(3G)通信协议和/或第四代GG)通信协议等来操作。例如,移动终端可能能够按照2G无线通信协议IS-136(时分多址(TDMA))、全球移动通信系统(GSM)和/或IS-95(码分多址(CDMA))等来操作。而且, 例如,移动终端可能能够按照2. 5G无线通信协议、通用分组无线电服务(GPRS)和/或增强型数据GSM环境(EDGE)等来操作。此外,例如,移动终端可能能够按照3G无线通信协议来操作,诸如通用移动电信系统(UMTS)、码分多址2000 (CDMA2000)、宽带码分多址(WCDMA)和 /或时分同步码分多址(TD-SCDMA)等。移动终端可能另外能够按照3. 9G无线通信协议来操作,诸如长期演进(LTE)和/或演进型通用地面无线电接入网络(E-UTRAN)等。另外,例如,移动终端可能能够按照第四代GG)无线通信协议等以及未来可能开发的类似无线通信协议来操作。一些窄带高级移动电话系统(NAMPS)以及全接入通信系统(TACS)、移动终端也可以受益于本发明的实施例,就像双模式或更高模式电话(例如,数字/模拟或TDMA/CDMA/ 模拟电话)那样。另外,移动终端10可能能够根据无线保真(Wi-Fi)或全球微波接入互操作性(WiMAX)协议来操作。应当理解,处理器20可以包括用于实现移动终端10的音频/视频和逻辑功能的电路。例如,处理器20可以例如被体现为包括电路的各种装置、配附有数字信号处理器的一个或多个微处理器、未配附有数字信号处理器的一个或多个处理器、一个或多个协处理器、一个或多个多核处理器、一个或多个控制器、处理电路、一个或多个计算机、各种其它处理元件,包括例如像ASIC (专用集成电路)或FPGA (现场可编程门阵列)的集成电路,或其某种组合。处理器可以另外包括内部语音编码器(VC) 20a和/或内部数据调制解调器 (DM) 20b等。此外,处理器可以包括用于操作可存储在存储器中的一个或多个软件程序的功能性。例如,处理器可能能够操作连接性程序,诸如Web浏览器。连接性程序可以允许移动终端10根据诸如无线应用协议(WAP)和/或超文本传输协议(HTTP)等的协议来传送和接收Web内容,诸如基于位置的内容。移动终端10可能能够使用传输控制协议/因特网协议 (TCP/IP)来在因特网或其它网络上传送和接收Wfeb内容。移动终端10还可以包括用户接口,包括例如耳机或扬声器对、振铃器22、扩音器沈、显示器观和/或用户输入接口等,其可以在操作上耦合到处理器20。虽然未示出,但是移动终端可以包括用于为与移动终端有关的各种电路供电的电池,例如用于提供机械振动作为可检测的输出的电路。用户输入接口可以包括允许移动终端接收数据的设备,诸如键板30、触摸显示器(未示出)、操纵杆(未示出)和/或其它输入设备。在包括键板的实施例中,键板可以包括数字键(0-9)和相关键(#、* )和/或用于操作移动终端的其它键。如图2所示,移动终端10还可以包括用于共享和/或获得数据的一个或多个装置。例如,移动终端可以包括短距离射频(RF)收发器和/或询问器64,所以可以按照RF 技术与电子设备共享数据和/或从电子设备获得数据。移动终端可以包括其它短距离收发器,例如像红外(IR)收发器66、使用由Bluetooth 特殊兴趣小组开发的Bluetooth 商标无线技术操作的Bluetooth (BT)收发器68和/或无线通用串行总线(USB)收发器70等。 Bluetooth 收发器68可能能够根据超低功率Bluetooth 技术(例如,ffibree )无线电标准来操作。就此而言,例如,移动终端10(以及特别地,短距离收发器)可能能够将数据传送到在移动终端附近区域内(诸如在10米之内)的电子设备和/或从该电子设备接收数据。虽然未示出,但是移动终端可能能够根据各种无线联网技术来传送和/或接收来自电子设备的数据,包括无线保真(Wi-Fi)和/或诸如IEEE 802. 11技术的WLAN技术等。移动终端10可以包括存储器,诸如订户身份模块(SIM) 38和/或可装卸式用户身份模块(R-UIM)等,其可以存储与移动订户有关的信息元素。除了 SIM之外,移动终端还可以包括其它可装卸和/或固定的存储器。移动终端10可以包括易失性存储器40和/或非易失性存储器42。例如,易失性存储器40可以包括随机存取存储器(RAM),包括动态和/ 或静态RAM、芯片上或芯片外缓存存储器等。可以是嵌入式和/或可装卸式的非易失性存储器42可以包括例如只读存储器、闪速存储器、磁存储设备(例如,硬盘、软盘驱动器、磁带等)、光盘驱动器和/或介质、非易失性随机存取存储器(NVRAM)等。类似于易失性存储器 40,非易失性存储器42可以包括用于临时存储数据的缓存区。存储器可以存储一个或多个软件程序、指令、信息条和/或数据等,其可以由移动终端用于实现该移动终端的功能。例如,存储器可以包括能够唯一地标识移动终端10的标识符,诸如国际移动设备标识(IMEI) 码。再次参照图1,在示例实施例中,客户端消费设备102包括用于实现在此描述的各种功能的各种装置,诸如处理器110、存储器112、通信接口 114、用户接口 116和媒体回放电路118。如在此描述的,客户端设备102的各种装置包括例如硬件元件,例如适当编程的处理器和/或组合式逻辑电路等;包括存储在计算机可读介质(例如存储器11 上的计算机可读程序指令的计算机程序产品,例如软件和/或固件。程序指令可由处理设备(例如处理器110)来执行。处理器110可以例如体现为各种装置,包括配附有数字信号处理器的一个或多个微处理器、未配附有数字信号处理器的一个或多个处理器、一个或多个协处理器、一个或多个控制器、处理电路、一个或多个计算机、各种其它处理元件(包括集成电路,例如像专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或其某种组合。因此,虽然图1中图示为单个处理器,但是在一些实施例中,处理器110包括多个处理器。所述多个处理器可以彼此在操作上进行通信,并且可以统一被配置以便实现如在此描述的内容消费设备102的一个或多个功能性。在内容消费设备102被体现为移动终端10的实施例中,处理器110可以被体现为或另外包括处理器20。在示例实施例中,处理器110被配置以便执行存储在存储器112中的指令或者处理器110以另外的方式可访问的指令。所述指令当由处理器110执行时使得内容消费设备102实现如在此描述的内容消费设备102的一个或多个功能性。如此,不管是通过硬件或软件操作来配置还是通过其组合来配置,处理器110均可以表示当进行相应配置时能够根据本发明的实施例执行操作的实体。例如,当处理器110被体现为 ASIC、FPGA等时,处理器110可以包括具体配置用于进行在此描述的一个或多个操作的硬件。替代地,作为另一例子,当处理器110被体现为指令的执行器时,所述指令可以具体地配置处理器110(处理器110如果不是由于由指令提供的特定配置则可以另外作为通用处理元件),以便执行在此描述的一个或多个操作。存储器112可以包括例如易失性和/或非易失性存储器。虽然图1中图示为单个存储器,但是存储器112可以包括多个存储器。存储器112可以包括易失性存储器、非易失性存储器或其某种组合。就此而言,存储器112可以包括例如硬盘、随机存取存储器、缓存存储器、闪速存储器、压缩盘只读存储器(CD-ROM)、数字多用途盘只读存储器(DVD-ROM)、 光盘、被配置以便存储信息的电路,或其某种组合。在内容消费设备102被体现为移动终端的实施例中,存储器112可以被体现为或另外包括易失性存储器40和/或非易失性存储器 42。存储器112可以被配置以便存储用于使内容消费设备102能够执行按照本发明实施例的各种功能的信息、数据、应用、指令等。例如,在至少一些实施例中,存储器112被配置以便缓冲输入数据用于由处理器110来处理。附加地或替代地,在至少一些实施例中,存储器 112被配置以便存储用于由处理器110来执行的程序指令。存储器112可以以静态和/或动态信息的形式来存储信息。所存储的该信息可以由媒体回放单元118在执行其功能性的过程期间来存储和/或使用。通信接口 114可以被体现为按照以下形式来体现的任何设备或装置硬件、包括存储在计算机可读介质(例如,存储器11 上的且由处理设备(例如,处理器110)执行的计算机可读程序指令的计算机程序产品,或者其组合(其被配置以便通过网络108从远程设备接收和/或向远程设备传送数据)。在至少一个实施例中,通信接口 114至少部分地被体现为处理器110或以另外的方式来由处理器110控制。就此而言,通信接口 114可以诸如经由总线来与处理器110进行通信。通信接口 114可以包括例如天线、发射机、接收机、 收发器和/或用于实现与系统100的其它实体进行通信的支持性硬件或软件,例如,图2的移动终端10的天线12、发射机14和/或接收机16。通信接口 114可以被配置以便使用可用于在系统100的计算设备之间的通信的任何协议来接收和/或传送数据。通信接口 114 可以另外诸如经由总线来与存储器112、用户接口 116和/或媒体回放电路118进行通信。用户接口 116可以与处理器110进行通信以便接收关于用户输入的指示和/或向用户提供可听、可视、机械性或其它输出。如此,用户接口 116可以包括例如键盘、鼠标、操纵杆、显示器、触摸屏显示器、扩音器、扬声器和/或其它输入/输出机构,例如,图2的移动终端10的耳机或扬声器M、扩音器沈、显示器观和/或键板30。用户接口 116可以提供接口来允许用户选择要从服务器104流送到内容消费设备102以便在内容消费设备102上回放的媒体文件和/或其媒体轨道。就此而言,可以在用户接口 116的显示器上显示来自媒体文件的视频,并且可以通过用户接口 116的扬声器使得来自媒体文件的音频可听化。用户接口 116可以诸如经由总线来与存储器112、通信接口 114和/或媒体回放电路118进行
ififn。媒体回放电路118可以被体现为各种装置,诸如硬件、包括存储在计算机可读介质(例如,存储器11 上的且由处理设备(例如,处理器110)执行的计算机可读程序指令的计算机程序产品,或者其某种组合,并且在一个实施例中,媒体回放电路118被体现为处理器110或者以另外的方式来由处理器110控制。在媒体回放电话118被体现为与处理器 110相分离的实施例中,媒体回放电路118可以与处理器110进行通信。媒体回放电路118 可以进一步诸如经由总线来与存储器112、通信接口 114和/或用户接口 116进行通信。服务器104可以包括被配置以便向内容消费设备102提供媒体文件的一个或多个计算设备。在至少一个实施例中,服务器104包括一个或多个服务器,诸如HTTP服务器、动态流送服务器、内容提供商服务器、Web服务器、网络服务器等。尽管服务器104可以是媒体文件的源,但是服务器还可以是用于从一个或多个内容源接收媒体文件以及用于向内容消费设备102提供媒体文件的中间件。在示例性实施例中,服务器104包括用于执行在此描述的各种功能的各种装置,诸如处理器120、存储器122、通信接口 124、用户接口 1 和媒体流送电路128。如在此描述的服务器104的这些装置可以被体现为例如硬件元件(例如,适当编程的处理器和/或组合逻辑电路等)、包括存储在计算机可读介质(例如,存储器 122)上的可由适当配置的处理设备(例如,处理器120)执行的计算机可读程序指令(例如,软件或固件)的计算机程序产品,或者其某种组合。处理器120可以例如被体现为各种装置,包括配附有数字信号处理器的一个或多个微处理器、未配附有数字信号处理器的一个或多个处理器、一个或多个协处理器、一个或多个控制器、处理电路、一个或多个计算机、各种其它处理元件(包括例如像ASIC(专用集成电路)或FPGA(现场可编程门阵列)的集成电路),或者其某种组合。因此,虽然图1中图示为单个处理器,但是在一些实施例中,处理器120包括多个处理器。多个处理器可以被体现在单个计算设备上或分布在多个计算设备上。多个处理器可以彼此在操作上通信并且可以统一被配置以便执行如在此描述的服务器104的一个或多个功能性。在示例性实施例中,处理器120被配置以便执行存储在存储器122中的指令或者处理器120以另外的方式可访问的指令。这些指令当被处理器120执行时可以使得服务器104执行如在此描述的服务器104的一个或多个功能性。如此,不管是通过硬件或软件方法来配置还是通过其组合来配置,处理器110均可以表示当相应地进行配置时能够实现根据本发明实施例的操作的实体。因而,例如,当处理器120被体现为ASIC、FPGA等时,处理器120可以包括具体配置的硬件用于进行在此描述的一个或多个操作。替代地,作为另一例子,当处理器120被体现为指令的执行器时,所述指令可以具体地配置处理器120(处理器120如果不是由于由指令提供的特定配置则可以另外是通用处理元件),以便执行在此描述的一个或多个算法和操作。存储器122可以包括例如易失性和/或非易失性存储器。虽然图1中图示为单个存储器,但是存储器122可以包括多个存储器,其可以体现在单个计算设备上或分布在多个计算设备上。存储器122可以包括易失性存储器、非易失性存储器或其某种组合。就此而言,存储器122可以包括例如硬盘、随机存取存储器、缓存存储器、闪速存储器、压缩盘只读存储器(CD-ROM)、数字多用途盘只读存储器(DVD-ROM)、光盘、被配置以便存储信息的电路、或其某种组合。存储器122可以被配置以便存储用于使媒体内容源104能够执行按照本发明实施例的各种功能的信息、数据、应用、指令等。例如,在至少一些实施例中,存储器 122被配置以便缓冲输入数据用于由处理器120来处理。附加地或替代地,在至少一些实施例中,存储器122被配置以便存储用于由处理器120执行的程序指令。存储器122可以以静态和/或动态信息的形式来存储信息。所存储的该信息可以由媒体流送单元1 在执行其功能性的过程期间来存储和/或使用。通信接口 IM可以被体现为按照以下方式来体现的任何设备或装置硬件、包括存储在计算机可读介质(例如,存储器12 上的且由处理设备(例如,处理器120)执行的计算机可读程序指令的计算机程序产品,或者其组合(其被配置以便通过网络108从远程设备接收和/或向远程设备传送数据)。在至少一个实施例中,通信接口 1 至少部分地被体现为处理器120或者另外由处理器120来控制。就此而言,通信接口 IM可以诸如经由总线来与处理器120进行通信。通信接口 IM可以包括例如天线、发射机、接收机、收发器和/或用于实现与系统100的其它实体的通信的支持性硬件或软件。通信接口 IM可以被配置以便使用可用于在系统100的计算设备之间的通信的任何协议来接收和/或传送数据。通信接口 1 可以另外诸如经由总线来与存储器122、用户接口 1 和/或媒体流送电路1 进行通信。用户接口 1 可以与处理器120进行通信,以便接收关于用户输入的指示和/或向用户提供可听、可视、机械性或其它输出。如此,用户接口 1 可以包括例如键盘、鼠标、 操纵杆、显示器、触摸屏显示器、扩音器、扬声器和/或其它输入/输出机构。在服务器104 被体现为一个或多个服务器的实施例中,可以限制或者甚至去除用户接口 126。用户接口 126可以诸如经由总线来与存储器122、通信接口 IM和/或媒体流送电路1 进行通信。媒体流送电路1 可以被体现为各种装置,诸如硬件、包括存储在计算机可读介质(例如,存储器12 上的且由处理设备(例如,处理器120)执行的计算机可读程序指令的计算机程序产品,或者其某种组合,并且在一个实施例中,媒体流送电路1 被体现为处理器120或者另外由处理器120来控制。在媒体流送电路1 被体现为与处理器120相分离的实施例中,媒体流送电路1 可以与处理器120进行通信。媒体流送电路1 可以进一步诸如经由总线来与存储器122、通信接口 IM和/或用户接口 1 进行通信。在示例实施例中,媒体回放电路118被配置以便向服务器104发送对媒体文件的传输协议请求。在示例实施例中,所请求的媒体文件包括符合ISO基础媒体文件格式的媒体文件。ISO基础媒体文件格式的例子包括3GP媒体文件以及活动图片专家组4(MPEG-4) 部分14(MP4)文件。所述请求例如响应于经由用户接口 116所接收到的请求或用户输入而被发送。传输协议请求包括以下指示要将媒体文件流送到内容消费设备102。在示例实施例中,传输协议请求包括HTTP GET请求。HTTP GET请求包括报头字段,所述报头字段包括指示了要流送媒体文件的令牌。例如,报头字段可以包括“期望(Expect)”报头字段,并且包括被定义成指示要求服务器104支持对媒体文件的HTTP流送(诸如3GP媒体文件的基于3GPP的HTTP流送)的令牌,例如“http-流送(http-streaming) ”。在另一个例子中, 报头字段包括“杂注(Pragma) ”报头字段,并且包括被定义成指示要求服务器104支持对所请求的媒体文件的HTTP流送的令牌,例如“http-流送”。在示例实施例中,媒体流送电路1 被配置以便接收由内容消费设备102发送的传输协议请求。如果传输协议请求包括关于要将所请求的媒体文件流送到内容消费设备 102的指示,并且服务器104没有被配置以便对媒体文件进行流送,则媒体流送电路1 被配置以便向内容消费设备102发送错误消息。如果服务器104被配置以便对媒体文件进行流送,那么媒体流送电路1 被配置以便在发送到内容消费设备102的应答消息中包括支持。这样的支持可以例如被指示为HTTP应答消息的杂注报头字段的一部分。在示例实施例中,媒体流送电路1 进一步被配置以便响应于接收到对媒体文件的传输协议请求,从存储器122或者服务器104可访问的其它存储器中访问所请求的媒体文件。媒体流送电路1 被配置以便提取与媒体文件中的媒体数据相关联的至少一部分信息。在示例实施例中,所提取的那部分信息包括与媒体文件中的媒体数据相关联的一个或多个部分的元数据。例如,所提取的那部分元数据包括关于媒体文件的内容的一般信息, 例如,媒体文件中的不同轨道和/或媒体数据的类型。所提取的那部分元数据包括例如仅是对内容消费设备来说从媒体文件中选择至少一个轨道有用的信息。例如可以如下表中所概述的按照基于国际标准化组织(ISO)的媒体文件格式 (ISOFF)来构造与媒体文件相关联的元数据。
权利要求
1.一种方法,其包括接收对媒体文件的至少一部分的传输协议请求,其指示所述媒体文件的至少一部分要被流送到请求了所述媒体文件的内容消费设备;基于所述传输协议请求,经由处理器来确定要传送到所述内容消费设备的多个片段;以及响应于所述传输协议请求,提供所述多个片段到所述内容消费设备的传输。
2.根据权利要求1所述的方法,其中,接收所述传输协议请求包括接收通过以下中的至少一个而标识了要流送的那部分媒体文件的传输协议请求标识时间间隔、标识至少一个场景或标识多个帧。
3.根据权利要求1所述的方法,其中,接收所述传输协议请求包括接收标识了不同类型的轨道的传输协议请求,并且其中,提供对所述多个片段的传输包括提供对所述不同类型的轨道中的每个轨道的多个片段的传输。
4.根据权利要求3所述的方法,其中,提供对所述多个片段的传输包括提供对含有来自所述不同类型的轨道中的每个轨道的复用媒体数据的多个片段的传输。
5.根据权利要求1所述的方法,其进一步包括响应于所述传输协议请求,将所述媒体文件的至少一部分格式化成多个片段。
6.一种包括至少一个计算机可读存储介质的计算机程序产品,所述至少一个计算机可读存储介质中存储了计算机可执行程序代码指令,当由所述处理器执行时,所述计算机可执行程序代码指令使得实施根据权利要求1所述的方法。
7.一种装置,其包括至少一个处理器和存储了计算机程序代码的至少一个存储器,所述至少一个存储器和所述计算机程序代码被配置以便与所述至少一个处理器一起工作,使得所述装置接收对媒体文件的至少一部分的传输协议请求,其指示所述媒体文件的至少一部分要被流送到请求了所述媒体文件的内容消费设备;基于所述传输协议请求,确定要传送到所述内容消费设备的多个片段;以及响应于所述传输协议请求,提供所述多个片段到所述内容消费设备的传输。
8.根据权利要求7所述的装置,其中,所述至少一个存储器和所述计算机程序代码被配置以便与所述至少一个处理器一起,使得所述装置通过接收经由以下中的至少一个而标识了要流送的那部分媒体文件的传输协议请求来接收所述传输协议请求标识时间间隔、 标识至少一个场景或标识多个帧。
9.根据权利要求7所述的装置,其中,所述至少一个存储器和所述计算机程序代码被配置以便与所述至少一个处理器一起,使得所述装置通过接收标识了不同类型的轨道的传输协议请求来接收所述传输协议请求,以及通过提供对所述不同类型的轨道中的每个轨道的多个片段的传输来提供对所述多个片段的传输。
10.根据权利要求9所述的装置,其中,所述至少一个存储器和所述计算机程序代码被配置以便与所述至少一个处理器一起,使得所述装置通过提供对含有来自所述不同类型的轨道中的每个轨道的复用媒体数据的多个片段的传输来提供对所述多个片段的传输。
11.根据权利要求7所述的装置,其中,所述至少一个存储器和所述计算机程序代码被配置以便与所述至少一个处理器一起,进一步使得所述装置响应于所述传输协议请求,将所述媒体文件的至少一部分格式化成多个片段。
12.一种方法,其包括经由处理器,引导发布对媒体文件的至少一部分的传输协议请求,其指示要从服务器流送所述媒体文件的至少一部分;以及从所述服务器接收响应于所述传输协议请求的多个片段。
13.根据权利要求12所述的方法,其中,引导发布所述传输协议请求包括引导发布通过以下中的至少一个而标识了要流送的那部分媒体文件的传输协议请求标识时间间隔、 标识至少一个场景或标识多个帧。
14.根据权利要求12所述的方法,其中,引导发布所述传输协议请求包括引导发布包括了要流送的不同类型的轨道的标识的传输协议请求,并且其中,接收所述多个片段包括 接收所述不同类型的轨道中的每个轨道的多个片段。
15.根据权利要求12所述的方法,其中,引导发布所述传输协议请求包括引导发布包括了协议的标识的传输协议请求,其中要经由所述协议来流送所述媒体文件。
16.一种包括至少一个计算机可读存储介质的计算机程序产品,所述至少一个计算机可读存储介质中存储了计算机可执行程序代码指令,当由所述处理器执行时,所述计算机可执行程序代码指令使得实施根据权利要求12所述的方法。
17.一种装置,其包括至少一个处理器和存储了计算机程序代码的至少一个存储器,所述至少一个存储器和所述计算机程序代码被配置以便与所述至少一个处理器一起,使得所述装置引导发布对媒体文件的至少一部分的传输协议请求,其指示要从服务器流送所述媒体文件的至少一部分;以及从所述服务器接收响应于所述传输协议请求的多个片段。
18.根据权利要求17所述的装置,其中,所述至少一个存储器和所述计算机程序代码被配置以便与所述至少一个处理器一起,使得所述装置通过引导发布经由以下中的至少一个而标识了要流送的那部分媒体文件的传输协议请求来引导发布所述传输协议请求标识时间间隔、标识至少一个场景或标识多个帧。
19.根据权利要求17所述的装置,其中,所述至少一个存储器和所述计算机程序代码被配置以便与所述至少一个处理器一起,使得所述装置通过引导发布包括了要流送的不同类型的轨道的标识的传输协议请求来引导发布所述传输协议请求,并且通过接收所述不同类型的轨道中的每个轨道的多个片段来接收所述多个片段。
20.根据权利要求17所述的装置,其中,所述至少一个存储器和所述计算机程序代码被配置以便与所述至少一个处理器一起,使得所述装置通过引导发布包括了协议的标识的传输协议请求来引导发布所述传输协议请求,其中要经由所述协议来流送所述媒体文件。
21.一种设备,其包括用于接收对媒体文件的至少一部分的传输协议请求的装置,所述传输协议请求指示了所述媒体文件的至少一部分要被流送到请求了所述媒体文件的内容消费设备;用于基于所述传输协议请求来确定要传送到所述内容消费设备的多个片段的装置;以及用于响应于所述传输协议请求而提供所述多个片段到所述内容消费设备的传输的装置。
22. —种设备,其包括用于引导发布对媒体文件的至少一部分的传输协议请求的装置,所述传输协议请求指示了要从服务器流送所述媒体文件的至少一部分;以及用于从所述服务器接收响应于所述传输协议请求的多个片段的装置。
全文摘要
提供了用于促进动态媒体流送的方法、装置、系统和计算机程序产品。就此而言,服务器可以接收对媒体文件的至少一部分的传输协议请求,其指示所述媒体文件的至少一部分要被流送到请求了所述媒体文件的内容消费设备。作为响应,可以基于所述传输协议请求来确定要传送到所述内容消费设备的多个片段,并且然后响应于所述传输协议请求而将所述多个片段传送到所述内容消费设备。
文档编号H04L29/06GK102577309SQ201080043149
公开日2012年7月11日 申请日期2010年9月29日 优先权日2009年9月29日
发明者I·布阿兹兹 申请人:诺基亚公司