使用清单属性过滤媒体清单的系统的制作方法

文档序号:12290272阅读:232来源:国知局
使用清单属性过滤媒体清单的系统的制作方法与工艺

背景和相关技术

计算机和计算系统已经影响了现代生活的近乎每一个方面。计算机通常涉及工作、休闲、保健、运输、娱乐、家政管理等。

此外,计算系统功能还可以通过计算系统经由网络连接互连到其他计算系统的能力来增强。网络连接可包括,但不仅限于,经由有线或无线以太网的连接,蜂窝式连接,或者甚至通过串行、并行、USB或其它连接的计算机到计算机的连接。这些连接允许计算系统访问其他计算系统上的服务,并快速且有效地从其他计算系统接收应用数据。

计算系统的互连促进了来自内容服务提供者的多媒体内容的传递。例如,终端用户可通过网络将视频和/或音频内容流传输到他们的设备。这样的流传输可以是实况流传输或点播流传输。

当用户希望流传输内容时,存在约束了什么内容可被流传输的数个约束。例如,网络带宽可限制流的比特率。替换地或附加地,内容被流传输到其的设备可能仅支持用于解码内容的特定编解码器,可能具有有限的显示分辨率来显示内容,可能具有有限的处理器功率来解码和播放内容等。相反,支持许多编解码器,具有高屏幕分辨率,具有丰富的环绕声能力,并且连接到高带宽网络的高功率设备的用户可能希望向他们递送尽可能最高质量的内容。由此,用户可能希望具有适合于他们设备的流内容被递送,无论内容是为可获得的最高质量,可获得的最低质量还是处于两者之间。

内容提供者通常通过“资产(asset)”的使用来提供内容。资产是多媒体内容片段的集合,如果被终端用户设备请求,多媒体内容片段的集合中的任何一个都可被递送到该终端用户设备。例如,资产可包括若干不同的视频文件,其中每个视频文件是相同源视频的不同的编码版本。由此,例如,一个版本可以是视频的以1.5Mb/s比特率编码的1080p版本。另一个可以是视频的以1Mb/s比特率编码的720p版本。另一个版本可以是视频的以0.7Mb/s比特率编码的720p版本。等等。资产可附加地或替换地存储数个音频轨道。例如,资产可存储7.1轨道、5.1轨道、立体声轨道、单声道轨道、以及各种因语言而异的轨道。由此,资产的大小可以相当大,并且能够提供用于回放的各种选项。

为了向终端用户指示什么内容是可用的,资产的清单可被提供。清单列出了用户可选择进行流传输的资产的所有可获得的部分。通常,设备将接收清单并选择最高质量的部分以用于流传输。然而,设备可能不能支持这些部分(以完全或无缝的方式),而由此可能需要停止尝试高质量内容的回放并选择较低质量的内容。当设备尝试为特定设备找到适合质量的流时,这导致了某些低效性。

一些系统通过为不同设备创建不同的资产来解决此问题。由此,用户设备可根据URL找到用于他们设备的特定资产。然而,这导致需要多个不同的资产并导致对给定媒体提供的内容递送的分段实现以及与存储(并在内容分发边缘节点处高速缓存)不同版本的媒体提供相关的低效。

本文要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实施所述一些实施例的一个示例性技术领域。

简要概述

本文解说的一个实施例包括可在计算环境中实施的方法。该方法包括用于提供清单的动作,该清单描述了点播视频(VOD)或实况视频的资产的呈现。该方法包括在服务器处接收来自客户端设备的对清单的请求。对清单的请求包括将被应用于返回的清单的一个或多个过滤器的标识。该方法进一步包括在服务器处标识清单。清单标识了可被递送到客户端设备的多媒体资产的不同部分。该方法进一步包括将一个或多个经标识的过滤器应用于清单,以生成排除一个或多个过滤器所指示的一个或多个项的经过滤的清单。经过滤的清单被返回到客户端设备。

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。

附加特征和优点将在以下描述中提出,且部分会从描述中显而易见,或者可以通过实施本文的原理来获悉。本发明的特征和优点可以通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的特征从以下描述和所附权利要求书中将更完全显而易见,或者可以通过如下文所述实施本发明而获悉。

附图简述

为了描述可获得以上记载的及其他优点和特征的方式,将参照各具体实施例呈现以上简述的主题的更具体描述,各具体实施例在附图中例示。理解这些附图仅描述典型的实施例,因此不应被视为限制本发明的范围,各实施例将通过使用附图以附加的具体性和细节来描述和解释,附图中:

图1示出了包括内容分发服务器、边缘节点、以及客户端设备的内容分发网络的示例;

图2示出了资产清单的示例;

图3示出了清单过滤器的示例;

图4A示出了一起使用若干个清单过滤器;

图4B示出了使用若干个清单过滤器并向不同客户端发送不同的经过滤的清单;

图4C示出了一起使用若干个清单过滤器并向不同客户端发送不同的经过滤的清单;

图5示出了使用过滤以通过过滤时间戳来创建来自长期运行流的不同的节目;

图6示出了通过过滤时间戳来创建实况回退;

图7示出了通过过滤时间戳来创建DVR窗口;

图8示出了堆叠过滤器的结果;

图9示出了由堆叠过滤器导致的附加结果;

图10示出了用于定义过滤器的用户界面控件;

图11示出了提供VOD或流视频清单的方法;

图12示出了服务器和客户端设备的交互;以及

图13示出了管理VOD或流视频资产的方法。

详细描述

本文的实施例可提供维护单个资产的能力,还可为客户端设备提供该资产的不同版本的清单。具体而言,过滤器可被应用于清单,该过滤器过滤掉清单的特定细节以创建经过滤的清单。经过滤的清单然后被提供给客户端设备,使得经过滤的清单提供可从资产获得的不同元素的有限“视图”。

在一些实施例中,客户端设备可指定什么过滤器将被应用于资产的清单。客户端设备可标识资产并标识将被应用于服务器的过滤器。服务器可然后在服务器处将过滤器应用在该资产的清单上,并将经过滤的清单发送到客户端。

一些实施例可涉及服务器处的过滤器管理。具体而言,资产可用过滤器注释,该过滤器可被应用于该资产的清单。在一些实施例中,客户端设备可请求可被应用的过滤器的列表,并且服务器可提供列表以响应该请求。在一些实施例中,可用通常被应用的不同过滤器的列表来周期性地更新客户端。

现在参考图1,示出了流传输或点播媒体分发的示例。尽管本文的示例在视频流或视频点播(VOD)的上下文中,但是应当理解,其他媒体流或点播递送可在本文所公开的本发明的各实施例的上下文中被执行。

图1示出了原始服务器102。原始服务器102是流媒体从其被分发的集中式源。如本文将更详细地讨论的,原始服务器可存储可被递送给用户的资产(参见例如图2的资产202),该资产包括各种视频、音频、子标题等流。资产的大小可以相当大。

由于对流媒体的网络需求,通常期望在地理上邻近于终端用户设备处具有资产,其中该媒体将最终被递送到该终端用户设备。为了实现这一点,内容分发网络(CDN)可被实现。为了实现内容分发网络,CDN边缘节点104可在地理上分布于各个位置。CDN边缘节点可将资产的副本高速缓存于CDN边缘节点104处。

每个资产都与清单相关联。清单包含了可在给定资产中获得的各种流的列表。清单可被高速缓存在CDN边缘节点104处,其中该清单可被提供给客户端设备106或可由原始服务器102直接提供。

使用清单,客户端设备106可请求资产的各部分以供流传输。然而,一些客户端设备可能试图流传输资产中他们不能够以令人满意的方式进行流传输的部分,这要么是因为设备本身不具有适合的编解码器或处理能力;要么是因为网络带宽太低以至于不允许该资产部分的递送。客户端设备然后将不得不尝试越来越低的质量或越来越小的资产部分;或不同地编码各部分以便标识客户端设备106能够回放的部分。然而,本文中的实施例允许清单被过滤(参见图3),使得由客户端设备102接收的清单包括可获得的资产部分的经减少的枚举。以此方式,客户端设备102将不会尝试请求资产的特定部分,因为那些部分将不会被标识在清单中。

注意,在此简单示例中,图示涉及确定资产的哪些部分被包括在清单中。然而,应当理解,并将在下文中更详细地解释清单可包括各种时间偏移和其他信息,该其他信息也可以被过滤以便仅呈现视频的部分,以便标识适当的商业位置等。

现在参考图2,示出了资产202。资产202可被概念化成卷。在图2所示的示例中,资产202包括各种部分。例如,资产202可包括一组视频文件204。资产202可包括一组音频文件206。清单还可包括诸如时序信息208之类的附加信息。该时序信息可包括用开始和结束时间标记来标识资产片段的时间标记集。如上所述,清单可枚举资产202的各个部分。客户端设备106处的用户可使用清单来选择向该客户端设备流传输的资产的各部分。

现在参考图3,示出了清单过滤的示例。图3示出了包括资产的各个部分的枚举的清单302。过滤器304可被应用于清单302,其导致经过滤的清单302’的创建。经过滤的清单302’包括少于清单302中枚举的所有元素的枚举。这可被实现来限制用户可在其客户端设备106处请求的资产202的部分。值得注意的是,不一定执行限制来限制较低质量的流。例如,考虑客户端设备106耦合到高带宽网络并且是能够播放很高质量的媒体流的设备的情况。在这样的示例中,内容提供者可能期望将流媒体的选择限制到高质量源,并且由此可从清单302过滤出任何较低质量的流。

现在参考图4A,示出了过滤的另一示例。在图4A所示的示例中,清单302具有一组过滤器404,该组过滤器404被应用于清单302以便产生经过滤的清单302’。此示例示出过滤器可被连续地应用于清单以便自定义清单提供。

在如图4B所示的替换或附加实施例中,清单302可将不同的过滤器406和408连续地应用于中间经过滤的清单。由此,例如,过滤器406被应用于清单302以便产生经过滤的清单302’。经过滤的清单302’可被发送到第一客户端106-1。过滤器408被应用于经过滤的清单302’以便产生经过滤的清单302”。经过滤的清单302”被发送到客户端106-2。由此,中间结果可被适当地用于不同的客户端。

在如图4C所示的又一替换或附加实施例中,可与被发送到不同客户端的不同的经过滤的清单并行地应用过滤器。由此,例如,清单302具有过滤器406,该过滤器406被应用以产生经过滤的清单302’-1。经过滤的清单302’-1被发送到客户端106-1。并行地,清单302具有过滤器408,该过滤器408被应用以产生经过滤的清单302’-2。经过滤的清单302’-2被发送到客户端106-2。

本发明的一些实施例可被实现,其中原始服务器由云服务提供者提供,使得各种不同的云服务客户可向云服务提供者购买主存服务。云服务提供者通过允许客户“租赁”计算、存储、以及网络资源来提供服务。随着客户需求的增加或降低,云服务提供者可从共享资源池调整这些资源的数量。这允许云的客户仅根据需求来租赁需要的资源,并在需要较少的资源的情况下节省资金。由此,例如,本发明的一些实施例可使用可从华盛顿州雷蒙德市的微软公司获得的Microsoft Azure媒体服务来实施。

在给定以上概括描述的情况下,现在将关注转向本发明的各种实施例的更具体的示例和实现。

在实况流和视频点播媒体资产两者的上下文中,存在客户可能希望向她的终端用户呈现整个资产的子集的情况。这可能受到客户端侧限制、资产质量、运行长度、或关注时间线的特定段的期望的激励。

在一些实施例中,过滤器可由客户端设备106指定,使得过滤器被应用于原始服务器102处和/或CDN边缘节点104处的的清单302。替换地或附加地,原始服务器102还可检测做出请求的客户端设备106,并相应地选择过滤器。例如,一些实施例可将设备的用户代理映射到特定的已命名的过滤器。

各种实施例可展现特定的特征和/或功能。例如,一些实施例可以以保留命名、保存、以及重用清单过滤器的能力的方式来实现,如媒体平台内的代表性状态转移(REST)实体。替换地或附加地,各实施例可被实现成包括为清单请求实时使用清单过滤器的能力。替换地或附加地,各实施例可被实现成包括在服务器侧(通常是客户端侧设置)创建流传输设置(诸如实况回退位置)的能力。替换地或附加地,各实施例可被实现成包括创建单个清单的能力,该单个清单同时应用于一个以上的协议。替换地或附加地,各实施例可被实现成包括设置默认清单过滤器的能力,该默认清单过滤器将应用于所有清单请求,而无需被明确地指定。

在媒体流传输中,存在清单和媒体块两者。本文中的各实施例可被实现成允许过滤,使得媒体块能跨CDN和原始服务器保留它们的幂等性和可高速缓存性。由此,在一些实施例中,不需要为媒体块产生新的URL。

考虑资产202包括由具有各种属性和时间线208的流组成。限制呈现给用户客户端设备106的流以例如通过比特率、分辨率或编解码器来进行限制可能是符合客户(例如,基于云的流媒体服务的客户,其中客户向终端用户设备提供流传输媒体)兴趣的。或者,可存在资产过长的情形,并且客户想要向用户客户端设备106呈现单个时间线的子剪辑。

许多属性存在于清单302中,并且它们可以若干不同的方式被过滤。例如,可通过精确匹配或枚举来过滤属性。替换地或附加地,可通过使用大于和小于运算符来过滤属性。替换地或附加地,可通过排除来过滤属性。这些方法可被单独使用或以适当的组合使用。

一些实施例可实现过滤器以便管理设备能力。具体而言,设备世界是高度碎片化的(fractioned),并且对协议、编解码器、比特率、以及分辨率的支持将极大地变化。然而,尤其是使用一种编码对每种类型的设备进行若干次编码是不切实际且昂贵的。内容所有者和分发者正在寻找将内容递送到许多设备的简单方式。如上所述,一个解决方案是使用多个比特率资产,其通过允许具有多比特率MP4、Smooth形式的源文件或其他文件在原始服务器102处被多路复用来解决多协议方面的问题,以供递送例如Smooth、HLS、HDS以及DASH/CSF。然而,资产打包仅处理协议,并最终向客户端设备106呈现完整的多比特率资产。由此,例如,先前包含H.264基线和H.264高(High)两者的混合编码简档可能已被呈现给了仅支持基线的设备;诸如例如,较旧的Android设备。

类似地,优质内容的所有者倾向于递送优质音频。他们对使用不同的比特率的AAC、不同的配置文件、HE-AAC和AAC-LE,以及经由杜比数字加(Dolby Digital Plus)和DTS的5.1环绕声有兴趣。如果它们递送iOS应用,它们还必须提供至少一个变体流,该变体流合计小于64kbps(通常是仅音频)。多比特率音频在当今的客户端框架中不能被很好地支持。至今为止还不存在已知的MBR音频算法,而轨道选择是在支持它的那些客户端设备上的唯一机制。如果不支持的轨道被选择,则某些框架就简单地停止运转。通过使用对资产清单的过滤来允许基于编解码器的服务器侧限制,各实施例可解决当前设备格局(landscape)的一些能力限制。

一些实施例可涉及优化移动设备上的带宽和功率消耗。一般认为,发送比设备能够显示的更高分辨率在带宽和设备计算方面是浪费的,因为设备必须解码过多的信息仅用于将其缩小以供显示。本文的一些实施例可使用对资产清单的过滤来提供基于分辨率的服务器侧限制。以此方式,实施例可解决移动设备上的带宽和功率消耗。

一些实施例可涉及强制质量限制。值得注意的是,可实现强制质量上限和/或下限中的任一个或两者的实施例。内容所有者可意图取决于目标设备106来向他们的终端用户递送特定体验。例如,当向机顶盒或游戏控制台递送时,内容所有者可能希望强制设备仅消耗较高的比特率。在较慢网络条件下这可造成缓冲的后果,然而,一些内容所有者可处在工作室合同、或其他约束下,仅能在特定条件下为特定标题递送特定质量。

一些内容所有者通过具有针对HD(高清晰度)和SD(标准清晰度)内容的定价层来区分他们的产品。由此,内容所有者可能需要限制用户降低质量。这可经由数字权限管理系统通过密钥和权限限制对HD内容而不是对SD内容的访问来实现。然而,跨播放器框架限制轨道是复杂的,并且许多播放器框架不能区分哪些轨道是它们具有密钥的而哪些轨道是它们将会得到解密错误的。能够将轨道限制到与SD质量层的特定密钥/权限匹配的子集是有利的。这可通过在原始服务器102处对资产202的清单302应用适合的过滤器来实现。由此,通过基于比特率来允许服务器侧限制,各实施例可允许内容所有者和分发者能够管理质量考量。

一些实施例可促进多语言支持。多语言支持由跨因设备而异的播放器框架的不同实现支持。通过使用基于语言的过滤器来允许服务器侧限制,各实施例可以管理多语言资产。

一些实施例包括用于在实况内容流上操作的功能。具体而言,本发明的各实施例可从长期运行流之外创建多个虚拟节目时段。这可在它仍然是实况节目时,或稍后作为VOD资产时被实现。许多实况赛事是长期运行的,而广播者可能希望将这些实况赛事划分为逻辑节目开始和停止序列,而不限制观看实况流的某人寻回DVR窗口的能力。这些较小的序列在移动设备上更易于管理,并为内容提供者提供了附加的虚拟内容。这样的虚拟节目的示例是足球或篮球比赛的季度、棒球赛中的局、或奥林匹克节目下午的个体赛事。

例如,现在参考图5。图5示出了作为实况流广播的多个不同体育赛事的连续流502。清单202可在时序信息208中包含时间标记。时间标记可被过滤以便向客户端设备106提供仅显示个体节目的资产的视图。由此,设备106处的用户可以看到仅提供滑雪节目504、仅提供雪橇节目506、仅提供花样滑冰节目508或仅提供曲棍球节目510的视图的清单。

参考图6,时序信息208中的时间标记的清单过滤可被用于从实况节目的实况边缘移除若干秒以便创建节目回退。这允许广播者观看预览发布点602上的呈现,并如604所示的在查看者正接收流的时刻之前(通常回退30秒)创建广告插入点。广播者可然后及时地将这些广告推送给它们的客户端框架(通常使用XML或JSON对象),以便让它们在广告机会之前被接收并被处理。

如图7所示,时序信息208中的时间标记的清单过滤可被用于创建滚动DVR窗口,而不必删除媒体。存在许多情形,其中广播者希望提供随实况边缘移动的有限的DVR窗口。广播者仍可将在DVR窗口之外的数据用于精彩片段剪辑,或者用于创建VOD节目或剪辑。

在一些情况下,用户可能想对资产应用一个以上的过滤器。例如,他们可能想要定义多个设备过滤器(XBOX、iPad、iPhone、Windows Phone、Flash、Silverlight),并对每个设备过滤器应用时间线限制。由此,设备过滤器和时间线过滤器可被应用。图4A-4C示出了应用多个过滤器的示例。

值得注意的是,一些过滤器比其他过滤器更持久。例如,设备过滤器是可重用的并且一年可能仅改变几次,而时间线过滤器通常是因资产而异的。因此,持久存储特定过滤器是有价值的,并且在清单请求时刻指定其他过滤器也是有价值的。

在一些实施例中,多个时间线过滤器可被应用于实况情形。如图4A-4C所示,用户可能需要能够设置一个以上的过滤器算法。例如,对于大多数实况广播情形,用于实现滚动DVR窗口的时间线过滤器和用于修整来自资产头部的平板的时间线过滤器可能需要被实现。在替换示例中,对特定大型体育广播客户,实现实况回退的时间线过滤器和实现滚动DVR窗口的时间线过滤器以及用于修整来自资产顶部的平板的时间线过滤器可能被实现。

例如,图8示出平板移除限制了DVR窗口的一部分中的块,证明了这些过滤器的AND特性。如果任何一个过滤器移除了一个块,则它不可用于被下一个过滤器包括。这是可交换的,过滤器次序无关紧要。这由图9示出,图9示出了在流传输中的稍后的表示。

然而,随着实况资产变得更大以及虚拟节目结束,广播者还可能想要创建除了被用于实况流的过滤器之外的新过滤器,以便界定这些虚拟节目时段。由此,单个资产具有许多已命名过滤器可以是相关的。各实施例可在应用过滤机制和允许这些过滤器的多样性方面提供灵活性。

在一些情况下,内容所有者可能想要将若干子剪辑呈现为单个资产。由于清单过滤不影响媒体片段,所以这种资产的时间线将具有不连续性,并且不是所有的流传输协议都优雅地处理不连续性。在多个子剪辑的情况下,各实施例可使用两个或更多个时间线过滤器的组合:例如(0:05:00<t<0:10:00)||(0:20:00<t<0:25:00)。

由单个资产可能引起许多流传输情形。各实施例因此使用用户定义的令牌为单个资产提供多个可寻址清单。

各种特征可在各种实施例中实现。例如,经过滤的清单可能能够被重新多路复用为任何被支持的输出格式。各实施例可被实现,其中片段将保持幂等,内容和URL两者都不会改变,而不管过滤器是否改变。

如果清单过滤器改变,则会在相同URL处发布新的清单,这会中断CDN边缘节点处的下游高速缓存。如果这是实况清单,则它具有短TTL,并且将不会受到极大的影响。但是对于具有长TTL的VOD清单而言,可能需要注意不要修改已发布的过滤器。由此,一些实施例制作过滤器的副本,修改该副本并用不同的名称保存它。

理想地,将向用户呈现原始清单,并然后包括或排除将构成被用于创建资产的‘呈现’的过滤器的各种属性。如本文所使用的,术语“呈现”表示资产的特定的、经过滤的版本。呈现包含用于各种清单特性的过滤器的集合。

为了更好地示出各种示例工作流,以下示出了各种伪对象和它们的交互。新实体IAssetRendition(I资产呈现)将被创建。在所示示例中,它具有复合类型的数组ManifestFilter(清单过滤器)。它将是Iasset(I资产)上的集合。它将跟踪已经与其相关联的资产。由此:

New IAssetRendition entity(实体):

IAssetRendition.Name

IAssetRendition.Id

IAssetRendition.ManifestFilters[]

IAssetRendition.AssociatedAssets[](read-only(只读),setter is in the IAsset(setter在IAsset中))

New IManifestFilters complex type(复合类型):

IManifestFilters.Type=enum{

VideoBitrate,

AudioBitrate,

VideoMaxWidth,

VideoMaxHeight,

CODEC,

Language,

AbsoluteStreamTime,

TimeRelativeToStreamEndInSec}

IManifestFilters.Operator=enum{GE,LE,EQ,NEQ}

IManifestFilters.Value=“stringValue”

IAssetRendition上的典型CRUD:

IAssetRendition AssetRendition=

Context.AssetRenditions.Create(“AssetRenditionName”)

Context.AssetRenditions.Delete(Id)

Helper funcion(函数):

IAssetRendition newAssetRendition=

Asset.AssetRenditions.CreateFrom(sourceAssetRenditionId,”Some New Rendition Name(某个新的呈现名)”);

Asset上的集合具有CRUD,如按照通常的设计模式:

Asset.AssetRenditions.Add

Asset.AssetRenditions.Remove

Asset.AssetRenditions.Update

具有相应的异步(Async)函数。

以下示出了各个使用示例。

在以下示例中,示出了组成可重用过滤器的示例。在此特定示例中,期望仅使用较高的比特率流。该可重用过滤器如下:

以下示出了过滤器对某个资产的应用:

targetAsset.AssetRenditions.Add(xboxRendition);

以下示出了过滤器的使用:

theAsset.ism/Manifest(filternames=Xbox_v1)

组成可重用过滤器的另一示例被示出。在此特定示例中,期望仅向使用低于1020×768分辨率的Android移动设备提供媒体。该可重用过滤器如下:

以下示出了过滤器对某个资产的应用:

targetAsset.AssetRenditions.Add(androidLowRes);

以下示出了过滤器的使用:

theAsset.ism/Manifest(filternames=AndroidLowRes_v1)

以下示出了组成可重用过滤器的示例,该可重用过滤器将定义实况回退和DVR窗口。期望将回退设置为10秒,并将DVR长度设置为2小时。实现如下:

以下示出了过滤器对某个资产的应用:

targetLiveAsset.AssetRenditions.Add(typicalLive);

以下示出了过滤器的使用:

theAsset.ism/Manifest(filternames=TypicalLive)

以下示出了组成可重用过滤器的示例,该可重用过滤器将创建资产的子剪辑。希望将虚拟节目添加到从1小时到2小时标记的实况资产,有效地对其进行子剪辑。在所示示例中,还对该资产可用的是设备呈现和典型实况设置。以下示出该实现:

首先,已知呈现被相关联:

targetLiveAsset.AssetRenditions.Add(xboxRendition);

targetLiveAsset.AssetRenditions.Add(androidLowRes);

targetLiveAsset.AssetRenditions.Add(typicalLive);

接着,新的绝对流时间过滤器被创建:

以下示出了过滤器的使用:

theAsset.ism/Manifest(filternames=clip1,AndroidLowRes_v1)

theAsset.ism/Manifest(filternames=clip1,Xbox_v1)

以下示出与过滤器的服务器交互。在一个示例实施例中,服务器将解析清单查询特性中的文件名的逗号(或与号)分隔列表:

theAsset.ism/Manifest(filternames=clip1,Xbox_v1)

服务器将接收或检索关于这些经命名过滤器的过滤信息。服务器将使用AND逻辑来把它们应用于原始清单(使得每个附加过滤器仅可从先前操作的经过滤的清单中移除信息)。如果用户希望创建多剪辑,他们将需要把所有的AbsoluteStreamTimeInHNS过滤器放入单个呈现,因为把它们放入两个不同的呈现将导致他们在整个时间线上互斥。替换地,用于用信号表示AND逻辑和OR逻辑两者的机制可被实现。

各实施例可包括用于提供允许用户定义清单过滤的用户界面的功能。可在多个不同的位置和情形中提供用户界面。例如,可与资产递送系统结合来提供用户界面,以便允许资产递送系统处的管理员定义各种过滤器。替换地,可在客户端设备处提供用户界面,以便允许客户端创建过滤器并请求根据在客户端设备处定义的过滤器来过滤资产清单。

现在参考图10,用于定义过滤器的用户界面1000的示例被示出。可在计算机或设备显示器上向用户显示用户界面1000,该用户还可包括管理员或其他用户。在此示例中,用户界面1000包括三个范围控制滑块1002、1004和1006。此示例中的滑块控制过滤器的上限和下限。例如,滑块1002控制分辨率的上限和下限。滑块1004控制比特率的上限和下限。滑块1006控制音频轨道质量的上限和下限。

用户可将滑块控件(例如滑块控件1008和1010)设置于上限和下限处。这将定义要定义的过滤器的过滤器范围。当将这样的过滤器应用于资产的清单时,该资产的高于上限或低于下限的任何部分将使其描述从清单中过滤出来。

由此,示例用户界面可涉及具有复选框、滑块、时间线等特性的呈现以及设置操作符和边界值的能力。在一个示例实施例中,创作UI然后将作出对REST API的调用以便创建或修改实体。

下面的讨论现在涉及可被执行的多个方法和方法动作。尽管这些方法动作可以以特定次序被讨论或在流程图中被例示为以指定次序发生,但是除非特别指明否则不需要任何特定排序,或者因某一动作取决于在该动作被执行之前完成的另一个动作而要求特定排序。

现在参考图11,例示出方法1100。方法1100可在计算环境中实施,并包括用于提供VOD或流视频清单的动作。该方法1100包括在服务器处接收来自客户端设备的对清单的请求。对清单的请求包括将被应用于返回的清单的一个或多个过滤器的标识(动作1102)。例如,各种过滤器可被标识,诸如被配置为基于视频分辨率进行过滤的过滤器,被配置为基于比特率进行过滤的过滤器,被配置为基于音频质量进行过滤的过滤器,被配置为基于时间戳进行过滤的过滤器等的过滤器。图12示出了客户端设备向服务器1206发送包括一个或多个过滤器的标识1204的请求1202的示例。

方法1100进一步包括标识清单(动作1104)。清单标识了可被递送到客户端设备的多媒体资产的不同部分。例如,如上所述,清单可标识资产中多媒体内容的不同分辨率(例如720p、1080p等),资产中多媒体内容的不同比特率(例如1Mbs、0.7Mbs等),不同音频质量(例如7.1、5.1、立体声、单声道等),资产中多媒体内容的各种时间戳等。例如,图12示出了标识清单302的服务器1206。值得注意的是,服务器1206可以是内容递送节点、原始节点或其他适当的节点。

方法1100进一步包括将一个或多个经标识的过滤器应用于清单,以生成排除一个或多个过滤器所指示的一个或多个项的经过滤的清单(动作1106)。例如,如图12所示,服务器1206可将过滤器304应用于清单302以创建经过滤的清单302’。

方法1100进一步包括将经过滤的清单返回到客户端设备(动作1108)。例如,如图12所示,经过滤的清单302’被返回到客户端设备106’。

方法1100可被实施,其中一个或多个过滤器在客户端设备处被创建。例如,客户端可能能够决定它可以消耗什么内容或者它偏好消耗什么内容,并且可以创建可被发送到内容服务器的自定义过滤器。内容服务器可然后在内容服务器处应用过滤器,并且提供仅枚举客户端设备可呈现的或客户端设备偏好接收的多媒体内容选项的清单。

方法1100可被实施,其中该一个或多个过滤器是从提供给客户端的预定义的一组过滤器中被选择的。例如,该组过滤器可由内容服务器提供给客户端,以便指示内容服务器能够应用于内容服务器处的资产的过滤器的列表,或特别适用于内容服务器处的内容的过滤器的列表。替换地或附加地,多媒体播放器应用或在客户端设备处的应用可具有一组被定义在该应用中的过滤器,该组过滤器可被指定给内容服务器。新的或不同的过滤器可在应用更新中被指定,或可被指定为可插入应用的过滤器集。

方法1100可进一步包括将可在服务器处应用的过滤器的选择的指示发送到客户端设备。在一些这样的实施例中,将被应用于返回的清单的一个或多个过滤器的标识由客户端使用可被应用的过滤器的选择的指示来创建。由此,内容服务器可发送可以在客户端设备处被选择并被指示给内容服务器的过滤器的选择的指示,其中该过滤器可被应用。

方法1100可被执行,其中一个或多个过滤器中的至少一个包括上限和下限两者。由此,例如,各实施例可以设置要被滤除的分辨率上限和要被滤除的分辨率下限。可针对比特率、音频质量、时间戳或清单中的其他项来实现类似的示例。替换地,在一些实施例中,可设置上限和下限,并且落在上限与下限之间的项可被过滤,而高于上限和低于下限的项可被包括在清单中。

现在参考图13,例示出方法1300。方法1300可以在计算环境中实施。方法1300包括用于管理VOD或流视频资产的动作。该方法包括,针对给定资产来标识可被应用于该资产的清单的过滤器(动作1302)。方法1300进一步包括向客户端设备发送可被应用于该资产的清单的所标识的过滤器的指示(动作1304)。例如,如图12所示,服务器1206可向客户端设备106发送可被应用于特定多媒体资产的过滤器的列表1208。

而且,各方法可由计算机系统实现,计算机系统包括一个或多个处理器以及诸如计算机存储器这样的计算机可读介质。具体而言,计算机存储器可以存储计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时使各种功能得以被执行,诸如各实施例中记载的动作。

本发明的各实施例可以包括或使用包括计算机硬件的专用或通用计算机,如以下更详细讨论的。本发明范围内的各实施例也包括用于实现或存储计算机可执行指令和/或数据结构的实体及其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。

物理计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(如CD、DVD等)、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。

“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其他电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可用于携带计算机可执行指令或数据结构形式的期望程序代码装置并可被通用或专用计算机访问的网络和/或数据链路。以上的组合也被包括在计算机可读介质的范围内。

此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输计算机可读介质自动转移到物理计算机可读存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机可读物理存储介质。由此,计算机可读物理存储介质可以被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。

计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行某一功能或一组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。

本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。

替换地或附加地,此处描述的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)、等等。

本发明可以以其他具体形式来体现,而不背离其精神或特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

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