用于获得视频流的系统和方法

文档序号:7993555阅读:212来源:国知局
用于获得视频流的系统和方法
【专利摘要】提出了一种系统、存储至少一个程序的计算机可读存储介质以及用于获得视频流的计算机实现的方法。从在客户端设备上执行的应用接收用于获得视频流的不指明设备的请求,该不指明设备的请求包括用于视频流的统一资源标识符(URI),该URI包括视频流的类型以及视频流的名称和用于视频流的特定于设备的参数中的至少一个。分析URI以识别可从其获得视频流的媒体设备。识别用于媒体设备的特定于设备的库。执行与用于获得视频流的不指明设备的请求相对应的特定于设备的请求,该特定于设备的请求包括URI。响应于执行特定于设备的请求而从媒体设备接收视频流。将该视频流提供给应用。
【专利说明】用于获得视频流的系统和方法
【技术领域】
[0001]所公开的实施方式一般地涉及获得视频流。
【背景技术】
[0002]对于充当媒体设备(例如电视机顶盒)与输出设备(例如电视显示器)之间的中间设备的客户端设备,期望在客户端设备上执行的应用从客户端设备可访问的媒体设备获得视频流,使得这些视频流可在输出设备上显示。然而,在应用的开发期间,用于客户端设备的应用的开发者不知道多个媒体设备中的哪些媒体设备将被耦接到客户端设备。此外,被耦接到客户端设备的每个媒体设备可具有不同的协议和寻址机制,其中获得在媒体设备上可用的视频流。在应用的开发期间在应用中包括用于所有可能的媒体设备的这些协议和寻址机制对于应用的开发者是繁重且不切实际的。
【专利附图】

【附图说明】
[0003]在附图的各图中,以示例的方式而不是限制的方式来图示了本文公开的实施方式。相同的附图标记遍及各图指代相应部分。
[0004]图1是图示根据一些实施方式的示例性网络系统的框图。
[0005]图2是图示根据一些实施方式的服务器的示例性模块的框图。
[0006]图3是图示根据一些实施方式的客户端设备的示例性模块的框图。
[0007]图4是图示根据一些实施方式的应用框架的示例性模块的框图。
[0008]图5是图示根据一些实施方式的示例性服务器的框图。
[0009]图6是图示根据一些实施方式的示例性客户端设备的框图。
[0010]图7是根据一些实施方式的用于用关于视频流的信息来填充流数据库的方法的流程图。
[0011]图8是根据一些实施方式的用于获得用于视频流的统一资源标识符的方法的流程图。
[0012]图9是根据一些实施方式的用于获得视频流的方法的流程图。
[0013]图10是根据一些实施方式的用于分析URI以识别可从其获得视频流的媒体设备的方法的流程图。
【具体实施方式】
[0014]本文所述的实施方式提供了用于获得可从客户端设备可访问的媒体设备获得的视频流的技术。
[0015]系统架构
[0016]图1是图示根据一些实施方式的示例网络系统100的框图。网络系统100包括用户106的耦接到输出设备102、媒体设备103和输入设备105的客户端设备101。在一些实施方式中,客户端设备101是电视机顶盒。在一些实施方式中,输出设备102包括监视器、投影仪、电视和扬声器中的一个或多个。
[0017]在一些实施方式中,客户端设备101是被配置成控制耦接到客户端设备101的设备(例如,媒体设备103、输出设备102等)并且被配置成提供增强的多媒体功能的中间设备。增强的多媒体功能包括但不限于:在输出设备102上提供画中画能力,其允许用户106在观看和/或收听在输出设备102的较小区域中呈现的媒体项的实例(例如,视频)时同时在输出设备102 (例如,电视显示器)上访问(例如,浏览和/或另外与之交互)网站;在输出设备102上提供用户界面,其允许用户106搜索在对用户106的客户端设备101来说可访问的内容源(例如,特定电视频道、流媒体服务等)上可用的媒体项的实例;以及对从媒体设备103接收的音频和/或视频信号进行修改(例如,使图形对象覆盖在视频流上、将音频插入音频流中等)并且将经修改的音频和/或视频信号输出到输出设备102以向用户106呈现。
[0018]应注意,“媒体项的实例”可以指媒体项在特定日期和/或时间在特定内容源上的特定示出(例如,辛普森一家的第一集在2011年I月3日晚上10点在空中电视服务的频道2上的放映等)或媒体项在特定内容源上的特定副本(例如,在流式视频服务I上的辛普森一家的第一集以供出租、在流式视频服务2上的辛普森一家的第一集以供购买等)。
[0019]媒体项包括但不限于:电影、视频、电视节目(例如,电视连续剧的剧集、单独电视节目等)、书籍、一期杂志、文章、歌曲以及游戏。
[0020]内容源包括但不限于:数字视频录像机、卫星无线电频道、空中无线电频道、空中电视频道、卫星电视频道、有线电视频道、有线音乐频道、网际协议电视频道以及流媒体服务(例如,视频点播服务、流式视频服务、流式音乐服务等)。
[0021]在一些实施方式中,用户106使用输入设备105来指示客户端设备101执行关于输出设备102和/或媒体设备103的各种动作。例如,用户106可以使用输入设备105来指示客户端设备101增加输出设备102的音量。类似地,用户106可以使用输入设备105来指示客户端设备101指示媒体设备103获取媒体项的实例。此外,用户106可以使用输入设备105来指示客户端设备101搜索满足搜索查询的媒体项的实例。参考图3和4更详细地描述了在用户106、客户端设备101、输出设备102和媒体设备103之间的交互。
[0022]输入设备105包括但不限于:指示设备(例如,鼠标、触控板、触摸板、自由空间指示设备)、键盘、触敏显示设备(例如,触摸屏显示器和/或控制器)、远程控制器、包括远程控制器应用的智能手机以及视觉手势识别系统(例如,捕捉并识别用户的运动和/或手势并且将运动和/或手势转换成输入命令的系统)。
[0023]在一些实施方式中,媒体设备103被配置成从内容源获取媒体项的实例,并且提供音频和/或视频信号以使用输出设备102来向用户106呈现。
[0024]在一些实施方式中,媒体设备103从本地内容源104获取媒体项的实例(例如,媒体项154的实例)。在一些实施方式中,本地内容源104包括下述中的一个或多个:媒体设备103的数字视频录像机、媒体设备103的硬盘驱动器以及媒体设备103可访问的网络存储设备。
[0025]在一些实施方式中,媒体设备103通过网络121从内容提供商130提供的内容源140获取媒体项的实例(例如,媒体项150和151的实例)。“内容提供商”是提供一个或多个内容源的实体或服务,以及“内容源”是媒体项(例如,电视频道、无线电频道、网站、流媒体服务等)的实例的源。在一些实施方式中,网络121包括下述中的一个或多个:有线电视服务、卫星电视服务、卫星无线电服务、空中电视服务、空中无线电服务或数据网络(例如,网络120、因特网、虚拟专用网络等)。
[0026]在一些实施方式中,媒体设备103通过网络120从内容提供商131提供的内容源141获取媒体项的实例(例如,媒体项152和153的实例)。在一些实施方式中,内容提供商131是流媒体服务(例如,流式视频服务、流式音频服务等)。网络120 —般可以包括能够将计算节点耦接在一起的任何类型的有线或无线通信信道。这包括但不限于:局域网、广域网以及网络的组合。在一些实施方式中,网络120包括因特网。
[0027]总的来说,媒体设备103可以从下述的任何组合获取媒体项的实例:本地内容源、通过网络121可用的内容源以及通过网络120可用的内容源。
[0028]在一些实施方式中,媒体设备103包括物理设备。该物理设备包括但不限于:数字视频录像机、卫星无线电机顶盒、空中无线电调谐器、空中电视调谐器、卫星电视机顶盒、有线电视机顶盒、网际协议电视机顶盒以及游戏控制台。
[0029]在一些实施方式中,媒体设备103包括在客户端设备101上执行的虚拟设备(例如,软件模块)。该虚拟设备包括但不限于:在客户端设备101上执行的web浏览器以及在客户端设备101上执行的流媒体应用。
[0030]总的来说,媒体设备103可以包括物理设备和虚拟设备的任何组合。
[0031]在一些实施方式中,网络系统100包括耦接到网络120的服务器110。在这些实施方式中,服务器110从元数据提供商111和/或从因特网上的网站获取媒体项的实例的元数据、基于媒体项的实例的元数据来构建媒体项的数据库并且返回与满足搜索查询且在对客户端设备101来说可访问的内容源上可用的媒体项的实例有关的信息。对(用户106的)客户端设备101来说可访问的内容源包括客户端设备101已预订了的内容源(例如,有线或卫星电视频道、流媒体服务等)、客户端设备101对于其拥有用来从内容源接收媒体项的适当媒体设备(例如,空中电视或无线电调谐器、网络接口设备、针对流媒体服务的应用等)的内容源以及客户端设备101对于其已购买了获取媒体项的权利的内容源(例如,视频点播服务、视频租赁服务等)。应注意,客户端设备101可以仅仅能够访问特定内容源集。例如,客户端设备101可以仅仅能够访问在有线电视服务上的特定频道。类似地,客户端设备101可以能够访问第一流媒体服务,但是不能访问第二流媒体服务。因此,有益的是,向用户106仅提供在对客户端设备101来说可访问的内容源上可用的媒体项的实例的信息。
[0032]媒体项的实例的元数据包括但不限于:媒体项的实例在其上可用的内容源、媒体项的实例可用的日期和时间、项的描述(即标题)、与媒体项的实例相关联的演员、与媒体项的实例相关联的音乐家、与媒体项的实例相关联的制片人、与媒体项的实例相关联的导演、媒体项的实例的概要、媒体项的实例的首播日期、媒体项的实例对于其是成员的连续剧(例如,电视连续剧等)、媒体项的实例的类型(例如,喜剧、戏剧、游戏节目、恐怖、悬疑、现实等)以及媒体项的实例的成本。
[0033]与媒体项的实例有关的信息包括但不限于:媒体项的实例的元数据的至少子集、到与媒体项有关的内容的链接(例如,到出现在媒体项中的演员的网页的链接等)以及从另一个数据库(例如,私有数据库)和/或从包括与媒体项有关的内容的网页(例如,针对电视节目的网页、针对演员的网页等)获取的、与媒体项有关的内容。[0034]在一些实施方式中,将先前查询和搜索结果存储在缓存中以使查询响应加速。可以周期性地从该缓存移除先前查询和搜索结果来确保该缓存不为不再可用的媒体项的实例(例如,电视连续剧的剧集的播出时间自与该剧集的实例有关的信息被存储在缓存中以来可能已经过去)存储搜索结果。
[0035]在下面参考图2更详细地描述了服务器110。
[0036]应注意,尽管图1图示了客户端设备101被耦接到一个媒体设备(例如,媒体设备103)、一个输出设备(例如,输出设备102)和一个输入设备(例如,输入设备105),然而,客户端设备101可以被耦接到多个媒体设备、多个输出设备和多个输入设备。类似地,尽管图1图示了一个客户端设备(例如,客户端设备101)和一个元数据提供商(例如,元数据提供商111),然而,网络系统100可以包括多个客户端设备和元数据提供商。此外,尽管图1图示了耦接到网络121的一个内容提供商(例如,内容提供商130)和耦接到网络120的一个内容提供商(例如,内容提供商131),然而,多个内容提供商可以被耦接到每一个网络。
[0037]此外,尽管图1示出了服务器110的一个实例,然而,多个服务器可以存在于网络系统100中。例如,服务器110可以包括多个分布式服务器。多个分布式服务器可以提供负载平衡和/或可以向附近计算机系统提供低延迟接入点。分布式服务器可以位于单个位置(例如,数据中心、建筑物等)内或可以在地理上跨多个位置分布(例如,在各种地理位置的数据中心等)。
[0038]在下面参考图3、4和6更详细地描述了客户端设备101。在下面参考图2和5更详细地描述了服务器110。
[0039]图2是图示根据一些实施方式的服务器110的示例模块的框图。服务器110包括前端模块201、可用性模块202、内容映射模块205、元数据导入器模块206-207以及web爬取器模块208。前端模块201提供在服务器110的模块和客户端设备101之间的接口。可用性模块202识别满足从客户端设备101接收的搜索查询并且在对客户端设备101来说可访问的内容源上可用的媒体项的实例。如上所述,客户端设备101可以仅能够访问特定内容源集。因此,有益的是,向用户106仅提供在对客户端设备101来说可访问的内容源上可用的媒体项的实例的信息。内容映射模块205对元数据导入器模块206-207和web爬取器模块208所获取的元数据进行处理来生成搜索索引203和可用性数据库204。
[0040]下述论述说明了用于导入媒体项的实例的元数据的示例过程。元数据导入器模块206-207分别从元数据提供商111和220获取媒体项的实例的元数据240和241。在一些实施方式中,服务器110包括针对每一个元数据提供商的元数据导入器模块。Web爬取器模块208导入并处理网页221来产生媒体项的实例的元数据242。元数据240、241和242可以包括复制信息。例如,元数据提供商111和元数据提供商220可能两者均提供从特定有线电视服务可用的媒体项的实例的元数据。然而,每一个元数据提供商可以将不同标识符用于从该特定有线电视服务可用的媒体项的实例。因此,在一些实施方式中,内容映射模块205对媒体项的实例的元数据240、241和242进行分析来识别独特媒体项。例如,内容映射模块205通过将媒体项的实例的元数据的预先确定的子集对于其相匹配的媒体项的实例进行聚组,来识别独特媒体项(例如,当对组中的每个媒体项实例来说,连续剧名称、剧集编号、演员和发行年份等相匹配时,形成媒体项的实例组)。在一些实施方式中,当对组中的每个媒体项实例来说,连续剧名称、剧集编号和演员相匹配时,形成媒体项的实例组。在一些实施方式中,当对组中的每个媒体项实例来说,连续剧名称、发行年份和演员相匹配时,形成媒体项的实例组。内容映射模块205然后为每一个独特媒体项生成内容标识符243,并且为独特媒体项生成元数据244。在一些实施方式中,内容标识符包括用于相关媒体项系列的标识符(例如,电视连续剧的内容标识符)和媒体项的标识符(例如,电视连续剧的剧集的内容标识符)。独特媒体项的元数据244包括但不限于:该独特媒体项的内容标识符243、该独特媒体项的每一个实例的元数据240、241和242的至少子集。例如,“辛普森一家”的第I集可以具有跨各种内容源的6个实例。内容映射模块205可以将具有值“I”的内容标识符243分配给“辛普森一家”的第I集,并且可以包括“辛普森一家”的第I集的每一个实例的元数据。内容映射模块205使用独特媒体项的实例的内容标识符243和元数据244来生成用来为媒体项高效地识别内容标识符243的搜索索引203。内容映射模块205还使用独特媒体项的实例的内容标识符243和元数据244来生成通过内容标识符243和媒体项的对应实例在其上可用的内容源进行索引的可用性数据库204。
[0041]下述论述说明了用于对来自客户端设备101的搜索查询进行响应的示例过程。前端模块201从客户端设备101接收搜索查询230,并且将搜索查询230分派给可用性模块202。在将搜索查询230分派给可用性模块202之前,前端模块201可选地规范化并扩展搜索查询230。在一些实施方式中,前端模块201可选地从客户端设备101接收与对客户端设备101来说可访问的内容源231有关的信息。在一些实施方式中,可用性模块202从数据库(例如,客户端设备101的用户106的简档、客户端设备101的简档等)获取与对客户端设备101来说可访问的内容源231有关的信息。可用性模块202使用搜索查询230来查询搜索索引203,以获取满足搜索查询230的媒体项的实例的内容标识符232和元数据233。可用性模块202然后使用内容标识符232和对客户端设备101来说可访问的内容源231来查询可用性数据库204,以获取在对客户端设备101来说可访问的内容源231上可用的媒体项的实例234。换句话说,媒体项的实例234(1)在对客户端设备101来说可访问的内容源231上可用并且(2)满足搜索查询230。
[0042]可用性模块202然后基于在对客户端设备101来说可访问的内容源231上可用的媒体项的实例234和元数据233,来生成搜索结果235和聚合信息236。在一些实施方式中,搜索结果235包括与媒体项的实例234有关的信息(例如,电视连续剧的剧集的名称和/或剧集编号、电视连续剧的名称、电影的名称等)以及与独特媒体项相对应的聚合信息236。媒体项的聚合信息236包括但不限于:在对客户端设备101来说可访问的内容源231上可用的连续剧的剧集数、在对客户端设备101来说可访问的内容源231上可用的媒体项的最近实例(例如,即将到来的新剧集、先前已播出的最新剧集等)、在对客户端设备101来说可访问的内容源231上可用的媒体项的最旧实例(例如,试播剧集等)、在对客户端设备101来说可访问的内容源231上可用的媒体项的实例的完整性(例如,所有剧集均可用)、在其上媒体项的实例对客户端设备101来说可访问的独特内容源231数、最频繁被选择的内容源231、在其期间媒体项在内容源231上可用的时段、媒体项将在内容源231上可用的未来时间、媒体项在内容源231上可访问的剩余时间、以及媒体项被购买的日期。
[0043]可用性模块202然后通过前端模块201将搜索结果235和/或聚合信息236返回给客户端设备101。
[0044]在一些实施方式中,服务器110的模块被包括在客户端设备101中以便于搜索存储在本地内容源104中的媒体项。
[0045]图3是图示根据一些实施例的客户端设备101的示例模块的框图。在一些实施方式中,客户端设备101包括应用框架301,其响应于从输入设备105接收的输入事件来使用控制设备303来控制耦接到客户端设备101的设备(例如媒体设备103、输出设备102等),并且被配置成提供增强的多媒体功能(例如,如在上面参考图1所述的)。在下面参考图4更详细地描述了应用框架301。
[0046]在一些实施方式中,客户端设备101包括输入设备端口 302、控制设备303、输入端口 304以及输出端口 305。输入设备端口 302从输入设备105接收输入事件。控制设备303将特定于设备的请求和/或特定于设备的命令传输给媒体设备103和/或输出设备102。在一些实施方式中,控制设备303包括下述中的一个或多个:红外收发器、串行接口设备、蓝牙收发器以及网络接口设备。输入端口 304从媒体设备103接收音频信号和/或视频信号。输出端口 305将音频信号和/或视频信号传输给输出设备102。在一些实施方式中,输入端口 304和输出端口 305包括下述中的一个或多个:通用串行总线(USB)端口、蓝牙收发器、以太网端口、W1-Fi收发器、HDMI端口、DisplayPort端口、Thunderbolt端口、复合视频端口、分量视频端口、光端口以及RCA音频端口。
[0047]在一些实施方式中,输出设备102与客户端设备101集成在一起。例如,客户端设备101和输出设备102可以被包括在同一外壳(例如,电视机)中。
[0048]下述论述说明了用于对从输入设备105接收的请求和/或命令进行处理的示例过程。应用框架301通过输入设备端口 302从输入设备105接收输入事件310。输入事件310包括但不限于:键按下、指示器位置、指示设备按钮按下、滚轮位置、手势以及对图形用户界面(GUI)对象(例如,链接、图像等)的选择。
[0049]输入事件310中的一个或多个可以对应于不指明(agnostic)设备的请求和/或不指明设备的命令。不指明设备的请求(例如,对获得媒体设备的请求、对获取媒体项的实例的请求等)是可以向多个设备发出而与对于多个特定设备的请求的特定于设备的句法无关的一般请求。类似地,不指明设备的命令(例如,用来增加音量级别的命令、用来更换频道的命令等)是可以向多个设备发出而与对于多个特定设备的请求的特定于设备的句法无关的一般命令。
[0050]应用框架301将不指明设备的请求映射到针对媒体设备103的特定于设备的请求311。类似地,应用框架301将不指明设备的命令映射到针对媒体设备103的特定于设备的命令312。应用框架使用控制设备303将特定于设备的请求311和/或特定于设备的命令312传输给媒体设备103。
[0051]响应于特定于设备的请求311和/或特定于设备的命令312,媒体设备103传输应用框架301通过输入端口 304接收的音频信号313和/或视频信号314。
[0052]应用403然后使用音频信号313和/或视频信号314来生成音频信号315和/或视频信号316,以提供增强的多媒体功能(例如,使CTI覆盖在视频信号314上、使音频覆盖在音频信号313上)。
[0053]应用框架301然后使用输出端口 305将音频信号315和/或视频信号316传输给输出设备102。
[0054]在一些实施方式中,应用框架301便利通过在输出设备102上显示的⑶I的web搜索和/或web浏览。
[0055]图4是图示根据一些实施方式的应用框架301的模块的框图。应用框架301包括在应用框架301中执行的媒体设备服务401、媒体设备服务应用编程接口(API)402、在应用框架301中执行的应用403以及特定于设备的库405。媒体设备服务401提供在应用403、媒体设备和输出设备之间的抽象接口,以使应用开发者能够在不必知道耦接到客户端设备101的特定媒体设备和/或特定输出设备的细节(例如,特定于设备的句法、特定于设备的协议、特定于设备的API等)的情况下为客户端设备101开发应用。此外,媒体设备服务401通过维护状态转换并且监视在客户端设备101、输出设备102和媒体设备103之间发生的异步动作的进展来隐藏这些异步动作的复杂性。特定于设备的库405提供在从在应用框架301中执行的应用403接收的不指明设备的请求和不指明设备的命令分别到对于目标媒体设备的特定于设备的请求和特定于设备的命令之间的映射。这些映射允许应用开发者调用媒体设备服务API402的媒体设备服务函数404来向媒体设备发出请求(例如,向媒体设备发出不指明设备的请求)和/或向媒体设备发出命令(例如,向媒体设备发出不指明设备的命令),而不必预先知道用户正在使用哪些特定媒体设备或用户能够访问哪些。
[0056]下述论述说明了用于对从输入设备105接收的请求和/或命令进行处理的示例过程。应用403接收输入事件310并且将输入事件310解释成请求和/或命令。应用403调用媒体设备服务API402的媒体设备服务函数404来向媒体设备服务401发出不指明设备的请求411和/或不指明设备的命令412。媒体设备服务401使用不指明设备的请求411和/或不指明设备的命令412的目标媒体设备的特定于设备的库405,来将不指明设备的请求411和/或不指明设备的命令412分别映射到对应的特定于设备的请求311和/或对应的特定于设备的命令312。媒体设备服务401然后向控制设备303发出特定于设备的请求311和/或特定于设备的命令312。
[0057]媒体设备服务401向应用403提供音频信号313和/或视频信号314。应用403可以使音频信号313和/或视频信号314增强,来产生音频信号315和/或视频信号316。
[0058]图5是图示根据一些实施方式的服务器110的框图。服务器110典型地包括用于执行程序(例如,存储在存储器510中的程序)的一个或多个处理单元(CPU,有时被称为处理器)502、一个或多个网络或其他通信接口 504、存储器510以及用于使这些组件互连的一个或多个通信总线509。通信总线509可以包括使系统组件互连并且控制系统组件之间的通信的电路(有时被称为芯片集)。服务器110可选地包括(但是典型地不包括)用户接口 505,其包括显示设备506和输入设备508 (例如,键盘、鼠标、触摸屏、小键盘等)。存储器510包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;以及典型地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。存储器510可选地包括位于远离CPU502的地方的一个或多个存储设备。存储器510或替选地在存储器510内的非易失性存储器设备包括非暂时性计算机可读存储介质。在一些实施方式中,存储器510或存储器510的计算机可读存储介质存储下述程序、模块和数据结构或其子集:
[0059]?操作系统512,其包括用于处理各种基本系统服务以及用于执行依赖硬件的任务的过程;
[0060].通信模块514,其用于通过一个或多个通信接口 504 (有线或无线)以及一个或多个通信网络,诸如因特网、其他广域网、局域网、城域网等,将服务器110连接到其他计算机;
[0061].可选用户接口模块516,其通过输入设备508从用户接收命令,并且在显示设备506中生成用户界面对象;
[0062].前端模块201,如在本文所述的;
[0063].可用性模块202,如在本文所述的;
[0064].内容映射模块205,如在本文所述的;
[0065].元数据导入器模块206-207,如在本文所述的;
[0066].web爬取器模块208,如在本文所述的;
[0067]?搜索索引203,其包括媒体项的实例的内容标识符243和元数据244,如在本文所述的;以及[0068]?可用性数据库204,其包括媒体项的实例的内容标识符243和元数据244,如在本文所述的。
[0069]在一些实施方式中,上面识别的程序或模块对应于用于执行上述功能的指令集。指令集可以由一个或多个处理器(例如,CPU502)执行。上面识别的模块或程序(即,指令集)不必被实现为独立软件程序、过程或模块,因此可以在各种实施方式中对这些程序或模块的各种子集进行组合或另外重新安排。在一些实施方式中,存储器510存储在上面识别的模块和数据结构的子集。此外,存储器510可以存储在上面未描述的另外模块和数据结构。
[0070]尽管图5示出了 “服务器”,然而,图5比作为在本文所述的实施方式的结构示意更意在作为可以存在于一组服务器中的各种特征的功能描述。实际上并且如本领域普通技术人员所认识到的,可以对单独示出的项进行组合,并且可以使一些项分离。例如,在图5中单独示出的一些项可以在单个服务器上实现,并且单个项可以由一个或多个服务器实现。用来实现服务器110的服务器的实际数量以及在它们之间如何分配特征将随实施方式不同而变化,并且可以部分取决于系统在高峰使用时段期间以及在平均使用时段期间必须处理的数据业务量。
[0071]图6是图示根据一些实施方式的客户端设备101的框图。客户端设备101典型地包括用于执行程序(例如,存储在存储器610中的程序)的一个或多个处理单元(CPU,有时被称为处理器)602、一个或多个网络或其他通信接口 604、存储器610、输入设备端口 302、控制设备303、输入端口 304、输出端口 305以及用于使这些组件互连的一个或多个通信总线609。通信总线609可以包括使系统组件互连并且控制系统组件之间的通信的电路(有时被称为芯片集)。存储器610包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;以及典型地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。存储器610可选地包括位于远离CPU602的地方的一个或多个存储设备。存储器610或替选地在存储器610内的非易失性存储器设备包括非暂时性计算机可读存储介质。在一些实施方式中,存储器610或存储器610的计算机可读存储介质存储下述程序、模块和数据结构或其子集:
[0072]?操作系统612,其包括用于处理各种基本系统服务以及用于执行依赖硬件的任务的过程;[0073].通信模块614,其用于通过一个或多个通信接口 604 (有线或无线)以及一个或多个通信网络,诸如因特网、其他广域网、局域网、城域网等,将客户端设备101连接到其他计算机;
[0074].用户接口模块616,其通过输入设备608从用户接收命令,并且在显示设备(例如,输出设备102)中生成用户界面对象;
[0075].应用框架301,其包括自身包括媒体设备服务API402的媒体设备服务401、自身包括媒体设备服务函数404的应用403以及特定于设备的库405,如在本文所述的;以及
[0076]?流数据库618,其存储视频流的URI以及与视频流相关的信息,如在本文所述的。
[0077]在一些实施方式中,上面识别的程序或模块对应于用于执行上述功能的指令集。指令集可以由一个或多个处理器(例如,CPU602)执行。上面识别的模块或程序(即,指令集)不必被实现为独立软件程序、过程或模块,因此可以在各种实施方式中对这些程序或模块的各种子集进行组合或另外重新安排。在一些实施方式中,存储器610存储在上面识别的模块和数据结构的子集。此外,存储器610可以存储在上面未描述的另外模块和数据结构。
[0078]虽然图6示出了“客户端设备”,但与作为本文所述的实施方式的结构示意图相t匕,图6更多意在作为可存在于客户端设备中的各种特征的功能描述。在实践中,并且如本领域的技术人认识到的,可以将单独示出的项组合,并且可以将一些项分离。
[0079]填充流数据库
[0080]如上文所讨论的,期望在客户端设备101上执行的应用从客户端设备可访问的媒体设备获得视频流,使得可在输出设备103上显示这些视频流。由于应用开发者在应用的开发期间不知道哪些媒体设备将被耦接到客户端设备101,所以一些实施方式提供统一资源标识符(URI)寻址机制,其允许应用在不必知道可从其获得视频流的媒体设备的特定细节的情况下引用视频流。URI和与可从媒体设备获得的对客户端设备101可访问的视频流有关的信息被存储在流数据库(例如流数据库618中)。
[0081 ] 在一些实施方式中,视频流是仅包括视频数据的数据流。在这些实施方式中,对应于视频流的视频数据的音频数据被包括在与视频流同步(例如使用时间戳、键帧等)的单独音频流中。
[0082]在一些实施方式中,视频流是包括视频数据和音频数据的数据流。例如,视频流可以是包括视频数据和音频数据的数据容器。在这些实施方式中,视频流还可被称为多媒体流。
[0083]图7是根据一些实施方式的用于利用与视频流有关的信息来填充流数据库618的方法700的流程图。媒体设备服务401识别(702)用于媒体设备(例如媒体设备103)的特定于设备的库(例如特定于设备的库405)。如上文所讨论的,用于媒体设备的特定于设备的库包括可由客户端设备101执行以执行相对于媒体设备的请求的在不指明设备的请求和特定于设备的请求之间的映射。
[0084]媒体设备服务401执行(704)对用于媒体设备的特定设备的库的特定于设备的请求以获得与可从媒体设备获得的视频流有关的信息。在一些实施方式中,与相应视频流有关的信息包括以下中的至少一个:相应视频流的标识符、剧集标识符、相应视频流的名称、频道号、开始时间、结束时间、视频流的类型、用来将连续剧的剧集分组在一起的分组键、创建视频流的日期和/或时间、记录视频流的日期和/或时间以及用于视频流的替选名称(例如以促进搜索)。
[0085]对于可从媒体设备获得的每个视频流,媒体设备服务401执行以下操作。媒体设备服务401生成(706)用于视频流的URI,其中URI包括视频流的类型以及视频流的名称和用于视频流的特定于设备的参数中的至少一个。媒体设备服务401然后在流数据库618中生成包括URI和与视频流有关的信息的至少一部分的记录(708)。如上文所讨论的,流数据库包括用于可从客户端设备101可访问的媒体设备获得的视频流的记录。
[0086]在一些实施方式中,视频流的类型包括以下中的至少一个:频道视频流(例如可从电视服务获得的频道,该电视服务诸如空中电视服务、有线电视服务、卫星电视服务等)、节目视频流(例如电视服务上的特定视频节目),诸如电视连续剧的特定剧集等)、视频点播视频流(例如在视频点播服务上可获得的特定视频)、数字视频录像机视频流(例如数字视频录像机上记录的特定视频)以及设备视频流(例如来自诸如DVD播放器的媒体设备的视频流等)。[0087]在一些实施方式中,视频流的名称是对视频流的抽象引用。例如,如果视频流是电视连续剧的剧集,则视频流的名称可以是剧集的名称。如果视频流是频道视频流,则视频流的名称可以是频道的名称(例如“CNN”)。如果视频流是设备视频流,则视频流的名称可以是设备的名称(例如,用于可从DVD播放器获得的视频流的“DVD”)。
[0088]在一些实施方式中,特定于设备的参数包括以下中的至少一个:媒体设备的标识符、用于频道节目的标识符、视频流的标识符、剧集标识符、视频流的名称、频道号、开始时间以及结束时间。这些特定于设备的参数可用来访问和/或识别被URI引用的视频流。在一些实施方式中,特定于设备的参数用来从多个视频流中辨认视频流。例如,如果存在电视节目的特定剧集的两个实例,则特定于设备的参数可包括用以区别两个实例的信息(例如频道号、开始和/或结束时间等)。类似地,如果存在被耦接到客户端设备101的两个DVD播放器,则特定于设备的参数可包括用于DVD播放器的两个DVD播放器之间进行区别的设备标识符。
[0089]在一些实施方式中,特定URI是多个URI类型中的一个,包括但不限于引用在电视服务(例如空中电视服务、有线电视服务、卫星电视服务等)中可用的特定节目的节目UR1、引用电视服务的特定频道的频道UR1、引用被耦接到客户端设备101的特定设备的设备UR1、引用数字视频录像机上的特定记录或引用特定数字视频录像机的数字视频录像机UR1、以及引用通过视频点播服务可获得的特定视频节目的视频点播URI。下面提供了上述URI的示例:
[0090]不例性节目URI 是:“tv://program/ ? channeINumber = 313&lineupld =DISH807&startTime = 1258725000&endTime = 1258731600”,其中,“program” 表示视频流的类型(例如节目视频流),并且跟在“?”后面的URI部分是可被特定于设备的库用来识别URI引用的视频流的特定于设备的参数(例如,在具有1258725000的开始时间和1258731600的结束时间的频道节目DISH807的频道313上的节目)。
[0091]示例性频道URI是:“tv://channel/CNN”,其中,“channel”表示视频流的类型(例如频道视频流),并且“CNN”表示视频流的名称(例如频道CNN)。
[0092]示例性设备URI是:tv://device/dvd,其中,“device”表示视频流的类型(例如设备视频流),并且“dvd”表示视频流的名称(例如DVD视频流)。其他名称可包括“通过”(例如,用来通过视频流)和“bluray” (例如,被用于蓝光视频流)。
[0093]示例性数字视频录像机URI是:“tv://dvr/a93jfadb”,其中,“dvr”表示视频流的类型(例如,数字视频录像机视频流),并且“a93jfadb”表示视频流的名称(例如,由数字视频录像机生成以表不在数字视频录像机上记录的特定视频的晦潘名称)。另一不例性数字视频录像机 URI 是:“tv://dvr/recording ? name = Batman % 20Begins”,其中,“dvr”表示视频流的类型(例如,数字视频录像机视频流),并且在“ ? ”之后的URI部分表示可被特定于设备的库用来识别URI引用的视频流的特定于设备的参数(例如,具有名称“BatmanBegins”的数字视频录像机上的记录)。
[0094]不例性视频点播URI 是:“tv://vod/ ? IineupId = C0MCAST000&id =guda094jgg43g”,其中,“vod”表示视频流的类型(例如,视频点播视频流),并且在“ ? ”之后的URI部分表示可被特定于设备的库用来识别URI引用的视频流的特定于设备的参数(例如,具有标识符“guda094jgg43g”的在Comcast上可获得的视频点播视频流)。另一示例性视频点播URI是:“tv://vod/ ? name = Bruno”,其中,“vod”表示视频流的类型(例如,视频点播视频流),并且在“ ? ”之后的URI部分表示可被特定于设备的库用来识别URI引用的视频流的特定于设备的参数(例如,具有名称“Bruno”的视频点播视频流)。
[0095]在一些实施方式中,对于被耦接到客户端设备101的每个媒体设备重复方法700。
[0096]虽然方法700图示了媒体设备服务401发起请求(例如,拉方法)以获得与从客户端设备101可访问的媒体设备可获得的视频流有关的信息(例如图7中的操作704),但媒体设备服务401可通过其他机制获得此信息。在一些实施方式中,媒体设备公布与从客户端设备101预订的媒体设备可获得的视频流有关的信息。在一些实施方式中,媒体设备推送与可用于从媒体设备到客户端设备101的视频流有关的信息。在一些实施方式中,媒体设备服务401查询服务器110以获得与从媒体设备可获得的视频流有关的信息(例如,如上文参考图2所述)。在这些实施方式中,媒体设备服务401向服务器110发送查询和客户端设备101可访问的内容源(例如媒体设备)的列表。服务器110然后返回包括与可从媒体设备获得的视频流有关的信息的搜索结果(例如搜索结果235)。
[0097]应注意,虽然上述URI引用视频流,但其他URI可以可用于应用。在一些实施方式中,提供指南URI以获得节目指南。例如,指南URI可以是“ tV: //gui de/ ”,其中,“ gui de ”指示URI是指南URI。在一些实施方式中,提供搜索URI以搜索在流数据库618中可用的视频流。例如,搜索URI 可以是“tv://search/ ? type = channel&name = CNN,,,其中,“search”指示URI是搜索URI,“type = channel ? name = CNN”指示该搜索指向具有名称“CNN”的频道视频流。因此,可使用此搜索URI来找到具有名称“CNN”的所有频道流。在另一示例中,搜索 URI 可以是“tv://search/ ? type = dvr&title = Batman,,,其中,“search,,指不URI是搜索URI, “type = dvr&title = Batman”指示该搜索指向具有标题“Batman”的数字视频录像机视频流。因此,可使用此搜索URI来找到具有标题“Batman”的所有数字视频录像机视频流。
[0098]获得用于视频流的URI
[0099]在利用从客户端设备101可访问的媒体设备可获得的视频流填充数据库618之后,在客户端设备101上执行的应用(例如应用403)可查询流数据库618以获得用于可从媒体设备获得的视频流的URI。
[0100]图8是根据一些实施方式的用于获得用于视频流的统一资源标识符的方法800的流程图。媒体设备服务401接收(802)用于从在客户端设备101上执行的应用(例如应用403)获得用于视频流的URI的请求,其中,用于获得用于视频流的URI(例如,如上所述的URI)的请求包括视频流的类型和视频流的名称。
[0101]媒体设备服务401使用视频流的类型和视频流的名称来查询(804)流数据库618以获得用于视频流的URI。如上文所讨论的,流数据库包括用于可从客户端设备可访问的媒体设备获得的视频流的记录。
[0102]媒体设备服务401向应用返回(806) URI,其中,URI包括视频流的类型以及视频流的名称和用于视频流的特定于设备的参数中的至少一个。
[0103]获得视频流
[0104]在从流数据库618接收到URI之后,在客户端设备101上执行的应用(例如应用403)可使用用于可从媒体设备(例如媒体设备103)获得的视频流的URI。
[0105]图9是根据一些实施方式的用于获得视频流的方法900的流程图。媒体设备服务401从在客户端设备101上执行的应用(例如应用403)接收(902)用于获得视频流的不指明设备的请求,其中,不指明设备的请求包括用于视频流的URI (例如,如上所述的URI)。该URI包括视频流的类型及视频流的名称和用于视频流的特定于设备的参数中的至少一个。例如,URI可以是“tv://channel/CNN”,其中,“channel”表示视频流的类型(例如,可从电视服务获得的频道)并且“CNN”是视频流的名称(例如,频道CNN)。
[0106]媒体设备服务401分析(904)URI以识别可从其获得视频流的媒体设备。现在将注意力指向图10,其为根据一些实施例的用于分析(904)URI以识别可从其获得视频流的媒体设备的方法的流程图。媒体设备服务401分析(1002)URI以至少识别视频流的类型并至少部分地基于视频流的类型来确定(1004)媒体设备。继续来自上文的示例,假设客户端设备101被耦接到有线机顶盒,媒体设备服务401将有线机顶盒识别为可从其获得用于CNN的频道视频流的媒体设备。
[0107]返回图9,媒体设备服务401识别(906)用于媒体设备的特定于设备的库。如上文所讨论的,用于媒体设备的特定于设备的库包括可由客户端设备101执行以执行相对于媒体设备的请求的在不指明设备的请求和特定于设备的请求之间的映射。继续来自上文的示例,媒体设备服务401识别用于有线机顶盒的特定于设备的库。
[0108]媒体设备服务401执行(908)与用于获得视频流的不指明设备的请求相对应的特定于设备的请求,其中,特定于设备的请求包括URI。例如,由于不指明设备的请求是用于获得视频流的请求,媒体设备服务401执行用于获得视频流的特定于设备的请求以从媒体设备获得视频流。
[0109]响应于执行特定于设备的请求,媒体设备服务401从媒体设备获得(910)视频流并将该视频流提供(912)给应用。如上文所讨论的,应用可在输出到输出设备102之前增强或以另外方式修改视频流。
[0110]图7-10中所图示的方法可以受被存储在计算机可读存储介质中并且由客户端的一个或多个处理器执行的指令控制。图7-10中所示的操作中的每一个可以对应于存储在非暂时性计算机存储器或计算机可读存储介质中的指令。在各种实施方式中,非暂时性计算机可读存储介质包括磁或光盘存储设备、诸如闪存的固态存储设备、或一个或多个其他非易失性存储器设备。存储在非暂时性计算机可读存储介质上的计算机可读指令可以以源代码、汇编语言代码、目标代码或由一个或多个处理器解释和/或可执行的其他指令格式。
[0111]可以为在本文被描述为单个实例的组件、操作或结构提供多个实例。最后,在各种组件、操作和数据存储之间的边界有些任意性,并且在特定说明性配置的情境下说明了特定操作。功能的其他分配是预期的,并且可以落在实施方式的范围内。总的来说,被展现为示例配置中的分离组件的结构和功能可以被实现为组合的结构或组件。类似地,被展现为单个组件的结构和功能可以被实现为分离组件。这些和其他变化、修改、添加和改进落在实施方式的范围内。
[0112]还应当理解的是,尽管用语“第一”、“第二”等可以在本文用来描述各种元素,然而,这些元素不应当受这些用语限制。这些用语仅用来区分不同元素。例如,第一接触可以被称为第二接触,并且类似地,第二接触可以被称为第一接触,其改变描述的含义,只要“第一接触”的所有出现均被一致地重命名,并且第二接触的所有出现均被一致地重命名。第一接触和第二接触两个都是接触,但是他们不是同一接触。[0113]在本文所使用的术语仅出于描述特定实施方式的目的,并且并不意在限制权利要求。如在对实施方式和所附权利要求的描述中所使用的,除非上下文另外清楚表明,单数形式不定冠词和定冠词意在也包括复数形式。还应当理解的是,如在本文所使用的用语“和/或”是指并且包括相关联的列出的项中的一个或多个的任何和所有可能组合。应当进一步理解的是,用语“包括”和/或“包含”当在本说明书中使用时,指定陈述的特征、完整物、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其他特征、完整物、步骤、操作、元素、组件和/或其组的存在或添加。
[0114]如在本文所使用的,取决于上下文,用语“如果”可以被解释成意为“在…时”或“当…时”或“响应于确定”或“根据…确定”或“响应于检测到”陈述的先决条件为真。类似地,取决于上下文,短语“如果确定(陈述的先决条件为真)”或“如果(陈述的先决条件为真)”或“当(陈述的先决条件为真)时”可以被解释成意为“当确定…时”或“响应于确定”或“根据…的确定”或“当检测到…时”或“响应于检测到”陈述的先决条件为真。
[0115]前述描述包括实现说明性实施方式的示例性系统、方法、技术、指令序列以及计算机器程序产品。出于说明的目的,阐述了许多特定细节以便提供对发明主题的各种实施方式的理解。然而,对于本领域的技术人员而言将明显的是可以在没有这些特定细节的情况下实践发明主题的实施方式。一般地,未详细示出众所周知的指令实例、协议、结构和技术。
[0116]出于说明目的,已参考特定实施方式描述了前面描述。然而,上面的说明性论述并不意在穷尽或将实施方式限制在所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择并描述了实施方式,以便最好地说明原理及其实际应用,从而使本领域技术人员能够最好地利用所述实施方式以及带有适于预期的特定用途的各种修改的各种实施方式。
【权利要求】
1.一种在客户端设备上执行的用于获得视频流的计算机实现的方法,所述客户端设备具有至少一个处理器和存储用于由所述至少一个处理器执行以执行所述方法的至少一个程序的存储器,所述方法包括: 从在所述客户端设备上执行的应用接收用于获得视频流的不指明设备的请求,所述不指明设备的请求包括用于所述视频流的统一资源标识符(URI),所述URI包括所述视频流的类型以及所述视频流的名称或用于所述视频流的特定于设备的参数中的至少一个; 分析所述URI以识别能从其获得所述视频流的媒体设备; 识别用于所述媒体设备的特定于设备的库,用于所述媒体设备的所述特定于设备的库包括在所述不指明设备的请求和所述特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述媒体设备的请求; 执行与用于获得所述视频流的所述不指明设备的请求相对应的特定于设备的请求,所述特定于设备的请求包括所述URI ; 响应于执行所述特定于设备的请求,从所述媒体设备接收所述视频流;以及 将所述视频流提供给所述应用。
2.根据权利要求1所述的计算机实现的方法,其中,在接收用于获得所述视频流的所述请求之前,所述方法进一步包括: 从所述应用接收用于获 得用于所述视频流的所述URI的请求,用于获得用于所述视频流的所述URI的所述请求包括所述视频流的类型和所述视频流的名称; 使用所述视频流的类型和所述视频流的名称来查询流数据库以获得用于所述视频流的URI,所述流数据库包括用于能从所述客户端设备能访问的媒体设备获得的视频流的记录;以及 将所述URI返回到所述应用。
3.根据权利要求1-2中的任一项所述的计算机实现的方法,其中,在接收用于获得所述视频流的所述请求之前,所述方法进一步包括通过以下操作来用与能从所述客户端设备能访问的相应媒体设备获得的相应视频流有关的信息来填充所述流数据库: 识别用于所述相应媒体设备的相应特定于设备的库; 执行用于所述相应媒体设备的所述相应特定于设备的库的相应特定于设备的请求以获得与能从所述相应媒体设备获得的所述相应视频流有关的信息;以及对于能从所述相应媒体设备获得的每个相应视频流: 生成用于所述相应视频流的相应URI,所述相应URI包括所述相应视频流的相应名称和用于所述相应视频流的相应特定于设备的参数中的至少一个以及所述相应视频流的相应类型;以及 在所述流数据库中生成相应记录,所述相应记录包括所述相应URI和与所述相应视频流有关的信息的至少一部分。
4.根据权利要求3所述的计算机实现的方法,其中,与所述相应视频流有关的信息选自由以下组成的组: 所述相应视频流的标识符; 剧集标识符; 所述相应视频流的名称;所述视频流的类型; 分组键;以及 用于所述视频流的替选名称。
5.根据权利要求1-4中的任一项所述的计算机实现的方法,其中,分析所述URI以识别能从其获得视频流的所述媒体设备包括: 分析所述URI以至少识别所述视频流的类型;以及 至少部分地基于所述视频流的类型来确定所述媒体设备。
6.根据权利要求1-5中的任一项所述的计算机实现的方法,其中,所述视频流的类型选自由以下组成的组: 频道视频流; 节目视频流; 视频点播视频流; 数字视频录像机视频 流;以及 设备视频流。
7.根据权利要求1-6中的任一项所述的计算机实现的方法,其中,所述视频流的名称是对所述视频流的抽象引用。
8.根据权利要求1-7中的任一项所述的计算机实现的方法,其中,所述特定于设备的参数选自由以下组成的组: 所述媒体设备的标识符; 用于频道节目的标识符; 所述视频流的标识符; 剧集标识符; 所述视频流的名称; 频道号; 开始时间;以及 结束时间。
9.一种用于获得视频流的系统,包括: 至少一个处理器; 存储器;以及 至少一个程序,所述至少一个程序被存储在所述存储器中并且能由所述至少一个处理器执行,所述至少一个程序包括用于以下操作的指令: 从在所述客户端设备上执行的应用接收用于获得视频流的不指明设备的请求,所述不指明设备的请求包括用于所述视频流的统一资源标识符(URI),所述URI包括所述视频流的类型以及所述视频流的名称或用于所述视频流的特定于设备的参数中的至少一个; 分析所述URI以识别能从其获得所述视频流的媒体设备; 识别用于所述媒体设备的特定于设备的库,用于所述媒体设备的所述特定于设备的库包括在所述不指明设备的请求和所述特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述媒体设备的请求; 执行与用于获得所述视频流的所述不指明设备的请求相对应的特定于设备的请求,所述特定于设备的请求包括所述URI ; 响应于执行所述特定于设备的请求,从所述媒体设备接收所述视频流;以及 将所述视频流提供给所述应用。
10.根据权利要求9所述的系统,其中,在接收用于获得所述视频流的所述请求之前,所述至少一个程序包括用于以下操作的指令: 从所述应用接收用于获得用于所述视频流的所述URI的请求,用于获得用于所述视频流的所述URI的所述请求包括所述视频流的类型和所述视频流的名称; 使用所述视频流的类型和所述视频流的名称来查询流数据库以获得用于所述视频流的URI,所述流数据库包括用于能从所述客户端设备能访问的媒体设备获得的视频流的记录;以及 将所述URI返回到所述应用。
11.根据权利要求9-10中的任一项所述的系统,其中,在接收用于获得所述视频流的所述请求之前,所述至少一个程序包括用于用与能从所述客户端设备能访问的相应媒体设备获得的相应视频流有关的信息来填充所述流数据库的指令,其中用于用与相应视频流有关的信息来填充所述流数据库的指令包括用于以下操作的指令: 识别用于所述相应媒体设备的相应特定于设备的库; 执行用于所述相应媒体设备的所述相应特定于设备的库的相应特定于设备的请求以获得与能从所述相应媒体设备获得的所述相应视频流有关的信息;以及对于能从所述相应媒体设备获得的每个相应视频流: 生成用于所述相应视频流的相应URI,所述相应URI包括所述相应视频流的相应名称和用于所述相应视频流的相应特定于设备的参数中的至少一个以及所述相应视频流的相应类型;以及 在所述流数据库中生成相应记录,所述相应记录包括所述相应URI和与所述相应视频流有关的信息的至少一部分。
12.根据权利要求11所述的系统,其中,与所述相应视频流有关的信息选自由以下组成的组: 所述相应视频流的标识符; 剧集标识符; 所述相应视频流的名称; 所述视频流的类型; 分组键;以及 用于所述视频流的替选名称。
13.根据权利要求9-12中的任一项所述的系统,其中,用于分析所述URI以识别能从其获得所述视频流的所述媒体设备的指令包括用于以下操作的指令: 分析所述URI以至少识别所述视频流的类型;以及 至少部分地基于所述视频流的类型来确定所述媒体设备。
14.根据权利要求9-13中的任一项所述的系统,其中,所述视频流的类型选自由以下组成的组: 频道视频流;节目视频流; 视频点播视频流; 数字视频录像机视频流;以及 设备视频流。
15.根据权利要求9-14中的任一项所述的系统,其中,所述视频流的名称是对所述视频流的抽象引用。
16.根据权利要求9-15中的任一项所述的系统,其中,所述特定于设备的参数选自由以下组成的组: 所述媒体设备的标识符; 用于频道节目的标识符; 所述视频流的标识符; 剧集标识符; 所述视频流的名称; 频道号; 开始时间;以及 结束时间。
17.一种存储被配置成由计算机系统的至少一个处理器执行的至少一个程序的非瞬时计算机可读存储介质,所述至少一个程序包括用于以下操作的指令: 从在所述客户端设备上执行的应用接收用于获得视频流的不指明设备的请求,所述不指明设备的请求包括用于所述视频流的统一资源标识符(URI),所述URI包括所述视频流的类型以及所述视频流的名称或用于所述视频流的特定于设备的参数中的至少一个; 分析所述URI以识别能从其获得所述视频流的媒体设备; 识别用于所述媒体设备的特定于设备的库,用于所述媒体设备的所述特定于设备的库包括在所述不指明设备的请求和所述特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述媒体设备的请求; 执行与用于获得所述视频流的所述不指明设备的请求相对应的特定于设备的请求,所述特定于设备的请求包括所述URI ; 响应于执行所述特定于设备的请求,从所述媒体设备接收所述视频流;以及 将所述视频流提供给所述应用。
18.根据权利要求17所述的非瞬时计算机可读存储介质,其中,在接收用于获得所述视频流的所述请求之前,所述至少一个程序包括用于以下操作的指令: 从所述应用接收用于获得用于所述视频流的所述URI的请求,用于获得用于所述视频流的所述URI的所述请求包括所述视频流的类型和所述视频流的名称; 使用所述视频流的类型和所述视频流的名称来查询流数据库以获得用于所述视频流的URI,所述流数据库包括用于能从所述客户端设备能访问的媒体设备获得的视频流的记录;以及 将所述URI返回到所述应用。
19.根据权利要求17-18中的任一项所述的非瞬时计算机可读存储介质,其中,在接收用于获得所述视频流的所述请求之前,所述至少一个程序包括用于用与能从所述客户端设备能访问的相应媒体设备获得的相应视频流有关的信息来填充所述流数据库的指令,其中用于用与相应视频流有关的信息来填充所述流数据库的指令包括用于以下操作的指令:识别用于所述相应媒体设备的相应特定于设备的库; 执行用于所述相应媒体设备的所述相应特定于设备的库的相应特定于设备的请求以获得与能从所述相应媒体设备获得的所述相应视频流有关的信息;以及对于能从所述相应媒体设备获得的每个相应视频流: 生成用于所述相应视频流的相应URI,所述相应URI包括所述相应视频流的相应名称和用于所述相应视频流的相应特定于设备的参数中的至少一个以及所述相应视频流的相应类型;以及 在所述流数据库中生成相应记录,所述相应记录包括所述相应URI和与所述相应视频流有关的信息的至少一部分。
20.根据权利要求19所述的非瞬时计算机可读存储介质,其中,与所述相应视频流有关的信息选自由以下组成的组: 所述相应视频流的标识符; 剧集标识符; 所述相应视频流的名称; 所述视频流的类型; 分组键;以及 用于所述视频流的替选名称。
21.根据权利要求17-20中的任一项所述的非瞬时计算机可读存储介质,其中,用于分析URI以识别能从其获得所述视频流的所述媒体设备的指令包括用于以下操作的指令: 分析所述URI以至少识别所述视频流的类型;以及 至少部分地基于所述视频流的类型来确定所述媒体设备。
22.根据权利要求17-21中的任一项所述的非瞬时计算机可读存储介质,其中,所述视频流的类型选自由以下组成的组: 频道视频流; 节目视频流; 视频点播视频流; 数字视频录像机视频流;以及 设备视频流。
23.根据权利要求17-22中的任一项所述的非瞬时计算机可读存储介质,其中,所述视频流的名称是对所述视频流的抽象引用。
24.根据权利要求17-23中的任一项所述的非瞬时计算机可读存储介质,其中,所述特定于设备的参数选自由以下组成的组: 所述媒体设备的标识符; 用于频道节目的标识符; 所述视频流的标识符; 剧集标识符; 所述视频流的名称;频道号; 开始时间;以及 结束时间。
25.一种存储被配置为由系统的至少一个处理器执行的至少一个程序的非瞬时计算机可读存储介质,所述至少一个程序包括要由所述至少一个处理器执行以便执行根据权利要求1-8中的任一项所述的方法的指令。
26.—种系统,包括: 至少一个处理器;以及 存储器,所述存储器存储用于由所述至少一个处理器执行的至少一个程序; 所述系统包括用于执行根据权利要求1-8中的任一项所述的方法的装置。
27.一种在客户端设备上执行的用于获得用于视频流的统一资源标识符(URI)的计算机实现的方法,所述客户端设备具有至少一个处理器和存储由所述至少一个处理器执行以执行所述方法的至少一个程序的存储器,所述方法包括: 从在所述客户端设备上执行的应用接收用于获得用于视频流的URI的请求,用于获得用于所述视频流的所述URI的所述请求包括所述视频流的类型和所述视频流的名称; 使用所述视频流的类型 和所述视频流的名称来查询流数据库以获得用于所述视频流的所述URI,所述流数据库包括用于能从所述客户端设备能访问的媒体设备获得的视频流的记录;以及 向所述应用返回所述URI,所述URI包括所述视频流的名称或用于所述视频流的特定于设备的参数中的至少一个以及所述视频流的类型。
28.根据权利要求27所述的计算机实现的方法,其中,在接收用于获得用于所述视频流的所述URI的所述请求之前,所述方法进一步包括通过以下操作来用与能从所述客户端设备能访问的相应媒体设备获得的相应视频流有关的信息来填充所述流数据库: 识别用于所述相应媒体设备的相应特定于设备的库,用于所述相应媒体设备的所述相应特定于设备的库包括在不指明设备的请求和特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述相应媒体设备的请求; 执行用于所述相应媒体设备的所述相应特定于设备的库的相应特定于设备的请求以获得与能从所述相应媒体设备获得的所述相应视频流有关的信息;以及对于能从所述相应媒体设备获得的每个相应视频流: 生成用于所述相应视频流的相应URI,所述相应URI包括所述相应视频流的相应名称或用于所述相应视频流的相应特定于设备的参数中的至少一个以及所述相应视频流的相应类型;以及 在流数据库中生成相应记录,所述相应记录包括所述相应URI和与所述相应视频流有关的信息的至少一部分。
29.根据权利要求28该的计算机实现的方法,其中,与所述相应视频流有关的信息选自由以下组成的组: 所述相应视频流的标识符; 剧集标识符; 所述相应视频流的名称;所述视频流的类型; 分组键;以及 用于所述视频流的替选名称。
30.根据权利要求27-29中的任一项所述的计算机实现的方法,进一步包括: 从所述应用接收用于获得所述视频流的不指明设备的请求,所述不指明设备的请求包括用于所述视频流的所述URI ; 分析所述URI以识别能从其获得所述视频流的媒体设备; 识别用于所述媒体设备的特定于设备的库,用于所述媒体设备的所述特定于设备的库包括在所述不指明设备的请求和所述特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述媒体设备的请求; 执行与用于获得所述视频流的所述不指明设备的请求相对应的特定于设备的请求,所述特定于设备的请求包括所述URI ; 响应于执行所述特定于设备的请求,从所述媒体设备 接收所述视频流;以及 将所述视频流提供给所述应用。
31.根据权利要求30所述的计算机实现的方法,其中,分析所述URI以识别能从其获得所述视频流的所述媒体设备包括: 分析所述URI以至少识别所述视频流的类型;以及 至少部分地基于所述视频流的类型来确定所述媒体设备。
32.根据权利要求27-31中的任一项所述的计算机实现的方法,其中,所述视频流的类型选自由以下组成的组: 频道视频流; 节目视频流; 视频点播视频流; 数字视频录像机视频流;以及 设备视频流。
33.根据权利要求27-32中的任一项所述的计算机实现的方法,其中,所述视频流的名称是对所述视频流的抽象引用。
34.根据权利要求27-33中的任一项所述的计算机实现的方法,其中,所述特定于设备的参数选自由以下组成的组: 所述媒体设备的标识符; 用于频道节目的标识符; 所述视频流的标识符; 剧集标识符; 所述视频流的名称; 频道号; 开始时间;以及 结束时间。
35.一种用于获得用于视频流的统一资源标识符(URI)的系统,包括: 至少一个处理器;存储器;以及 至少一个程序,所述至少一个程序被存储在所述存储器中并且能由所述至少一个处理器执行,所述至少一个程序包括用于以下操作的指令: 从在所述客户端设备上执行的应用接收用于获得用于视频流的URI的请求,用于获得用于所述视频流的所述URI的所述请求包括所述视频流的类型和所述视频流的名称; 使用所述视频流的类型和所述视频流的名称来查询流数据库以获得用于所述视频流的所述URI,所述流数据库包括用于能从所述客户端设备能访问的媒体设备获得的视频流的记录;以及 向所述应用返回所述URI,所述URI包括所述视频流的名称和用于所述视频流的特定于设备的参数中的至少一个以及所述视频流的类型。
36.根据权利要求35所述的系统,其中,在接收用于获得用于所述视频流的所述URI的所述请求之前,所述至少一个程序包括用于利用与能从所述客户端设备能访问的相应媒体设备获得的相应视频流有关的信息来填充所述流数据库的指令,其中用于利用与相应视频流有关的信息来填充所述流数据库的指令包括用于以下操作的指令: 识别用于所述相应媒体设备的相应特定于设备的库,用于所述相应媒体设备的所述相应特定于设备的库包括在不指明设备的请求和特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述相应媒体设备的请求; 执行用于所述相应媒体设备的所述相应特定于设备的库的相应特定于设备的请求以获得与能从所述相应媒体设备获得的所述相应视频流有关的信息;以及对于能从所述相应媒体设备获得的每个相应视频流: 生成用于所述相应视频流的相应URI,所述相应URI包括所述相应视频流的相应名称或用于所述相应视频流的相应特定于设备的参数中的至少一个以及所述相应视频流的相应类型;以及 在流数据库中生成相应记录,所述相应记录包括所述相应URI和与所述相应视频流有关的信息的至少一部分。
37.根据权利要求36所述的系统,其中,与所述相应视频流有关的信息选自由以下组成的组: 所述相应视频流的标识符; 剧集标识符; 所述相应视频流的名称; 所述视频流的类型; 分组键;以及 用于所述视频流的替选名称。
38.根据权利要求35-37中的任一项所述的系统,所述至少一个程序包括用于以下操作的指令: 从所述应用接收用于获得所述视频流的不指明设备的请求,所述不指明设备的请求包括用于所述视频流的所述URI ; 分析所述URI以识别能从其获得所述视频流的媒体设备; 识别用于所述媒体设备的特定于设备的库,用于所述媒体设备的所述特定于设备的库包括在所述不指明设备的请求和所述特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述媒体设备的请求; 执行与用于获得所述视频流的所述不指明设备的请求相对应的特定于设备的请求,所述特定于设备的请求包括所述URI ; 响应于执行所述特定于设备的请求,从所述媒体设备接收所述视频流;以及 将所述视频流提供给所述应用。
39.根据权利要求38所述的系统,其中,用于分析所述URI以识别能从其获得所述视频流的所述媒体设备的指令包括用于以下操作的指令: 分析所述URI以至少识别所述视频流的类型;以及 至少部分地基于所述视频流的类型来确定所述媒体设备。
40.根据权利要求35-39中的任一项所述的系统,其中,所述视频流的类型选自由以下组成的组: 频道视频流; 节目视频流; 视频点播视频流; 数字视频录像机视频流;以及 设备视频流。
41.根据权利要求35-40中的任一项所述的系统,其中,所述视频流的名称是对所述视频流的抽象引用。
42.根据权利要求35-41中的任一项所述的系统,其中,所述特定于设备的参数选自由以下组成的组: 所述媒体设备的标识符; 用于频道节目的标识符; 所述视频流的标识符; 剧集标识符; 所述视频流的名称; 频道号; 开始时间;以及 结束时间。
43.一种存储被配置成由计算机系统的至少一个处理器执行的至少一个程序的非瞬时计算机可读存储介质,所述至少一个程序包括用于以下操作的指令: 从在所述客户端设备上执行的应用接收用于获得用于视频流的URI的请求,用于获得用于所述视频流的所述URI的所述请求包括所述视频流的类型和所述视频流的名称; 使用所述视频流的类型和所述视频流的名称来查询流数据库以获得用于所述视频流的所述URI,所述流数据库包括用于能从所述客户端设备能访问的媒体设备获得的视频流的记录;以及 向所述应用返回所述URI,所述URI包括所述视频流的名称和用于所述视频流的特定于设备的参数中的至少一个以及所述视频流的类型。
44.根据权利要求43所述的非瞬时计算机可读存储介质,其中,在接收用于获得用于所述视频流的所述URI的所述请求之前,所述至少一个程序包括用于利用与能从所述客户端设备能访问的相应媒体设备获得的相应视频流有关的信息来填充所述流数据库的指令,其中用于利用与相应视频流有关的信息来填充所述流数据库的指令包括用于以下操作的指令: 识别用于所述相应媒体设备的相应特定于设备的库,用于所述相应媒体设备的所述相应特定于设备的库包括在不指明设备的请求和特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述相应媒体设备的请求; 执行用于所述相应媒体设备的所述相应特定于设备的库的相应特定于设备的请求以获得与能从所述相应媒体设备获得的所述相应视频流有关的信息;以及对于能从所述相应媒体设备获得的每个相应视频流: 生成用于所述相应视 频流的相应URI,所述相应URI包括所述相应视频流的相应名称或用于所述相应视频流的相应特定于设备的参数中的至少一个以及所述相应视频流的相应类型;以及 在流数据库中生成相应记录,所述相应记录包括所述相应URI和与所述相应视频流有关的信息的至少一部分。
45.根据权利要求44所述的非瞬时计算机可读存储介质,其中,与所述相应视频流有关的信息选自由以下组成的组: 所述相应视频流的标识符; 剧集标识符; 所述相应视频流的名称; 频道号; 所述视频流的类型; 分组键;以及 用于所述视频流的替选名称。
46.根据权利要求43-45中的任一项所述的非瞬时计算机可读存储介质,所述至少一个程序包括用于以下操作的指令: 从所述应用接收用于获得所述视频流的不指明设备的请求,所述不指明设备的请求包括用于所述视频流的所述URI ; 分析所述URI以识别能从其获得所述视频流的媒体设备; 识别用于所述媒体设备的特定于设备的库,用于所述媒体设备的所述特定于设备的库包括在所述不指明设备的请求和所述特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述媒体设备的请求; 执行与用于获得所述视频流的所述不指明设备的请求相对应的特定于设备的请求,所述特定于设备的请求包括所述URI ; 响应于执行所述特定于设备的请求,从所述媒体设备接收所述视频流;以及 将所述视频流提供给所述应用。
47.根据权利要求46所述的非瞬时计算机可读存储介质,其中,用于分析所述URI以识别能从其获得所述视频流的所述媒体设备的指令包括用于以下操作的指令: 分析所述URI以至少识别所述视频流的类型;以及至少部分地基于所述视频流的类型来确定所述媒体设备。
48.根据权利要求43-47中的任一项所述的非瞬时计算机可读存储介质,其中,所述视频流的类型选自由以下组成的组: 频道视频流; 节目视频流; 视频点播视频流; 数字视频录像机视频流;以及 设备视频流。
49.根据权利要求43-48中的任一项所述的非瞬时计算机可读存储介质,其中,所述视频流的名称是对所述视频流的抽象引用。
50.根据权利要求43-49中的任一项所述的非瞬时计算机可读存储介质,其中,所述特定于设备的参数选自由以下组成的组: 所述媒体设备的标识符; 用于频道节目的标识符; 所述视频流的标识符; 剧集标识符; 所述视频流的名称; 频道号; 开始时间;以及 结束时间。
51.一种存储被配置为由系统的至少一个处理器执行的至少一个程序的非瞬时计算机可读存储介质,所述至少一个程序包括要由所述至少一个处理器执行以执行根据权利要求27-34中的任一项所述的方法的指令。
52.—种系统,包括: 至少一个处理器;以及 存储器,所述存储器存储用于由所述至少一个处理器执行的至少一个程序; 所述系统包括用于执行根据权利要求27-34中的任一项所述的方法的装置。
53.一种在客户端设备上执行的用于利用与视频流有关的信息来填充流数据库的计算机实现的方法,所述客户端设备具有至少一个处理器和存储由所述至少一个处理器执行以执行所述方法的至少一个程序的存储器,所述方法包括: 识别用于媒体设备的特定于设备的库,用于所述媒体设备的所述特定于设备的库包括在不指明设备的请求和特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述媒体设备的请求; 执行用于所述媒体设备的所述特定于设备的库的特定于设备的请求以获得与能从所述媒体设备获得的所述视频流有关的信息;以及对于能从所述媒体设备获得的每个视频流: 生成用于所述视频流的统一资源标识符(URI),所述URI包括所述视频流的名称或用于所述视频流的特定于设备的参数中的至少一个以及所述视频流的类型;以及 在流数据库中生成记录,所述记录包括所述URI和与所述视频流有关的所述信息的至少一部分,所述流数据库包括用于能从所述客户端设备能访问的媒体设备获得的视频流的记录。
54.根据权利要求53所述的计算机实现的方法,其中,与相应视频流有关的信息选自由以下组成的组: 所述相应视频流的标识符; 剧集标识符; 所述相应视频流的名称; 频道号; 开始时间;以及 结束时间。
55.根据权利要求53-54中的任一项所述的计算机实现的方法,进一步包括:从在所述客户端设备上执行的应用接收用于获得用于视频流的URI的请求,用于获得用于所述视频流的所述URI的所述请求包括所述视频流的类型和所述视频流的名称; 使用所述视频流的类型和所述视频流的名称来查询所述流数据库以获得用于所述视频流的所述URI ;以及 将所述URI返回到所述应用。
56.根据权利要求55所述的计算机实现的方法,进一步包括: 从所述应用接收用于获得视频流的不指明设备的请求,所述不指明设备的请求包括用于所述视频流的所述URI ; 分析所述URI以识别能从其获得所述视频流的媒体设备; 识别用于所述媒体设备的特定于设备的库; 执行与用于获得所述视频流的所述不指明设备的请求相对应的特定于设备的请求,所述特定于设备的请求包括所述URI ; 响应于执行所述特定于设备的请求,从所述媒体设备接收所述视频流;以及 将所述视频流提供给所述应用。
57.根据权利要求56所述的计算机实现的方法,其中,分析所述URI以识别能从其获得所述视频流的所述媒体设备包括: 分析所述URI以至少识别所述视频流的类型;以及 至少部分地基于所述视频流的类型来确定所述媒体设备。
58.根据权利要求53-57中的任一项所述的计算机实现的方法,其中,所述视频流的类型选自由以下组成的组: 频道视频流; 节目视频流; 视频点播视频流; 数字视频录像机视频流;以及 设备视频流。
59.根据权利要求53-58中的任一项所述的计算机实现的方法,其中,所述视频流的名称是对所述视频流的抽象引用。
60.根据权利要求53-59中的任一项所述的计算机实现的方法,其中,所述特定于设备的参数选自由以下组成的组: 所述媒体设备的标识符; 用于频道节目的标识符; 所述视频流的标识符; 剧集标识符; 所述视频流的名称; 频道号; 开始时间;以及 结束时间。
61.一种利用与视频流有关的信息来填充流数据库的系统,包括: 至少一个处理器; 存储器;以及 至少一个程序,所述至少一个程序被存储在所述存储器中并且能由所述至少一个处理器执行,所述至少一个程序包括用于以下操作的指令: 识别用于媒体设备的特定于设备的库,用于所述媒体设备的所述特定于设备的库包括在不指明设备的请求和特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述媒体设备的请求; 执行用于所述媒体设备的所述特定于设备的库的特定于设备的请求以获得与能从所述媒体设备获得的所述视频流有关的信息;以及对于能从所述媒体设备获得的每个视频流: 生成用于所述视频流的统一资源标识符(URI),所述URI包括所述视频流的名称或用于所述视频流的特定于设备的参数中的至少一个以及所述视频流的类型;以及 在流数据库中生成记录,所述记录包括所述URI和与所述视频流有关的信息的至少一部分,所述流数据库包括用于能从所述客户端设备能访问的媒体设备获得的视频流的记录。
62.根据权利要求61所述的系统,其中,与相应视频流有关的信息选自由以下组成的组: 所述相应视频流的标识符; 剧集标识符; 所述相应视频流的名称; 频道号; 开始时间;以及 结束时间。
63.根据权利要求61-62中的任一项所述的系统,其中,所述至少一个程序包括用于以下操作的指令: 从在所述客户端设备上执行的应用接收用于获得用于视频流的URI的请求,用于获得用于所述视频流的所述URI的所述请求包括所述视频流的类型和所述视频流的名称; 使用所述视频流的类型和所述视频流的名称来查询所述流数据库以获得用于所述视频流的所述URI ;以及将所述URI返回到所述应用。
64.根据权利要求63所述的系统,其中,所述至少一个程序包括用于以下操作的指令: 从所述应用接收用于获得视频流的不指明设备的请求,所述不指明设备的请求包括用于所述视频流的所述URI ; 分析所述URI以识别能从其获得所述视频流的媒体设备; 识别用于所述媒体设备的特定于设备的库; 执行与用于获得所述视频流的所述不指明设备的请求相对应的特定于设备的请求,所述特定于设备的请求包括所述URI ; 响应于执行所述特定于设备的请求,从所述媒体设备接收所述视频流;以及 将所述视频流提供给所述应用。
65.根据权利要求64所述的系统,其中,用于分析所述URI以识别能从其获得所述视频流的所述媒体设备的指令包括用于以下操作的指令: 分析所述URI以至少识别所述视频流的类型;以及 至少部分地基于所述视频流的类型来确定所述媒体设备。
66.根据权利要求61 -65中的任一项所述的系统,其中,所述视频流的类型选自由以下组成的组: 频道视频流; 节目视频流; 视频点播视频流; 数字视频录像机视频流;以及 设备视频流。
67.根据权利要求61-66中的任一项所述的系统,其中,所述视频流的名称是对所述视频流的抽象引用。
68.根据权利要求61-67中的任一项所述的系统,其中,所述特定于设备的参数选自由以下组成的组: 所述媒体设备的标识符; 用于频道节目的标识符; 所述视频流的标识符; 剧集标识符; 所述视频流的名称; 频道号; 开始时间;以及 结束时间。
69.一种存储被配置成由计算机系统的至少一个处理器执行的至少一个程序的非瞬时计算机可读存储介质,所述至少一个程序包括用于以下操作的指令: 识别用于媒体设备的特定于设备的库,用于所述媒体设备的所述特定于设备的库包括在不指明设备的请求和特定于设备的请求之间的映射,所述映射能由所述客户端设备执行以执行相对于所述媒体设备的请求; 执行用于所述媒体设备的所述特定于设备的库的特定于设备的请求以获得与能从所述媒体设备获得的所述视频流有关的信息;以及对于能从所述媒体设备获得的每个视频流: 生成用于所述视频流的统一资源标识符(URI),所述URI包括所述视频流的名称或用于所述视频流的特定于设备的参数中的至少一个以及所述视频流的类型;以及 在流数据库中生成记录,所述记录包括所述URI和与所述视频流有关的所述信息的至少一部分,所述流数据库包括用于能从所述客户端设备能访问的媒体设备获得的视频流的记录。
70.根据权利要求69所述的非瞬时计算机可读存储介质,其中,与相应视频流有关的信息选自由以下组成的组: 所述相应视频流的标识符; 剧集标识符; 所述相应视频流的名称; 频道号; 开始时间;以及 结束时间。
71.根据权利要求69-70中的任一项所述的非瞬时计算机可读存储介质,其中,所述至少一个程序包括用于以下操作的指令: 从在所述客户端设备上执行的应用接收用于获得用于视频流的URI的请求,用于获得用于所述视频流的所述URI的所述请求包括所述视频流的类型和所述视频流的名称; 使用所述视频流的类型和所述视频流的名称来查询所述流数据库以获得用于所述视频流的所述URI ;以及 将所述URI返回到所述应用。
72.根据权利要求71所述的非瞬时计算机可读存储介质,其中,所述至少一个程序包括用于以下操作的指令: 从所述应用接收用于获得视频流的不指明设备的请求,所述不指明设备的请求包括用于所述视频流的所述URI ; 分析所述URI以识别能从其获得所述视频流的媒体设备;识别用于所述媒体设备的特定于设备的库; 执行与用于获得所述视频流的所述不指明设备的请求相对应的特定于设备的请求,所述特定于设备的请求包括所述URI ; 响应于执行所述特定于设备的请求,从所述媒体设备接收所述视频流;以及 将所述视频流提供给所述应用。
73.根据权利要求72所述的非瞬时计算机可读存储介质,其中,用于分析所述URI以识别能从其获得所述视频流的所述媒体设备的指令包括用于以下操作的指令: 分析所述URI以至少识别所述视频流的类型;以及 至少部分地基于所述视频流的类型来确定所述媒体设备。
74.根据权利要求69-73中的任一项所述的非瞬时计算机可读存储介质,其中,所述视频流的类型选自由以下组成的组: 频道视频流;节目视频流; 视频点播视频流; 数字视频录像机视频流;以及 设备视频流。
75.根据权利要求69-74中的任一项所述的非瞬时计算机可读存储介质,其中,所述视频流的名称是对所述视频流的抽象引用。
76.根据权利要求69-75中的任一项所述的计算机可读存储介质,其中,所述特定于设备的参数选自由以下组成的组: 所述媒体设备的标识符; 用于频道节目的标识符; 所述视频流的标识符; 剧集标识符; 所述视频流的名称; 频道号; 开始时间;以及 结束时间。
77.一种存储被配置为由系统的至少一个处理器执行的至少一个程序的非瞬时计算机可读存储介质,所述至少一个程序包括要由所述至少一个处理器执行以执行根据权利要求53-60中的任一项所述的方法的指令。
78.—种系统,包括: 至少一个处理器;以及 存储器,所述存储器存储用于由所述至少一个处理器执行的至少一个程序; 所述系统包括用于执行根据权利要求53-60中的任一项所述的方法的装置。
【文档编号】H04N21/234GK103959795SQ201280059546
【公开日】2014年7月30日 申请日期:2012年10月2日 优先权日:2011年10月4日
【发明者】贾斯汀·戈, 皮埃尔-伊夫·拉利冈 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1