自适应比特率流送时延减少的制作方法

文档序号:11236835阅读:455来源:国知局
自适应比特率流送时延减少的制造方法与工艺

优先权要求

本申请要求根据35u.s.c.§119(e)的2014年10月22日提交的早先的美国临时申请序列号62/066,971的优先权,其通过引用并入本文。

本公开涉及数字视频流送领域,特别是关于使用自适应输送流(ats)和分块传输编码以减少自适应比特率流中的时延的领域。



背景技术:

通过诸如互联网的网络将实况或预记录的媒体内容流送到诸如机顶盒、计算机、智能电话、移动设备、平板计算机、游戏控制台、和其它设备的客户端设备变得越来越流行。这样的媒体内容的递送通常依赖于诸如mpeg-dash、http直播流送(hls)、和http平滑流送的自适应比特率流技术。

用自适应比特率流技术编码的媒体内容流通常被分成多个段,其中每个段可以是独立可访问的。客户端设备可以通过请求和解码第一段、请求和解码第二段、并且继续请求和解码后续段只要客户端设备的用户希望播放媒体内容、或者直到回放到达媒体内容的末尾来播放媒体流。

另外,流的分段可以允许客户端设备在均已经以不同质量水平编码的流的不同比特率版本之间转换。例如,当网络状况拥塞时,客户端设备可以通过请求以低比特率编码的段来开始回放媒体流,而当网络状况改善时,客户端设备可以通过请求以较高的比特率编码的后续段来转换到流的较高质量版本。

虽然将媒体流分段能够是有用的,但是常规的分段过程引入延迟,特别是在实况内容的传送时。在大多数自适应比特率流实现中,服务器只能向作出请求的客户端设备提供完整的段。然而,段通常具有至少几秒的长度,诸如2至10秒。因此,向最终用户的流的初始递送直到第一段完成之后才能开始。这在可以以其它方式观看实况内容之前引入了至少该段的长度的延迟。另外,由于第一段以这种方式被延迟,所以所有后续段将被类似地延迟,并且视频将永远无法上实时。

这些类型的延迟对于用户来说可能是令人沮丧的。例如,实况体育广播是受欢迎的,且观看者通常希望在体育场内发生事件之后尽快在屏幕上看到事件。然而,即使每个段的长度相对短——诸如两秒),每个两秒的内容也必须被完全编码并封包成段,然后才能发送到客户端设备。因此,由于分段过程,屏幕上示出的事件将总是落后于实时至少两秒钟。这样的延迟对于狂热者来说可能令人失望,因为当在比赛期间发生令人兴奋的事件时,他们可能会先通过在线记分牌或无线电得知,然后他们才能实际在屏幕上看到它发生。

虽然一些观看者可能不关心是否延迟地接收实况视频,但是开始观看视频流所花费的时间仍然能够使这些观看者烦恼。因为第一个视频段需要在其被发送到观看者的设备之前被完全编码和封包,所以在观看者请求视频流之后,在开始为观看者播放之前,可能会有至少等于该段大小的延迟,诸如2-10秒。对于习惯于常规电视提供的立即调谐时间的观看者来说,多秒调谐延迟可能令人沮丧。

降低这种类型的调谐延迟的一种方法可以是缩短段的大小。例如,不同于在一些当前流送技术中通常使用的10秒段,段大小可以缩短到2秒,使得解码设备可以在接收到前2秒内容之后开始回放。然而,所有段通常利用前导锚帧进行编码,前导锚帧比其它帧使用更多数据。因此,减小段大小需要更多的锚帧并利用更多的数据,这可以降低编码效率并影响带宽的使用和性能。另外,减少段大小总体上将导致更多的段,并因此会增加将其递送到客户端设备所需的http请求和回复的数目。



技术实现要素:

需要一种系统和方法,用于即使当发送设备还不知道可切换段的完整大小时,或即使在发送设备尚未具有可切换段的完整拷贝的情况下,也可以使用分块传输编码发送来自连续自适应输送流内的各个可切换段的递送块。这可以允许在客户端设备请求可切换段之后几乎立即开始实况内容的传输、解码、和渲染,而无需等待完整的可切换段被编码和发送。

在一个实施例中,本公开提供了一种用于传送媒体内容的方法,所述方法包括在http流送器(streamer)处从媒体准备单元接收自适应输送流描述,所述自适应输送流描述描述可从媒体内容准备单元作为一个或多个自适应输送流获得的媒体内容,其中所述一个或多个自适应输送流中的每一个是包括多个可切换段的连续流,多个可切换段均包括一个或多个递送块,所述可切换段是利用段边界点来标记的,且递送块是利用块边界点来标记的,其中,在所述多个可切换段中的每一个之间的位置是客户端设备可以切换到所述一个或多个自适应输送流中的不同的自适应输送流的位置;发布播放列表,其中http流送器列出所述多个可切换段中的一个或多个可切换段的标识符;在所述http流送器处将所述一个或多个自适应输送流从所述媒体准备单元接收到存储器缓冲器中,在所述http流送器处从所述客户端设备接收对于在所述播放列表上标识的特定可切换段的请求,以及通过来自所述特定可切换段的一个或多个递送块传送到所述客户端设备直到达到终止段边界点,使用分块传输编码来响应所述请求,其中所述一个或多个递送块中的每一个是可由客户端设备独立解码的单个可切换段的部分,使得即使在http流送器尚未完全从媒体准备单元接收到所请求的可切换段时,http流送器也被配置为开始发送来自所请求的可切换段的递送块,并且客户端设备也可以开始解码和渲染接收到的递送块。

在另一个实施例中,本公开提供了一种对媒体内容进行编码的方法,所述方法包括:在媒体准备单元处从源接收媒体内容片段;使用媒体准备单元将所述媒体内容片段以变化的比特率水平编码为多个自适应输送流,该多个自适应输送流中的每一个是包括多个可切换段的连续流,使得解码设备可以在相邻可切换段之间的位置处从多个自适应输送流中的一个切换到多个自适应输送流中的不同自适应输送流;使用媒体准备单元编码多个自适应输送流中的每一个,使得多个可切换段中的每一个包括一个或多个递送块,其中特定可切换段内的每个递送块是特定可切换段的独立可解码部分;使用标记所述自适应输送流内的可切换段中的每一个的开始点和/或结束点的多个段边界点来标记所述多个自适应输送流中的每一个,并且使用标记所述自适应输送流内的每个可切换段内的递送块中的每一个的开始点和/或结束点的多个块边界点来标记多个自适应输送流中的每一个。

在另一个实施例中,本公开提供了一种传送媒体内容的方法,所述方法包括:在媒体准备单元从源接收媒体内容,将媒体内容使用媒体准备单元以变化的比特率水平编码成多个自适应输送流,该多个自适应输送流中的每一个是包括多个可切换段的连续流,使得解码设备可以在相邻可切换段之间的位置处从多个自适应输送流中的一个切换到多个自适应输送流中的不同自适应输送流;使用媒体准备单元编码多个自适应输送流中的每一个,使得多个可切换段中的每一个包括一个或多个递送块,其中特定可切换段内的每个递送块为该特定可切换段的可独立解码的部分;用多个段边界点标记多个自适应输送流中的每一个,所述多个段边界点标记自适应输送流内的每个可切换段的开始点和/或结束点;用多个块边界点标记多个自适应输送流中的每一个,所述多个块边界点标记多个自适应输送流中每个可切换段内的每个递送块的开始点和/或结束点;将描述多个自适应输送流的自适应输送流描述从媒体准备单元传送到http流送器;发布播放列表,其中http流送器列出所述多个可切换段的一个或多个的标识符;在所述http流送器处将所述多个自适应输送流从媒体准备单元接收到存储器缓冲器中;在所述http流送器处从客户端设备接收对于在所述播放列表上标识的特定可切换段的请求;以及通过将来自所述特定可切换段的一个或多个递送块传送到所述客户端设备直到达到终止段边界点,使用分块传输编码来响应所述请求,其中即使当http流送器尚未完全从媒体准备单元接收到所请求的可切换段时,所述http流送器也被配置为开始发送来自所请求的可切换段的递送块,并且客户端设备也可以开始解码和渲染接收到的递送块。

附图说明

借助附图对本发明的进一步细节进行说明,其中:

图1描绘了用于递送媒体内容的系统,包括与媒体准备单元和一个或多个客户端设备通信的http流送器。

图2描绘了自适应输送流的非限制性示例的一部分。

图3a描绘了列出虚拟标识符的播放列表的示例性实施例。

图3b描绘了列出段标识符的播放列表的示例性实施例。

图4描绘了接收到在http流送器处的存储器缓冲器中的自适应输送流的一部分。

图5描绘了使用分块传输编码将自适应输送流从http流送器传送到客户端设备的第一示例性过程。

图6a-6c描绘了被接收到存储器缓冲器中的自适应输送流的可切换段和被传送到作出请求的客户端设备的该可切换段的递送块的示例。

图7描绘了使用分块传输编码将自适应输送流从http流送器传送到客户端设备的第二示例性过程。

图8描绘了计算机系统的示例性实施例的框图。

具体实施方式

图1描绘了用于递送媒体内容102的系统。媒体准备单元104可以选择性地与http流送器106通信和/或交换数据,并且一个或多个客户端设备108可以选择性地与http流送器106通信和/或交换数据。

媒体准备单元104可以是包括一个或多个处理器、数据存储系统或存储器、和/或通信链路或接口的编码器和/或转码器。媒体准备单元104可以从诸如广播者或内容提供者的源接收媒体内容102。媒体内容102可以包括音频和/或视频。在一些实施例和/或情境下,媒体内容102可以是实况广播,而在其它实施例和/或情境下,媒体内容102可以被预记录。媒体准备单元104可以被配置为将接收到的媒体内容102编码和/或转码成至少一个自适应输送流110。在一些情境和/或实施例中,媒体准备单元104可将接收到的媒体内容102编码和/或转码成多个替选自适应输送流110,诸如均以不同的质量水平或比特率进行编码的不同的版本。

图2描绘了自适应输送流110的非限制性示例的一部分。自适应输送流110可以是连续的输送流。通过非限制性示例的方式,自适应输送流110可以是连续的mpeg2输送流。在一些实施例中,可以由媒体准备单元104根据诸如opencabletm规范的规范来准备自适应输送流110,然而在其它实施例中,媒体准备单元104可以以任何其它期望的格式准备自适应输送流110。

自适应输送流110可以包括一系列图片群组(gop),每个gop包括一个或多个帧202。每个帧202可以通过帧内预测和/或帧间预测进行编码和解码。也可以仅使用帧内预测帧202——也称为i帧或关键帧——内的数据独立于其它帧202对i帧进行编码和解码。可以参照一个或多个其它帧202对帧间预测帧202进行编码和解码,例如通过对帧间预测帧202与一个或多个参考帧202之间的差异进行编码。可以参照先前帧202进行编码和解码的帧间预测帧202可被称为p帧。可以参考先前帧和随后帧202两者进行编码和解码的帧间预测帧202可被称为b帧。每个gop可以以i帧开始,使得解码设备可以独立地解码前导i帧,并且然后使用该解码信息来帮助解码gop内的任何后续p帧或b帧。

多个可独立解码的可切换段204可以存在于自适应输送流110内,如图2所示。通过非限制性示例的方式,每个可切换段204可以是自适应输送流110的一部分,例如媒体内容102的2至10秒部分。每个单独的可切换段204可以包括一个或多个gop。

自适应输送流110中的每个可切换段204之间的位置可以是在客户端设备108可以在自适应输送流110的不同版本之间切换的位置。以非限制性示例的方式,经历网络拥塞的客户端设备108可以从自适应输送流110的一个版本请求和回放可切换段204,自适应输送流110的该版本以适合于通过处于当前拥塞水平下的网络递送的相对低的比特率被编码。然而,当客户端设备108到达可切换段204的末尾并且确定网络状况已经改善时,客户端设备108可以从自适应输送流110的以更高的比特率编码的不同版本请求下一可切换段204。

虽然自适应输送流110可以被编码为连续的输送流,但媒体准备单元104可以提供指示段边界点206在连续的自适应输送流110内的位置的信息。段边界点206可以指示连续自适应输送流110内的每个可切换段204的起始和/或结束。

在一些实施例中,段边界点206可以在与自适应输送流110相关联的专用数据内被识别。以非限制性示例的方式,段边界点206可以是编码器边界点(ebp),其在内容根据opencabletm规范进行编码时被标记。在其它实施例中,可以在与自适应输送流110相关联的公用数据中识别段边界点206,诸如在公用mpeg数据字段内的段边界描述符。在再其它实施例中,可以从其它数据推断段边界点206的位置。以非限制性示例的方式,每个可切换段204的第一帧202可被编码为特殊类型的i帧,称为idr(即时解码器刷新)帧,其向解码设备指示应清空其参考图片缓冲区。每个idr帧可以指示可切换段204的开始,使得idr帧的标识也可以指示段边界点206。

每个可切换段204可以包括一个或多个递送块208。每个递送块208可以是可切换段204的一部分,诸如单个帧202、部分gop、或一个或多个完整gop。

在一些实施例中,每个递送块208可以是可切换段204的可独立解码的子段,使得解码设备可以在接收到子段后立即解码并渲染每个递送块208,而不需要等待附加递送块208。通过非限制性示例,递送块208可以是从包括多个gop的较大的十秒可切换段204获取的单个8帧gop。作为另一个非限制性示例,当可切换段204包括都是i帧时,其递送块208可以是单独的帧202,因为每个帧可以被独立地解码。

如图2所示,与可以指示段边界点206的方式类似地,媒体准备设备104可以通过公用或专用数据来指示自适应输送流110内的块边界点210的位置。每个块边界点210可以标记可切换段204内的递送块208的开始和/或结束。

回到图1,媒体准备单元104可以通过网络——诸如互联网或任何其它数据网络——向http流送器106提供对自适应输送流110的访问。http流送器106可以加入与媒体准备单元104相关联的多播组以开始接收自适应输送流110。

http流送器106可以是被配置为将独立可切换段204从自适应输送流110递送到已请求它们的客户端设备108的封装器和/或服务器。http流送器106可以包括互联网协议电视(iptv)服务器、过顶(ott)服务器或任何其它类型的服务器或网络元件。http流送器106可以具有一个或多个处理器、数据存储系统或存储器、和/或通信链路或接口。如下图4所示,http流送器106可以具有一个或多个存储器缓冲器402,http流送器106至少可临时将自适应输送流110的接收的部分存储到存储器缓冲器402中。

每个客户端设备108可以是机顶盒、有线电视盒、电视、计算机、智能电话、移动设备、平板计算机、游戏控制台,或被配置为请求、接收、和回放可切换段204的任何其它设备。客户端设备108可以具有一个或多个处理器、数据存储系统或存储器、和/或通信链路或接口。

在一些实施例中,http流送器106还可以从媒体准备单元104接收自适应输送流描述112。自适应输送流描述112可以是描述从媒体准备单元104对http流送器106可用的一个或多个自适应输送流110的媒体呈现描述(mpd)、清单,或其它信息。以非限制性示例的方式,媒体准备单元104可以向http流送器106提供描述诸如媒体内容102的名称的媒体内容102的片段的自适应输送流描述112以及可从媒体准备单元104以不同的比特率获得或将可获得的媒体内容102的多个不同的自适应输送流110版本的标识符。

http流送器106可以使用自适应输送流描述112来生成描述媒体内容102和可用可切换段204的针对客户端设备108的播放列表114。播放列表114可以是mpd、清单、或描述可由客户端设备108从http流送器106请求的一个或多个可切换段204的其它信息。,以非限制性示例的方式,播放列表114可以是dash(基于http的动态自适应流)mpd。http流送器106可以针对客户端设备108发布播放列表114。

图3a描绘了播放列表114的第一实施例。在一些实施例或情境中,诸如在媒体内容102是实况广播且客户端设备108很可能请求最新的可切换段204以尽可能接近实况地呈现媒体内容102时,http流送器106可以利用链接到自适应输送流110中的最新近的可切换段204的版本的虚拟标识符302来准备播放列表114。以非限制性示例的方式,http流送器106可以准备播放列表114,其列出了可从媒体准备单元104获得的每个质量水平的自适应输送流110的虚拟标识符302,诸如以不同比特率编码的版本。客户端设备108可以使用播放列表114中的虚拟标识符302来从http流送器106请求处于期望的质量水平的最新近的可切换段204,而不需要知道http流送器106处的最新近的可切换段204的特定标识符或url。

图3b描绘了播放列表114的替选实施例。在替选实施例中,http流送器106可以列出播放列表114上的特定可切换段204的独特分段标识符304,诸如文件名或url。http流送器106可以分析其已经在存储器缓冲器402中接收的自适应输送流110的部分,以识别至少部分地接收到的可切换段204,并且为播放列表114上的那些可切换段204添加段标识符304。在一些实施例中,播放列表114可以列出每个可切换段204的替选版本的段标识符304,诸如来自自适应输送流110的以不同比特率编码的并列的可切换段204。

在这些实施例中,http流送器106一开始接收新的可切换段204的一部分,它就可以在播放列表114上包括该新的可切换段204的段标识符304,即便它还没有接收到整个该可切换段204。以非限制性示例的方式,http流送器106一遇到自适应输送流110中的新的段边界点206,它就可以将该新的可切换段204的段标识符304添加到播放列表114,即便它还没有接收到标记可切换段204的结束和下一可切换段204的开始的另一段边界点206。在实况内容的情况下,随着在http流送器106的存储器缓冲器402中接收到自适应输送流110中的更多部分并且识别出新的可切换段204,http流送器106可以利用新的段标识符304来更新播放列表114。

当客户端设备108使用播放列表114来请求可切换段204时,http流送器106可以使用段边界点206来识别自适应输送流110内的各个可切换段204的结束点,并且因此可以将来自连续自适应输送流110的可切换段204封装和/或递送到已请求它们的客户端设备108。http可以用作内容传送机制,以通过诸如互联网或任何其它数据网络的网络将可切换段204从http流送器106输送到作出请求的客户端设备108。http流送器106可以将各个可切换段204传送到客户端设备108以作为由客户端设备108使用的自适应比特率流送技术的段,自适应比特率流送技术诸如mpeg-dash、http直播流送(hls)、或http平滑流。

在一些实施例中,http流送器106可以使用零拷贝分段来将与单个可切换段204相关联的数据传送到作出请求的客户端设备108。在这些实施例中,http流送器106可以接收进入存储器缓冲器402的来自自适应输送流110的数据,如图4所示。在一些实施例中,存储器缓冲器402可以保持来自自适应输送流110的达预定量的数据,诸如接收到的媒体内容102的最新近的n秒、接收到的最新近的n个字节、接收到的最新近的n个可切换段204、或任何其它度量的数据。

使用零拷贝分段,当特定可切换段204已被客户端设备108请求时,http流送器106可以直接从存储器缓冲器402将与该可切换段204相关联的数据传送到作出请求的客户端设备108,而无需首先将该数据拷贝到不同的存储位置或将数据拷贝到一个或多个单独的文件中。以非限制性示例的方式,http流送器106可以追踪其存储器缓冲器402中的、与自适应输送流110内的不同可切换段204相对应的所接收自适应输送流110中的位范围,并且http流送器106可以使用这些位范围来直接从存储器缓冲器402中的自适应输送流110的部分向客户端设备108提供所请求的可切换段204。类似地,http流送器106可以使用零拷贝分段来从使用零拷贝分段的存储器缓冲器402向客户端设备108传送来自更大的可切换段204的各个递送块208。

http流送器106可以使用如http1.1中定义的分块输送编码(cte),以将来自每个请求的可切换段204的各个递送块208顺序递送到作出请求的客户端设备108。如上所述,每个递送块208可以选择为如单个帧202这样小,或者可以被选择为单个帧202和完整可切换段204之间的任何其它大小。在一些实施例中,http流送器106可以根据在自适应输送流110的编码期间由媒体准备单元104添加的块边界点210来识别在所请求的可切换段204内的每个递送块208的开始点和/或者结束点。

利用分块输送编码,即使http流送器106尚未接收到完整的可切换段204并且还不知道可切换段204的完整大小,http流送器106也可以开始将请求的可切换段204的部分作为递送块208从其存储器缓冲器402传送到客户端设备108。

以非限制性示例的方式,http流送器106可以从媒体准备单元104基本上实时地接收实况广播作为自适应输送流110。http流送器106一找到指示自适应输送流110内的可切换段204的开始的段边界点206,http流送器106就可以使用块边界点210来识别在该可切换段204内的可解码递送块208。一旦http流送器106根据该块边界点210确定http流送器106已经在其存储器缓冲器402中接收到完整的递送块208,http流送器106就可以将该递送块208发送到作出请求的客户端设备108,即便http流送器106还没有接收到来自该可切换段的进一步的递送块208、或者包含指示可切换段204的结束的段边界点206的自适应输送流110的进一步的部分。http流送器106可以继续从媒体准备单元104实时地接收自适应输送流110的更多部分,并且可以继续向客户端设备108发送附加的递送块208,直到接收到和处理自适应输送流110中的下一个段边界点206。此时,http流送器106可以向客户端设备108发送所请求的可切换段204已经终止的指示,诸如长度为零的最后的递送块208。

图5描绘了使用分块传输编码将来自一个或多个自适应输送流110的数据从http流送器106发送到客户端设备108的第一示例性过程。当媒体内容102是实况广播并且客户端设备108希望实时回放该实况内容时,可以使用图5的过程。

在步骤502,http流送器106可以从媒体准备单元104接收与媒体内容102的片段——诸如实况广播——相关联的自适应输送流描述112。自适应输送流描述112可以描述关于媒体内容102和可从媒体准备单元104获得的一个或多个相关联的自适应输送流110——诸如以不同比特率编码的媒体内容102的不同版本——的信息。媒体准备单元104可以已经编码了利用段边界点206以及块边界点210在自适应输送流描述112中标识的每个自适应输送流110,或正在对其编码的过程中,段边界点206指示在该连续自适应输送流110内的各个可切换段204的开始和/或结束点的,块边界点210标记在每个可切换段204内的递送块208的开始和/或结束点。

在步骤504,http流送器106可以发布针对客户端设备108的播放列表114。http流送器106可以使用自适应输送流描述112来确定可从媒体准备单元获得的质量水平,并列出播放列表114上的处于每个可用质量水平的最新近可切换段204的虚拟标识符302,如图3a所示。

在步骤506,http流送器106可以从客户端设备108接收对于最新近可切换段204的版本的请求。以非限制性示例的方式,客户端设备108可以使用播放列表114上的虚拟标识符302之一请求处于期望的质量水平的最新近的可切换段204,以便几乎实时地回放媒体内容102。如果http流送器106尚未开始从媒体准备单元104接收自适应输送流110,则http流送器106可以加入与媒体准备单元104相关联的多播组,并且可以开始将自适应输送流110接收到其存储器缓冲器402内。

在步骤508,http流送器106可以使用分块传输编码来将来自所请求的可切换段204的递送块208传送到作出请求的客户端设备108。在一些实施例中,http流送器106可以使用零拷贝分段将与所请求的可切换段204相关联的数据从其存储器缓冲器402直接发送到作出请求的客户端设备108。

响应于客户端设备的对于最新近的可切换段204的请求而发送的第一递送块208可以是保持在http流送器的存储器缓冲器402中的最新近的完整递送块208。http流送器106可以使用由媒体准备单元104插入的块边界点210来识别保持在其存储器缓冲器402中的自适应输送流110的部分内的递送块208。以非限制性示例的方式,图6a描绘了已经部分地接收到http流送器的存储器缓冲器402内的可切换段204。尽管在存储器中仅接收了完整可切换段204中的几个帧202,但是已经接收了由块边界点210限定的完整递送块208,且http流送器106可以将该递送块208发送到作出请求的客户端设备108。当媒体准备单元104将块边界点210插入自适应输送流110内以标记媒体内容102的独立可解码部分时,即使尚未接收到可切换段204的其它部分,客户端设备108也可以立即开始解码该递送块208并回放其帧202。

当响应来自客户端设备108的请求时,http流送器106可以追踪其在可切换段204内的位置,使得最新近发送的递送块208之后的下一个递送块208可以随后视情况被发送到客户端设备108。以非限制性示例的方式,图6b描绘了http流送器106已经将来自可切换段204的第一递送块208发送到作出请求的客户端设备108的情境,并且随后在其接收并检测到指示第二递送块208的结束的块边界点210时,发送来自相同的可切换段的第二递送块208。

在步骤510,http流送器106可以确定其是否已经到达自适应输送流110内的段边界点206。如果在向客户端设备108发送递送块208之后http流送器106尚未到达自适应输送流110内的段边界点206,则http流送器106可以返回到步骤508,以使用分块传输编码将来自所请求的可切换段204的下一个递送块208传送到作出请求的客户端设备108。然而,如果http流送器106在步骤510期间确定其已经到达自适应输送流110内的段边界点206,则http流送器106可以确定它已经到达当前可切换段204的结束点,并且可以移动到步骤512。以非限制性示例的方式,图6b-6c描绘了http流送器106向客户端设备108发送递送块208并且然后在http流送器106的存储器缓冲器402中的自适应输送流110的部分内遇到段边界点206作为下一数据片段的情境。

在步骤512,http流送器106可以将终止递送块208传送到客户端设备108,以指示客户端设备108请求的可切换段204的结束。如上所述,在一些实施例中,终止递送块208可以具有零长度。终止递送块208可以向作出请求的客户端设备108指示与所请求的可切换段204相关联的最后的递送块208已经被发送,并且已经到达可切换段204的末尾。

在接收到终止递送块208之后,客户端设备108可以或者使用播放列表114来从处于相同或不同质量水平的自适应输送流110请求下一可切换段204,或者结束对媒体内容102的回放。

在步骤514期间,http流送器106可以确定是否已经从作出请求的客户端设备108接收到对于可切换段204的新请求。如果客户端设备108已经请求了另一可切换段204,则http流送器106可以返回到步骤508以开始将请求的可切换段204的递送块208传送到客户端设备108。如果客户端设备108尚未请求附加的可切换段204,则该过程可以结束,和/或http流送器106可以等待对于可切换段204的未来请求。

图7描绘了使用分块传输编码从http流送器106将来自一个或多个自适应输送流110的数据传送到客户端设备108的第二示例性过程。当媒体内容102是实况广播并且客户端设备108希望以近实时的方式回放该实况内容时,或者当媒体内容102是实况或预记录的并且客户端设备108可以遍历该内容进行查找时,可以使用图7的过程。

在步骤702,http流送器106可以从与媒体内容102的片段相关联的媒体准备单元104接收自适应输送流描述112。自适应输送流描述112可以描述关于可从媒体准备单元104获得的媒体内容102以及一个或多个相关联的自适应输送流110——诸如以不同比特率编码的媒体内容102的不同版本——的信息。媒体准备单元104可以已经编码了利用段边界点206以及块边界点210在自适应输送流描述112中标识的每个自适应输送流110,或正在对其的编码过程中,段边界点206指示在该连续自适应输送流110内的各个可切换段204的开始和/或结束点,块边界点210标记在每个可切换段204内的递送块208的开始和/或结束点。

在接收到自适应输送流描述112之后,http接收器106可以加入与媒体准备单元104相关联的多播组,并且可以开始将自适应输送流110接收到其存储器缓冲器402中。http流送器106可以针对标记自适应输送流110内的每个可切换段204的开始的段边界点206,检查在其存储器缓冲器402中接收的自适应输送流110的部分。

在步骤704,http流送器106可以发布针对客户端设备108的播放列表114。http流送器106可以在播放列表114上列出识别的可切换段的段标识符304,如图3b所示。如上所述,http流送器106可以在播放列表114上列出不完整的可切换段204,例如来自尚未在其存储器缓冲器402中完全接收的实况广播的可切换段204。以非限制性示例的方式,当http流送器106在自适应输送流110的已接收的部分中找到标记可切换段204的开始的段边界点206时,它可以在播放列表114中列出可切换段204的段标识符304,即便尚未从媒体准备单元104接收完整可切换段204。

在一些实施例中,当从媒体准备单元104接收到自适应输送流110的更多部分时,可以连续地或周期性地更新播放列表114。以非限制性示例的方式,当媒体准备单元104向http流送器106发送作为一个或多个自适应输送流110的实况广播时,http流送器106一开始接收来自媒体准备单元104的自适应输送流110,http流送器106就可以发布列出开始可切换段204的段标识符304的播放列表114的初始版本。随着接收到实况广播的更多部分,并且随着遇到标记可切换段204的结束和下一可切换段204的开始的附加段边界点206,http流送器106可以发布新的播放列表114或更新播放列表114的先前版本以添加附加可切换段204的段标识符304。

在步骤706,http流送器106可以从客户端设备108接收对于可切换段204的请求。以非限制性示例的方式,客户端设备108可以使用播放列表114上的段标识符304之一来请求在公布的播放列表114中最新近列出的可切换段204,以便近实时地回放媒体内容102。作为另一个非限制性示例,客户端设备108可以请求播放列表114中其它地方列出的可切换段204以跳回视频中的较早点。

在步骤708,http流送器106可以使用分块传输编码来将来自所请求的可切换段204的递送块208传送到作出请求的客户端设备108。在一些实施例中,http流送器106可以使用零拷贝分段将与所请求的可切换段204相关联的数据从其存储器缓冲器402直接发送到作出请求的客户端设备108。响应于客户端设备的对于最新可切换段204的请求而发送的第一递送块208可以是http流送器106的存储器缓冲器402中保持的最新近的完整递送块208。http流送器106可以使用由媒体准备单元104插入的块边界点210来识别在保持在其存储器缓冲器402中的自适应输送流110的部分内的递送块208。通过非限制性示例的方式,图6a描绘了已经部分地接收到http流送器的存储器缓冲器402内的可切换段204。尽管在存储器中仅接收了完整可切换段204中的几个帧202,但是已经接收了由块边界点210限定的完整递送块208,且http流送器106可以将递送块208发送到作出请求的客户端设备108。当媒体准备单元104将块边界点210插入自适应输送流110内以标记媒体内容102的独立可解码部分时,即使尚未接收到可切换段204的其它部分,客户端设备108也可以立即开始解码该递送块208并回放其帧202。

当响应来自客户端设备108的请求时,http流送器106可以追踪其在可切换段204内的位置,使得最新近发送的递送块208之后的下一个递送块208可以随后视情况被发送到客户端设备108。作为非限制性示例,图6b描绘了其中http流送器106已经将来自可切换段204的第一递送块208发送到作出请求的客户端设备108的情境,并且随后在其接收并检测到指示第二递送块208的结束的块边界点210时,发送来自相同的可切换段的第二递送块208。

在步骤710,http流送器106可以确定其是否已经到达自适应输送流110内的段边界点206。如果在向客户端设备108发送递送块208之后http流送器106尚未到达自适应输送流110内的段边界点206,则http流送器106可以返回到步骤708,以使用分块传输编码将来自所请求的可切换段204的下一个递送块208传送到作出请求的客户端设备108。然而,如果http流送器106在步骤710期间确定其已经到达自适应输送流110内的段边界点206,则http流送器106可以确定其已经到达当前可切换段204的结束点,并且可以移动到步骤712。作为非限制性示例,图6b-6c描绘了http流送器106向客户端设备108发送递送块208并且然后在http流送器106的存储器缓冲器402中的自适应输送流110的部分内遇见段边界点206作为下一数据片段的情境。

在步骤712,http流送器106可以将终止递送块208传送到客户端设备108,以指示客户端设备108请求的可切换段204的结束。如上所述,在一些实施例中,终止递送块208可以具有零长度。终止传送区块208可以向作出请求的客户端设备108指示与所请求的可切换段204相关联的最后的递送块208已经被发送,并且已经到达可切换段204的末尾。

在接收到终止递送块208之后,客户端设备108可以或者使用播放列表114来从处于相同或不同质量水平的自适应输送流110请求下一可切换段204,或者结束对媒体内容102的回放。

在步骤714期间,http流送器106可以确定是否已经从作出请求的客户端设备108接收到对于可切换段204的新请求。如果客户端设备108已经请求了另一可切换段204,则http流送器106可以返回到步骤708以开始将请求的可切换段204的递送块208传送到客户端设备108。如果客户端设备108未请求附加的可切换段204,则该进程可以结束,和/或http流送器106可以等待对于可切换段204的未来请求。

当客户端设备108最初请求实况视频流时,图5和图7的过程可以减少或基本上消除调谐延迟。以非限制性示例的方式,在图5中,客户端设备108可以使用播放列表114上的虚拟标识符302以从实况视频流自动请求最新的可切换段204的版本,即使http流送器106尚未接收到完整的最新可切换段。作为另一个非限制性示例,如图7所示,http流送器106可以在找到自适应输送流110中的开始段边界点206之后立即在播放列表114上列出新的可切换段204,即便http流送器106尚未接收到完整的新可切换段,并且该新的可切换段202一出现在播放列表114上客户端设备108就可以对其进行请求。

由于递送块208可以是较大可切换段204的独立可解码部分,所以http流送器106可以通过向作出请求的客户端设备108发送各个递送块208来响应对于可切换段204的请求,即便http流送器106还没有接收完整的可切换段204。这样,客户端设备108可以在由http流送器106接收到自适应输送流110之后以仅递送块208的大小的延迟来开始回放实况视频,而不是等待http流送器106接收完整的可切换段204、并且等待该完整的可切换段204进而被发送到客户端设备108。由于递送块208的大小可以是单个或部分gop、或甚至各个帧202,可以最小化初始调谐延迟。初始调谐时间的最小化进而可以最小化在回放实况内容的后续部分中的时延。

对实践实施例所需的指令序列的执行可由一个或多个计算机系统800执行,如图8所示。以非限制性示例的方式,媒体准备单元104、http流送器106、和/或客户端设备108可以是计算机系统800。尽管本文可以呈现对一个计算机系统800的描述,但是应当理解,可以采用彼此通信的任何数目的计算机系统800。

现在将参照图8来描述根据一个实施例的计算机系统800,图8是计算机系统800的功能组件的框图。如本文所使用的,术语计算机系统800广泛地用于描述可以存储和独立运行一个或多个程序的任何计算设备。

计算机系统800可以包括耦合到总线806的通信接口814。通信接口814可以在计算机系统800之间提供双向通信。相应计算机系统800的通信接口814可以发送和接收电、电磁或光信号,其包括表示各种类型的信号信息——诸如指令、消息和数据——的数据流。通信链路815可以将一个计算机系统800与另一计算机系统800链接。例如,通信链路815可以是lan、综合业务数字网(isdn)卡、调制解调器、或互联网。

计算机系统800可以通过其相应的通信链路815和通信接口814来传送和接收消息、数据和指令,其包括诸如应用或代码的程序。接收的程序代码可以在其接收时由相应的处理器807执行,和/或被存储在存储设备810或其它关联的非易失性介质中以供稍后执行。

在一些实施例中,计算机系统800可以结合数据存储系统831操作,数据存储系统831诸如包含可由计算机系统800容易地访问的数据库832的数据存储系统831。计算机系统800可以通过数据接口833与数据存储系统831通信。

计算机系统800可以包括用于传送指令、消息和数据——统称信息的总线806或其它通信机制,以及与总线806耦合以供处理信息的一个或多个处理器807。计算机系统800还可以包括主存储器808——诸如随机存取存储器(ram)或其它动态存储设备,其耦合到总线806以用于存储要由处理器807执行的动态数据和指令。计算机系统800还可以包括耦合到总线806的只读存储器(rom)809或其它静态存储设备,以用于存储用于处理器807的静态数据和指令。也可以提供存储设备810——诸如磁盘或光学盘并将其耦合到总线806,以用于存储处理器807的数据和指令。

计算机系统800可以经由总线806耦合到诸如lcd屏幕的显示设备811。诸如字母数字键和/或其它键的输入设备812可以耦合到总线806,以用于将信息和命令选择传送到处理器807。

根据一个实施例,单独的计算机系统800通过其相应的处理器807执行特定操作,处理器807执行包含在主存储器808中的一个或多个指令的一个或多个序列。这样的指令可以从另一计算机可用介质——例如rom809或存储设备810——被读入主存储器808。对主存储器808中包含的指令序列的执行可致使处理器807执行本文所述的过程。在替选实施例中,可以使用硬连线电路代替软件指令或与软件指令组合使用。因此,实施例不限于硬件电路和/或软件的任何特定组合。

虽然以上已经特别地描述了本发明,但是这仅仅为了教导本领域普通技术人员如何制造和使用本发明。许多附加的修改将落在本发明的范围内,因为该范围由所附权利要求书限定。

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