用于传递无清单流媒体内容的方法、系统和介质

文档序号:1027184 发布日期:2020-10-27 浏览:13次 >En<

阅读说明:本技术 用于传递无清单流媒体内容的方法、系统和介质 (Methods, systems, and media for delivering non-manifest streaming media content ) 是由 特里斯坦·施梅尔歇尔 威廉·西尔 托马斯·德威斯 尼尔斯·克拉恩施特弗尔 马修·卡森 帕维 于 2019-09-17 设计创作,主要内容包括:提供了用于传递无清单流媒体内容的方法、系统和介质。在一些实施例中,所述方法包括:从用户装置接收对与以多种格式提供的实时流的格式对应的URL的请求,其中,所述实时流包括用于所述多种格式中的每一种的多个分段,并且其中,所述多个分段中的每个分段包括相应的序列号;基于所述URL,将所述请求解析为所述实时流的特定分段,其中,所述解析包括:基于所述URL,从所述多种格式中识别与所述请求相关联的所述实时流的格式;基于所述URL,识别与所述请求相关联的序列号;以及识别所述多个分段中与所识别出的格式对应且具有匹配所识别出的序列号的序列号的分段;加载与所述特定分段对应的分段文件;以及响应于所述请求,向所述用户装置返回所述分段文件。(Methods, systems, and media for delivering inventory-less streaming media content are provided. In some embodiments, the method comprises: receiving, from a user device, a request for a URL corresponding to a format of a live stream provided in a plurality of formats, wherein the live stream comprises a plurality of segments for each of the plurality of formats, and wherein each of the plurality of segments comprises a respective sequence number; parsing the request into a particular segment of the live stream based on the URL, wherein the parsing comprises: identifying, based on the URL, a format of the live stream associated with the request from the plurality of formats; based on the URL, identifying a sequence number associated with the request; and identifying a segment of the plurality of segments that corresponds to the identified format and has a sequence number that matches the identified sequence number; loading a segment file corresponding to the specific segment; and returning the segmented file to the user device in response to the request.)

用于传递无清单流媒体内容的方法、系统和介质

相关申请的交叉引用

本申请要求2018年9月17日提交的美国临时专利申请第62/732,567号的权益,其通过引用整体并入本文。

技术领域

所公开的主题涉及用于传递无清单(manifestless)流媒体内容的方法、系统和介质。

背景技术

数字媒体内容共享和互联网联网的发展已使得许多特征能够增强用户体验。例如,在互联网上,内容托管网站和内容共享服务允许用户上传、观看和共享数字媒体内容,该数字媒体内容可以包括音频/音乐剪辑、视频剪辑以及音频和视频内容的组合。观看者可以观看从内容共享服务器流传输到观看装置以供回放的媒体内容。为了防止中断媒体内容的回放的缓冲,可以用自适应比特率协议(诸如HTTP实时流传输(HLS))来流传输内容。

HLS是用于通过HTTP从网络服务器流传输音频和视频以在各种计算装置上回放的网络协议,其中,流内容的质量可以根据观看装置的网络连接而改变。然而,用于流媒体的现有的基于HLS的方法面临许多挑战。一个挑战是高时延。例如,在客户端装置可以回放任何视频内容之前,现有的基于HLS的方法要求客户端装置进行三次往返于内容共享服务器的行程。三个往返行程包括取得主播放列表的行程、取得媒体播放列表的另一行程和取得初始媒体分段的又一行程。这种要求大大增加了内容回放的时延,尤其是在往返时间(RTT)高的情况下,诸如在无线网络上。

当客户端使用的媒体播放器不支持流选择时,用于流媒体回放的现有方法(诸如HLS或通过HTTP的动态自适应流传输(DASH))也缺乏客户端对流选择的控制。例如,使用这种媒体播放器来使用HLS协议进行流传输视频的客户端无法控制要取得哪些媒体分段以及何时取得它们。如果流视频可以以多种比特率或分辨率供使用,则要求客户端向媒体播放器提供主播放列表URL,其中,主播放列表包含所有可用的媒体播放列表,每个媒体播放列表与呈特定比特率或分辨率的流视频的表示对应。在回放期间,媒体播放器决定选择流视频的哪种表示来回放。

此外,用于流视频内容回放的现有方法不能有效地支持实时视频流。在流媒体的实时回放期间,要求现有的基于HLS的流视频方法的客户端每隔几秒钟重新取得新媒体分段的实时播放列表。特别地,这些协议并入了清单文件,客户端必须定期下载该清单文件以发现流媒体的新媒体分段。周期性清单下载和分段大小是这些协议中的端到端时延限制的示例。

因此,需要提供用于传递无清单流媒体内容的新方法、系统和介质。

发明内容

提供了用于传递无清单流媒体内容的方法、系统和介质。(“无清单”流媒体内容意味着在不需要客户端下载清单文件的情况下实现流媒体内容的传递。)

根据所公开的主题的一些实施例,提供了一种用于传递实时流内容的方法,该方法包括:从用户装置接收对与以多种格式提供的实时流的格式对应的URL的请求,其中,实时流包括用于多种格式中的每一种的多个分段,并且其中,多个分段中的每个分段包括相应的序列号;基于请求的URL,将请求解析为实时流的特定分段,其中,解析包括:基于请求的URL,从多种格式中识别与请求相关联的实时流的格式;基于请求的URL,识别与请求相关联的序列号;以及识别多个分段中与识别出的格式对应且具有匹配识别出的序列号的序列号的分段;加载与特定分段对应的分段文件;以及响应于请求,向用户装置返回分段文件。

在一些实施例中,URL包括基本URL,并且其中,基于基本URL,从多种格式中识别与请求相关联的实时流的格式。

在一些实施例中,分段文件包括指示识别出的序列号的元数据。

在一些实施例中,序列号通过确定可用于回放一个或多个分段的最新分段的当前头序列号来识别,其中,识别出的序列号是当前头序列号,并且其中,识别出的分段是可用于回放的最新分段。

在一些实施例中,序列号通过识别与请求相关联的大于基于URL可用于加载的最新完整分段的序列号的序列号来识别。

在一些实施例中,方法进一步包括:当正在生成分段文件的一个或多个部分时,迭代地加载该一个或多个部分;以及在单个响应中迭代地向用户装置返回生成的一个或多个部分。

根据所公开的主题的一些实施例,提供了一种用于传递实时流内容的系统,该系统包括:存储器;以及硬件处理器,其耦合到存储器,该硬件处理器被配置成:从用户装置接收对与以多种格式提供的实时流的格式对应的URL的请求,其中,实时流包括用于多种格式中的每一种的多个分段,并且其中,多个分段中的每个分段包括相应的序列号;基于URL,将请求解析为实时流的特定分段,其中,解析包括:基于URL,从多种格式中识别与请求相关联的实时流的格式;基于URL,识别与请求相关联的序列号;以及识别多个分段中与识别出的格式对应且具有匹配识别出的序列号的序列号的分段;加载与特定分段对应的分段文件;以及响应于请求,向用户装置返回分段文件。

根据所公开的主题的一些实施例,提供了一种包含计算机可执行指令的非暂时性计算机可读介质,在由处理器执行时,这些计算机可执行指令使得处理器执行用于传递实时流内容的方法,该方法包括:从用户装置接收对与以多种格式提供的实时流的格式对应的URL的请求,其中,实时流包括用于多种格式中的每一种的多个分段,并且其中,多个分段中的每个分段包括相应的序列号;基于请求的URL,将请求解析为实时流的特定分段,其中,解析包括:基于请求的URL,从多种格式中识别与请求相关联的实时流的格式;基于请求的URL,识别与请求相关联的序列号;以及识别多个分段中与识别出的格式对应且具有匹配识别出的序列号的序列号的分段;加载与特定分段对应的分段文件;以及响应于请求,向用户装置返回分段文件。根据所公开的主题的其它实施例,提供了一种计算机可读介质,其可以是暂时性计算机可读介质或非暂时性计算机可读介质。计算机可读介质包含计算机可执行指令,当由处理器执行时,这些计算机可执行指令使得处理器执行根据任何方面或实施例的用于传递实时流内容的方法。

根据所公开的主题的一些实施例,提供了一种用于传递实时流内容的系统,该系统包括:用于从用户装置接收对与以多种格式提供的实时流的格式对应的URL的请求的装置,其中,实时流包括用于多种格式中的每一种的多个分段,并且其中,多个分段中的每个分段包括相应的序列号;用于基于请求的URL将请求解析为实时流的特定分段的装置,其中,该用于解析的构件包括:用于基于请求的URL从多种格式中识别与请求相关联的实时流的格式的构件;用于基于请求的URL识别与请求相关联的序列号的装置;以及用于识别多个分段中与识别出的格式对应且具有匹配识别出的序列号的序列号的分段的装置;用于加载与特定分段对应的分段文件的装置;以及用于响应于请求向用户装置返回分段文件的装置。

附图说明

当结合以下附图考虑时,参考对所公开的主题的以下详细描述,可以更充分地了解所公开的主题的各种目的、特征和优点,其中,类似的附图标记标识类似的元件。

图1示出了根据所公开的主题的一些实施例的用于传递无清单流媒体内容的信息流程图的示例。

图2示出了根据所公开的主题的一些实施例的用于解析对内容流的分段的URL的请求的过程的示例。

图3示出了根据所公开的主题的一些实施例的用于传递匹配内容流的分段的信息流程图的示例。

图4示出了根据所公开的主题的一些实施例的用于传递针对内容流的历史中的指定点的分段的信息流程图的示例。

图5示出了根据所公开的主题的一些实施例的用于增量流传输的信息流程图的示例。

图6示出了根据所公开的主题的一些实施例的适用于实施本文中所描述的用于传递无清单流媒体内容的机制的说明性系统的示意图。

图7示出了根据所公开的主题的一些实施例的可用于图6的服务器和/或用户装置的硬件的详细示例。

具体实施方式

根据各种实施例,提供了用于传递流内容的机制(这些机制可以包括方法、系统和介质)。在一些实施例中,本文中所描述的机制可以允许支持任意应用级别的元数据,而无需在内容传递网络级别上的支持来缓存与分段文件分离的元数据。另外或可替代地,在一些实施例中,本文中所描述的机制可以允许流内容的传递而无需定期传递包含元数据和/或信息的单独清单文件以发现内容流的新分段,从而减少了端到端时延。另外或可替代地,在一些实施例中,本文中所描述的机制可以允许用户装置访问流的非头分段,这允许控制要取得哪个(哪几个)媒体分段。

在一些实施例中,本文中所描述的机制可以用于传递流内容。例如,在一些实施例中,本文中所描述的机制可以用于请求用于内容流的回放的统一资源定位符(URL),如下文结合图1所描述。在更特定的示例中,URL可以包括与内容流的格式对应的基本URL。在继续该示例时,在一些实施例中,URL还可以包括用于指示与请求相关联的序列号的一个或多个URL参数。

在一些实施例中,可以提供内容流来以一种或多种格式(诸如编解码器格式、分辨率格式、音频格式、视频格式和/或任何其它合适的格式)回放。例如,在一些实施例中,由广播公司或内容创建者以1280x 720像素分辨率上传的内容流可以具有720p H.264视频(1280x 720像素)、480p H.264视频(854x 480像素)、360p H.264视频(640x360像素)、240pH.264视频(426x 240像素)、144p H.264视频(256x 144像素)、AAC音频的格式和/或任何其它合适的格式。在一些实施例中,对于可用于回放的视频和/或音频的每种格式,可以将内容流分段成近似恒定持续时间的一个或多个分段。在一些实施例中,每个分段的持续时间可以是几秒钟或任何其它合适的持续时间。在一些实施例中,内容流可以是实时流。

在一些实施例中,web服务器可以为可用于回放的内容流的每种格式(例如编解码器格式、分辨率格式、音频格式、视频格式和/或任何其它合适的格式)提供一个基本URL。继续上文示例,在一些实施例中,web服务器可以为720p H.264视频、480p H.264视频、360pH.264视频、240p H.264视频、144p H.264视频、AAC音频和/或任何其它合适的格式中的每一个提供一个基本URL。在一些实施例中,基本URL可以用于超文本传送协议(HTTP)、超文本传送协议安全(HTTPS)协议、快速UDP互联网连接(QUIC)协议和/或任何其它合适的协议。

在一些实施例中,每种格式的基本URL可以定位该格式的动态确定的头分段文件。在一些实施例中,头分段可以是可用于被加载的实时流的最新分段。在一些实施例中,可以将对基本URL的请求解析为由序列号识别的特定分段,其中,序列号可以是分段时间线的密集整数索引(其中,“密集”索引是索引条目针对索引值出现的索引)。例如,在一些实施例中,流的第一分段可具有序列号0,其中,每个连续分段可以使其相应的分段号增加1(或任何其它合适的增量值)。

在一些实施例中,用户装置可以通过向请求中的基本URL添加一个或多个URL参数来访问流的非头分段。例如,在一些实施例中,向识别特定内容流的基本URL添加“sq”参数可以通过序列号来定位该流的特定分段。继续该示例,在一些实施例中,向基本URL添加“sq=0”可以定位由基本URL识别的流的第一分段,添加“sq=1”可以定位流的第二分段等。作为另一示例,在一些实施例中,向基本URL添加“headm”参数可以将作为指定数量的分段的流的分段定位在头分段之后。继续该示例,在一些实施例中,向基本URL添加“headm=1”可以定位紧接在头分段之前的分段,向基本URL添加“headm=2”可以定位头分段之前两个分段的分段等。在一些实施例中,向基本URL添加“headm=0”可以等效于不提供任何“headm”参数。

在一些实施例中,本文中所描述的机制可以用于将请求解析为内容流的分段,如下文结合图1和2所描述。例如,在一些实施例中,本文中所描述的机制可以用于接收对URL的请求,识别与请求相关联的内容流的格式,识别与请求相关联的序列号和/或识别与请求相关联的内容流的分段,如下文结合图2所描述。在一些实施例中,本文中所描述的机制可以用于加载与识别出的分段相关联的分段文件和/或返回分段文件,如下文结合图1所描述。应注意,在一些实施例中,本文中所描述的机制可以用于将元数据嵌入分段文件的容器格式中。因此,在一些实施例中,本文中所描述的机制可以允许支持任意应用级别的元数据,而无需在内容传递网络级别上的支持来缓存与分段文件分离的元数据。另外,在一些实施例中,本文中所描述的机制可以允许流内容的传递而无需定期传递包含元数据和/或信息的单独清单文件以发现内容流的新分段,从而减少了端到端时延。

在一些实施例中,本文中所描述的机制可以用于传递内容流的匹配分段。例如,在一些实施例中,本文中所描述的机制可以用于检测从内容传递网络接收到的内容流的分段之间的不匹配,例如检测流的一个文件(诸如音频分段文件)的分段的序列号与流的另一文件(诸如视频分段文件)的分段的序列号之间的不匹配,如下文结合图3所描述。在一些实施例中,本文中所描述的机制可以用于请求内容流的下一(多个)分段的一个或多个URL和/或返回一个或多个对应的分段文件,如下文结合图3所描述。例如,在一些实施例中,在响应于对尚未生成的分段的请求之前,本文中所描述的机制可以用于等待预定时间量,如下文结合图3所描述。因此,在一些实施例中,本文中所描述的机制可以允许播放器应用在下一分段存在之前发布对下一分段的请求,从而减少和/或消除网络请求时延的贡献,这可以减少端到端时延。

在一些实施例中,本文中所描述的机制可以用于传递针对内容流的历史中的指定点的分段。例如,在一些实施例中,本文中所描述的机制可以用于检测寻找内容流的历史中的点的输入,诸如与内容流的时间线表示相关联的用户输入和/或任何其它合适的输入,如下文结合图3所描述。在一些实施例中,本文中所描述的机制可以用于请求与内容流的历史中的点对应的URL,将请求解析为内容流的历史中的点对应的分段,和/或返回与分段相关联的分段文件,如下文结合图3所描述。在一些实施例中,本文中所描述的机制可以用于播放返回的内容和/或迭代地发布请求以接近历史中的期望点。因此,在一些实施例中,本文中所描述的机制可以允许用户观看实时流的历史部分,诸如在用户在实时流已经开始之后加入实时流的情况下。

在一些实施例中,本文中所描述的机制可以用于递增地流传输内容。例如,在一些实施例中,本文中所描述的机制可以用于将对URL的请求解析为仍在生成的分段和/或迭代地返回该分段的分段文件的部分。作为更特定的示例,在一些实施例中,本文中所描述的机制可以用于首先返回该分段的当前已生成的一部分,并且然后以与正在生成数据的响应相同的响应递增地返回该分段的数据的其余部分。因此,在一些实施例中,即使在具有大分段大小的效率益处时,本文中所描述的机制也可以允许以低时延播放实时流。

在一些实施例中,本文中所描述的机制可以用于改善计算机网络内容流传输。例如,在一些实施例中,本文中所描述的机制可以通过使用针对内容流的每种格式的基本URL集合来初始化回放并通过将以其它方式包括在清单文件中的元数据嵌入分段文件中来避免清单文件的周期性传递,从而减少端到端时延,该基本URL集合各自针对该格式定位动态确定的头分段文件。作为另一示例,本文中所描述的机制可以支持实时流的自适应分辨率回放,并且可以允许回放实时流的历史部分。作为又一示例,本文中所描述的机制可以支持播放具有少于一个端到端时延分段的流,以允许在大分段大小的效率的情况下以低时延进行回放。

结合图1至7进一步描述用于传递无清单流媒体内容的这些和其它特征。

转向图1,示出了根据所公开的主题的一些实施例的用于传递流内容的信息流程图的说明性示例100。如所图示,信息流程图100的方框可以由一个或多个合适的计算装置(诸如一个或多个服务器、一个或多个用户装置和/或(多个)任何其它合适的计算装置)执行,如图6和7中所示出和下文结合图6和7所描述。

在102处,用户装置可以请求用于回放的URL。例如,在一些实施例中,在用户装置上执行的播放器应用可以请求用于内容流的回放的URL。在一些实施例中,URL可以包括由web服务器提供并且与流的格式对应的基本URL以及与序列号对应的“sq”参数、与头分段之后的多个分段对应的“headm”参数和/或任何其它合适的URL参数或信息中的一个或多个。如下文所描述,在一些实施例中,用户装置可以例如将一个或多个参数附加到请求的基本URL。

注意,在一些实施例中,内容流可以是实时流并且可以以一种或多种格式(例如编解码器格式、分辨率格式、音频格式、视频格式和/或任何其它合适的格式)提供。在一些实施例中,实时流可以针对每种格式包括一个或多个分段,并且每个分段可以具有相应的序列号。

在一些实施例中,用户装置可以以任何合适的方式请求用于回放的URL。在一些实施例中,用户装置可以基于一个或多个因素(诸如最佳回放分辨率、内容流的历史中的指定时间点和/或任何其它合适的因素)来请求URL。例如,在一些实施例中,用户装置可以基于当前可用网络带宽、用户装置的屏幕大小、用户装置的当前可用硬件资源和/或任何其它合适的基础中的一个或多个,使用智能回放分辨率选择来自动请求与适当格式对应的基本URL。另外或可替代地,在一些实施例中,用户装置可以将一个或多个参数(诸如“sq”参数、“headm”参数和/或任何其它合适的URL参数)附加到请求的基本URL,以有助于寻找历史中的指定点。

在104处,内容传递网络可以将对来自用户装置的URL的请求解析为流的特定分段。在一些实施例中,内容传递网络可以使用任何合适的信息(诸如包括URL中的任何额外参数的基本URL)将请求解析为由序列号识别出的特定分段。在一些实施例中,内容传递网络可以以任何合适的方式将对URL的请求解析为特定分段。

例如,转向图2,示出了根据所公开的主题的一些实施例的用于解析对内容流的分段的URL的请求的过程的说明性示例200。如所图示,过程200的方框可以由一个或多个合适的计算装置(诸如一个或多个服务器、一个或多个用户装置和/或(多个)任何其它合适的计算装置)执行,如图5和6中所示出和下文结合图5和6所描述。在一些实施例中,过程200的方框可以结合图1的方框104来执行。

在202处,内容传递网络可以以任何合适的方式从用户装置接收对URL的请求。

在204处,内容传递网络可以基于URL识别与请求相关联的内容流的格式。例如,在一些实施例中,内容传递网络可以通过从请求的URL中识别与基本URL相关联的格式,来从内容流的一种或多种可用格式中确定请求的格式。

在206处,内容传递网络可以基于URL识别与请求相关联的序列号。例如,在一些实施例中,诸如通过查询头序列号的缓存来确定当前头序列号,内容传递网络可以将基本URL解析为头序列号(或头分段的序列号)。另外或可替代地,在一些实施例中,内容传递网络可以针对头序列号向内容流的源服务器输送查询,并且作为响应,源服务器可以返回当前头序列号,诸如在106处。作为另一示例,在一些实施例中,内容传递网络可以基于URL中包括的“headm”参数和/或“sq”参数来识别与请求相关联的序列号。

在208处,内容传递网络可以识别与请求相关联的内容流的分段。在一些实施例中,内容传递网络可以识别分段,该分段具有匹配与基本URL相关联的识别出的格式的格式并且具有匹配与请求相关联的识别出的序列号的序列号。

返回图1,在108处,内容传递网络可以加载与由请求中的序列号指代的识别出的分段相关联的分段文件。在一些实施例中,内容传递网络可以以任何合适的方式加载分段文件。例如,在一些实施例中,内容传递网络可以从一个或多个缓存和/或任何其它合适的位置加载分段文件。作为另一示例,在一些实施例中,内容传递网络可以针对分段文件向内容流的源服务器输送查询,并且作为响应,源服务器可以返回请求的分段文件,诸如在110处。在一些实施例中,内容传递网络可以解析头序列号,并且可以在单个查询中将头分段的内容加载到源服务器。

在一些实施例中,分段文件可以包括音频内容、视频内容和/或任何其它合适的内容和/或数据。在一些实施例中,分段文件可以包括嵌入在音频或视频容器格式内的应用级别的元数据。在一些实施例中,可以使用容器格式支持的用于嵌入媒体解码器未解译的信息的机制来将元数据嵌入在容器格式内。例如,在一些实施例中,当容器格式是FMP4时,元数据可以嵌入“emsg”原子中。作为另一示例,在一些实施例中,当容器格式是WebM时,元数据可以嵌入tags元素中。应当注意,在一些实施例中,可以使用用于任何合适的容器格式的任何合适的机制来嵌入元数据。

还应当注意,元数据可以包括任何合适的信息。例如,在一些实施例中,元数据可以包括ASCII键值对。作为更特定的示例,在一些实施例中,键值对可以具有“键:值”的形式,并且可以由换行符分隔。作为甚至更特定的示例,在一些实施例中,元数据可以包括用于键“序列号”和值的键值对,该值等于利用其可以诸如通过使用“sq”URL参数来定位分段文件的序列号。在一些实施例中,可以根据与HTTP响应标头相同的规则对键值对进行编码。

在112处,内容传递网络可以以任何合适的方式向用户装置返回请求的分段文件。例如,在一些实施例中,内容传递网络可以将分段文件作为HTTP响应和/或任何其它合适类型的响应返回。

在114处,用户装置可以从内容传递网络接收分段文件并加载分段文件。例如,在一些实施例中,在用户装置上执行的播放器应用可以从分段文件提取视频内容和/或音频内容以进行回放。另外或可替代地,播放器应用可以从分段文件的元数据中提取序列号键的值,以便确定内容传递网络已经返回了哪个分段文件。注意,在一些实施例中,当播放器应用加载具有不确定序列号的分段文件时,诸如当响应于对基本URL的请求或使用“headm”参数来加载分段文件时,播放器应用可以确定已经返回了哪个分段文件。

返回图3,示出了根据所公开的主题的一些实施例的用于传递内容流的匹配分段的信息流程图的说明性示例。如所图示,信息流程图300的方框可以由一个或多个合适的计算装置(诸如一个或多个服务器、一个或多个用户装置和/或(多个)任何其它合适的计算装置)执行,如图6和7中所示出和下文结合图6和7所描述。

在302处,用户装置可以检测从内容传递网络接收到的内容流的分段之间的不匹配。例如,在一些实施例中,在用户装置上执行的播放器应用可以诸如通过从每个分段文件的元数据中提取序列号键的值,检测从内容传递网络接收到的音频分段文件的序列号与视频分段文件的序列号之间的不匹配。应当注意,用户装置可以以任何合适的方式检测分段之间的不匹配。

在304处,用户装置可以请求用于内容流的下一(多个)分段的一个或多个URL。例如,在一些实施例中,在用户装置上执行的播放器应用可以针对下一音频分段和/或下一视频分段的每一个,请求基本URL,该基本URL包括设置为序列号键的当前值加1的“sq”参数。注意,在一些实施例中,播放器应用可以在音频分段文件的序列号与视频分段文件的序列号之间确定更高的序列号,并且播放器应用可以将“sq”参数设置为较高的序列号加1。应当注意,用户装置可以以任何合适的方式请求(多个)URL。

在306处,内容传递网络可以从用户装置接收对一个或多个URL的一个或多个请求,并且可以将(多个)请求解析为内容流的下一(多个)分段。在一些实施例中,内容传递网络可以以任何合适的方式来解析来自用户装置的对URL的请求,诸如上文结合图2所描述。在一些实施例中,内容传递网络可以确定请求包括“sq”参数,该参数被设置为大于可用于加载的最新分段的序列号的值。在一些实施例中,在向源服务器查询下一分段之前和/或对来自用户装置的请求做出响应之前,内容传递网络可以等待预定持续时间(例如几秒钟和/或任何合适的持续时间)以生成下一分段。

在308处,内容传递网络可以加载与由请求中的序列号指代的(多个)分段相关联的(多个)分段文件。在一些实施例中,内容传递网络可以针对(多个)分段文件向内容流的源服务器输送查询,并且作为响应,源服务器可以返回请求的(多个)分段文件,诸如在310处。在一些实施例中,在对来自内容传递网络的(多个)请求做出响应之前,源服务器可以等待预定持续时间(例如几秒钟和/或任何合适的持续时间)以生成下一(多个)分段。

在312处,内容传递网络可以以任何合适的方式向用户装置返回(多个)请求的分段文件。例如,在一些实施例中,内容传递网络可以将(多个)分段文件作为HTTP响应返回。

在314处,用户装置可以从内容传递网络接收(多个)分段文件,并且可以以任何合适的方式加载具有匹配序列号的(多个)分段文件。例如,在一些实施例中,在用户装置上执行的播放器应用可以从分段文件提取视频内容和/或音频内容以进行回放。

转向图4,示出了根据所公开的主题的一些实施例的用于传递针对内容流的历史中的指定点的分段的信息流程图的说明性示例。如所图示,信息流程图300的方框可以由一个或多个合适的计算装置(诸如一个或多个服务器、一个或多个用户装置和/或(多个)任何其它合适的计算装置)执行,如图6和7中所示出和下文结合图6和7所描述。

在402处,用户装置可以以任何合适的方式检测输入以寻找内容流的历史中的点。例如,在一些实施例中,播放器应用可以检测到用户已经选择了与内容流的时间线对应的视觉表示的一部分,以指定历史中要寻找的点和/或任何其它合适的输入。

注意,在一些实施例中,源服务器可以针对每个内容流使用预定的近似一致的分段持续时间,因此,两个分段之间流逝的流时间的相对差可以近似等于它们的序列号值的差乘以内容流的预定分段持续时间。例如,在一些实施例中,在给定的三秒的预定分段持续时间下,内容流的第一分段与内容流的第十分段之间流逝的流时间可以近似等于:(10×3秒)–(0×3秒)=30秒。

在404处,用户装置可以以任何合适的方式请求与内容流的历史中的指定点对应的分段的URL。例如,在一些实施例中,播放器应用可以诸如通过使用“sq”参数和/或任何其它合适的URL参数来请求分段的URL,该分段的流逝的流时间近似等于内容流的历史中的指定点。作为更特定的示例,在一些实施例中,在给定三秒的预定分段持续时间和对寻找与到内容流中的三十秒对应的点的用户请求,播放器应用可以通过使用设置为值10的“sq”参数来请求第十分段的URL。

在406处,在一些实施例中,内容传递网络可以将来自用户装置的对URL的请求解析为流的特定分段,诸如使用请求中的“sq”参数由序列号识别出。在一些实施例中,内容传递网络可以以任何合适的方式来解析来自用户装置的对URL的请求,诸如上文结合图2所描述。

在408处,内容传递网络可以加载与由请求中的序列号指代的分段相关联的分段文件。例如,在一些实施例中,内容传递网络可以从一个或多个缓存、内容流的源服务器和/或任何其它合适的位置加载分段文件。

在410处,内容传递网络可以以任何合适的方式向用户装置返回请求的分段文件。例如,在一些实施例中,内容传递网络可以将分段文件作为HTTP响应和/或任何其它合适类型的响应返回。另外,在一些实施例中,内容传递网络可以返回识别当前头序列号、确切的当前流逝的流时间和/或任何其它合适信息的HTTP响应标头。

在412处,用户装置可以从内容传递网络接收分段文件并加载分段文件。例如,在一些实施例中,播放器应用可以诸如通过从分段文件的元数据中提取序列号键的值或以任何其它合适的方式,确定内容传递网络已经返回了哪个分段文件和/或序列文件的流逝的流时间。

在414处,用户装置可以基于返回的分段文件的流逝的流时间来确定是否播放返回的分段文件。例如,在一些实施例中,播放器应用可以将返回的分段的流逝的流时间与内容流的历史中的指定点进行比较。如果播放器应用确定返回的分段的流逝的流时间匹配内容流的历史中的指定点,则在一些实施例中,播放器应用可以在416处播放返回的分段文件的内容。如果播放器应用确定返回的分段的流逝的流时间不匹配内容流的历史中的指定点,则在一些实施例中,播放器应用可以在416处从返回的分段文件的流逝的流时间开始继续播放内容,或播放器应用可以返回404以迭代地分布请求以接近期望的流逝的流时间。

注意,在一些实施例中,当在416中播放内容时,用户装置可以使用来自在410处返回的响应标头的信息。例如,在一些实施例中,即使在播放器应用正在播放内容流的历史部分时,回放应用也可以使用当前头序列号和/或确切的当前流逝的流时间来扩展包括新生成的分段的时间线的视觉表示。

转向图5,示出了根据所公开的主题的一些实施例的用于增量流传输的信息流程图的说明性示例。如所图示,信息流程图500的方框可以由一个或多个合适的计算装置(诸如一个或多个服务器、一个或多个用户装置和/或(多个)任何其它合适的计算装置)执行,如图6和7中所示出和下文结合图6和7所描述。

在502处,用户装置可以请求用于回放的URL。例如,在一些实施例中,在用户装置上执行的播放器应用可以请求包括基本URL、设置为值0的“headm”参数和/或设置为仍在生成的分段的序列号的“sq”参数的URL。

在504处,内容传递网络可以以任何适当方式将来自用户装置的对URL的请求解析为仍在生成的分段。在一些实施例中,内容传递网络可以以任何合适的方式来解析来自用户装置的对URL的请求,诸如上文结合图2所描述。

在506处,内容传递网络可以以任何合适的方式针对请求的分段加载分段文件的(多个)部分。例如,在一些实施例中,内容传递网络可以向内容流的源服务器查询请求的分段文件的一个或多个部分。

在508处,源服务器可以接收对于仍在生成的分段的请求,并且可以在正在生成分段的部分时递增地返回这些部分。例如,在一些实施例中,源服务器可以首先向内容传递网络返回当前已生成的分段的部分,并且然后在于510处继续生成数据时以相同的响应递增地返回该分段的数据的其余部分。

注意,在一些实施例中,源服务器和/或内容传递网络可以使用允许返回具有不确定的字节长度的响应的响应编码来返回分段的生成部分。例如,在一些实施例中,源服务器和/或内容传递网络可以使用分块的传送编码(诸如当使用HTTP协议时由HTTP响应标头“传送编码:分块”所标识)来做出响应。另外,在一些实施例中,响应可以使用支持增量流传输的容器格式。例如,在一些实施例中,容器格式可以为音频和/或视频的每一帧包括一个“moof”原子。

在512处,当在单个响应中从源服务器接收到分段的一个或多个部分时,内容传递网络可以向用户装置返回该一个或多个部分。

在514处,用户装置可以从内容传递网络接收和加载分段的部分。

转向图6,示出了根据所公开的主题的一些实施例的用于传递可使用的流内容的硬件的示例600。如所图示,硬件600可以包括源服务器602、包括一个或多个服务器(诸如服务器606和服务器608)的内容传递网络604、通信网络610、一个或多个用户装置612(诸如用户装置614和用户装置616)和/或网络服务器618。

源服务器602可以是用于存储信息、数据、程序和/或用于传递流内容的任何其它合适类型的内容的任何合适的服务器。在一些实施例中,源服务器602可以存储用于内容流的每种格式的一个或多个分段文件。在一些实施例中,源服务器602可以存储实时流的头分段的当前头序列号。在一些实施例中,源服务器602可以存储任何其它合适的内容或信息。在一些实施例中,源服务器602可以执行(多个)任何合适的功能,诸如返回头序列号,返回一个或多个分段文件,和/或在生成一个或多个分段的一个或多个部分时递增地返回该一个或多个部分,如上文结合图1和3至5所描述。

内容传递网络604可以是用于存储信息、数据程序和/或用于传递流内容的任何其它合适类型的内容的任何合适的网络。注意,在一些实施例中,如本文中所描述的内容传递网络可以由一个或多个合适的计算装置(诸如服务器606和/或服务器608,其可以是用于存储信息、数据、程序和/或任何其它合适类型的内容的(多个)任何合适的服务器)来实施。例如,在一些实施例中,服务器606和/或服务器608可以存储用于内容流的一种或多种格式的一个或多个分段文件。另外,在一些实施例中,服务器606和/或服务器608可以诸如在一个或多个缓存中存储用于实时流的一个或多个头序列号。在一些实施例中,源服务器602可以执行(多个)任何合适的功能,诸如接收对URL的请求、将请求解析为内容流的分段、识别格式、识别序列号、识别分段、加载分段文件、返回一个或多个分段文件和/或在生成一个或多个分段的一个或多个部分时递增地返回该一个或多个部分,如上文结合图1至5所描述。

在一些实施例中,通信网络610可以是一个或多个有线和/或无线网络的任何合适组合。例如,通信网络610可以包括互联网、内联网、广域网(WAN)、局域网(LAN)、无线网络、数字用户线(DSL)网络、帧中继网络、异步传送模式(ATM)网络、虚拟专用网络(VPN)和/或任何其它合适的通信网络中的任何一个或多个。在一些实施例中,源服务器602可以通过一个或多个通信链路经由内容传递网络604连接到通信网络610。在一些实施例中,通信网络610可以经由一个或多个通信链路链接到内容传递网络604、(多个)用户装置612和/或web服务器618。通信链路可以是适用于在(多个)用户装置612、源服务器602、内容传递网络604以及web服务器618之间传送数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其它合适的通信链路或这些链路的任何合适组合。

网络服务器618可以是用于存储信息、数据、程序和/或任何其它合适类型的内容的(多个)任何合适的服务器。在一些实施例中,web服务器618可以执行(多个)任何合适的功能,诸如提供用于内容流的一种或多种格式的一个或多个基本URL,如上文结合图1至5所描述。

(多个)用户装置612可以包括用于呈现流内容的任何一个或多个用户装置。例如,在一些实施例中,(多个)用户装置612可以包括电视、扬声器、移动电话、平板计算机、台式计算机、膝上型计算机、车辆娱乐系统、可穿戴式计算机和/或任何其它合适类型的用户装置。在一些实施例中,(多个)用户装置612可以包括存储在存储器中并且由(多个)用户装置612执行的播放器应用,以用于呈现流内容。在一些实施例中,(多个)用户装置612可以执行(多个)任何合适的功能,诸如请求用于回放的URL、检测流的不匹配分段、检测输入以寻找流的历史中的点、加载接收到的分段文件和/或播放内容,如上文结合图1至5所描述。

尽管源服务器602、服务器606、服务器608和web服务器618均被图示为一个装置,但是在一些实施例中,由源服务器602、服务器606、服务器608和网络服务器618执行的功能可以使用任何合适数量的装置来执行。例如,在一些实施例中,可以使用多个装置来实施由源服务器602、服务器606、服务器608和网络服务器618中的每一个执行的功能。

尽管在图6中示出了两个用户装置614和616以免使附图过于复杂,但在一些实施例中,可以使用任何合适数量的用户装置和/或任何合适类型的用户装置。

在一些实施例中,可以使用任何合适的硬件来实施源服务器602、服务器606、服务器608、用户装置612和网络服务器618。例如,在一些实施例中,可以使用任何合适的通用计算机或专用计算机来实施装置602、606、608、612和618。例如,可以使用专用计算机来实施移动电话。任何这种通用计算机或专用计算机可以包括任何合适的硬件。例如,如图7的示例硬件700中所图示,这种硬件可以包括硬件处理器702、存储器和/或存储装置704、输入装置控制器706、输入装置708、显示/音频驱动器710、显示和音频输出电路系统712、(多个)通信接口714、天线716和总线718。

在一些实施例中,硬件处理器702可以包括任何合适的硬件处理器,诸如微处理器、微控制器、(多个)数字信号处理器、专用逻辑和/或用于控制通用计算机或专用计算机的功能的任何其它合适的电路系统。在一些实施例中,硬件处理器702可以由存储在服务器(诸如服务器606和/或服务器608)的存储器和/或存储装置中的服务器程序控制。例如,在一些实施例中,服务器程序可以使得硬件处理器702接收对URL的请求,将请求解析为内容流的分段,识别格式,识别序列号,识别分段,返回头序列号,加载分段文件,返回一个或多个分段文件,在生成一个或多个分段的一个或多个部分时递增地返回该一个或多个部分,为内容流的一种或多种格式提供一个或多个基本URL,和/或执行任何其它合适的功能。在一些实施例中,硬件处理器702可以由存储在用户装置(诸如用户装置612和/或用户装置616)的存储器和/或存储装置中的程序控制。例如,在一些实施例中,程序可以使得硬件处理器702请求用于回放的URL、检测流的不匹配分段、检测输入以寻找流的历史中的点、加载接收到的分段文件、播放内容和/或执行任何其它合适的功能。

在一些实施例中,存储器和/或存储装置704可以是用于存储程序、数据和/或任何其它合适的信息的任何合适的存储器和/或存储装置。例如,存储器和/或存储装置704可以包括随机存取存储器、只读存储器、闪速存储器、硬盘存储装置、光学介质和/或任何其他它合适的存储器。

在一些实施例中,输入装置控制器706可以是用于控制和接收来自一个或多个输入装置708的输入的任何合适的电路系统。例如,输入装置控制器706可以是用于接收来自触摸屏、键盘、一个或多个按钮、语音识别电路、麦克风、相机、光学传感器、加速度计、温度传感器、近场传感器、压力传感器、编码器和/或任何其它类型的输入装置的输入的电路系统。

在一些实施例中,显示/音频驱动器710可以是用于控制和驱动对一个或多个显示/音频输出装置712的输出的任何合适的电路系统。例如,显示/音频驱动器710可以是用于驱动触摸屏、平板显示器、阴极射线管显示器、投影仪、一个或多个扬声器和/或任何其它合适的显示器和/或呈现装置的电路系统。

(多个)通信接口714可以是用于与一个或多个通信网络(例如通信网络610)进行接口的任何合适的电路系统。例如,(多个)接口714可以包括网络接口卡电路系统、无线通信电路系统和/或任何其它合适类型的通信网络电路系统。

在一些实施例中,天线716可以是用于与通信网络(例如通信网络610)无线通信的任何合适的一个或多个天线。在一些实施例中,可以省略天线716。

在一些实施例中,总线718可以是用于在两个或两个以上组件702、704、706、710以及714之间进行通信的任何合适的机制。

根据一些实施例,任何其它合适的组件可以包括于硬件700中。

在一些实施例中,图1至5的过程中的上文所描述的方框中的至少一些可以以任何次序或顺序(不限于在附图中所示出且结合附图所描述的次序和顺序)来实施或执行。同样,可以适当或并行地基本同时实施或执行上述图1至5的方框中的一些,以减少时延和处理时间。另外或可替代地,可以省略上文所描述的图1至5的过程的方框中的一些。

在一些实施例中,任何合适的计算机可读介质可以用于存储用于执行本文中的功能和/或过程的指令。例如,在一些实施例中,计算机可读介质可以是暂时性或非暂时性的。例如,非暂时性计算机可读介质可以包括如下介质,诸如非暂时性形式的磁性介质(诸如硬盘、软盘和/或任何其它合适的磁性介质)、非暂时性形式的光学介质(诸如光盘、数字视频光盘,蓝光光盘和/或任何其它合适的光学介质)、非暂时性形式的半导体介质(诸如闪速存储器、电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和/或任何其它合适的半导体介质)、在输送期间不会转瞬即逝或不具有永久性外观的任何合适介质和/或任何合适的有形介质。作为另一示例,暂时性计算机可读介质可以包括在网络上的、在导线、导体、光纤、电路、在输送期间转瞬即逝且不具有永久性外观的任何合适介质和/或任何合适的无形介质中的信号。

因此,提供了用于传递无清单流媒体内容的方法、系统和介质。

尽管已经在前面的说明性实施例中对本发明进行了描述和说明,但是应该理解,仅通过示例的方式进行本公开,并且可以在不脱离仅由以下权利要求书限制的本发明的精神和范围的情况下对本发明的实施方式的细节做出许多改变。可以以各种方式来组合和重新布置所公开的实施例的特征。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于用户可反馈的机器人制作影像的方法和系统以及非暂时性计算机可读记录介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类