媒体内容检索系统和个人虚拟频道的制作方法

文档序号:7911438阅读:271来源:国知局
专利名称:媒体内容检索系统和个人虚拟频道的制作方法
媒体内容检索系统和个人虚拟频道
背景技术
传统上,人们以与他们体验他们的电视机不同的方式来体验他们的家用计算机。 具体而言,用户通过他们的电视机接收广播内容,而通过他们的计算机接收诸如视频、照片、音乐和音频文件之类的因特网媒体内容。然而,有合并这两种体验的新的推动。人们越来越多地使用他们的电视机来接收传统的因特网内容,而使用他们的计算机来接收传统的
广播内容。基本上保持在计算机的范围内的一个区域是因特网导航和媒体搜索。出现这种情况的一个原因是,用于接收电视内容的传统的机顶盒(STB)没有配备有典型的计算机具有的处理能力或浏览功能。这种情况的一个示例是,机顶盒只能够播放现有的大量各种媒体文件格式中数量有限的格式。视频文件被编码为Windows媒体视频(WMV)、flash视频 (FLV) ,MPEG视频文件,以及许多其他格式。音频文件被编码为Windows媒体音频(WMA)、波形音频格式(WAV)、以及MPEG音频层3 (MP3),等等。而图形文件被作为JPG、GIF、TIF等等来存储。常规机顶盒对于每一种类型的媒体,只支持数量有限的格式。尽管诸如机顶盒之类的客户端设备确实具有一些因特网搜索功能,并能够播放某些类型的媒体文件,但是,这些能力是受限的。的确可以提供与传统的PC计算机具有相同处理能力和浏览功能的机顶盒。然而,这将显著增加机顶盒的成本。增加机顶盒的成本与当前趋势相反,当前趋势是给机顶盒提供处理广播和某些类型的下载内容的功能,但要使它们保持简单而便宜。因此,为了体验通过万维网可用的大量各种媒体文件,用户仍转向他们的计算机。另一方面,主要保持在电视的范围内的一个领域是接收内容而无需用户主动地寻找并选择他们接收到的所有内容的能力。尽管用户可以使用他们的计算机在网上冲浪并只接收他们感兴趣的内容,但是,在一个内容片段结束时,用户必须主动地选择另一个内容片段。相反,利用电视,用户可以调到一个频道,然后坐好,并接收由电视台选择的无终止的内容流。尽管电视台提供大量各种内容,但是,用户并不总是能够发现正在播放用户感兴趣的特定内容的频道。

发明内容
粗略地描述的本系统涉及用于媒体内容搜索与检索的系统,以及能够使用该系统的虚拟电视频道。本系统可以在诸如例如,家庭PC之类的媒体服务服务器,以及诸如例如, 电视系统的机顶盒、移动电话、个人数字助理或游戏控制台之类的客户端设备上实现。本系统的第一方面涉及一种媒体下载控制引擎,该控制引擎使具有有限的能力的客户端设备能够播放来自网站的该客户端设备不支持的格式的媒体内容。媒体下载控制引擎最初通过作为在客户端设备和在其上面存储了媒体内容的远程服务器之间的中介来控制媒体搜索过程。媒体下载控制引擎格式化由客户端设备作出的对内容的请求,以使得客户端设备只需接收用户选择,该选择被自动路由到媒体服务服务器,该媒体服务服务器处理该请求,并返回被请求的信息。
到特定媒体文件的链接被媒体服务服务器格式化,然后,被发送到客户端设备。媒体服务服务器能够检测客户端设备的能力,具体而言,检测哪些类型的媒体文件得到客户端设备的支持。当用户选择所支持的媒体文件来进行下载时,到此内容的链接被从媒体服务服务器提供到客户端设备,以使得客户端设备直接从主存了所希望的媒体文件的远程服务器请求内容。另一方面,如果用户选择了不支持的媒体文件来进行下载,则到此内容的链接被从媒体服务服务器提供到客户端设备,以使得客户端设备向媒体服务服务器作出对内容的请求。然后,媒体服务服务器从远程服务器获取内容,并将它代码转换为由客户端设备支持的格式。然后,将经过代码转换的文件发送到客户端设备,以供播放。媒体下载控制引擎给用户提供了搜索媒体内容并将其直接下载到他们的电视系统的能力。本系统的第二方面可以利用媒体下载控制引擎来获取媒体内容和创建自定义虚拟频道。第二方面特别涉及虚拟频道引擎,该引擎为用户调度内容的连续流,该内容是基于用户感兴趣的主题选定的。提示用户输入搜索查询。一旦输入了查询,搜索引擎就返回涉及该搜索查询的结果。除来自根搜索查询的结果之外,可以从根搜索查询导出额外的查询, 还可获取来自导出的搜索查询的结果。然后,将来自根和导出的搜索查询的结果的媒体内容一起放入到媒体内容节目中,供用户通过虚拟电视频道查看。根和相应的导出的搜索查询可以各自形成虚拟频道上的不同的节目。基于各种条件,包括内容时长和结果与根和导出的搜索查询的接近度,将内容添加到节目中。一旦节目被组合,就将它们调度到未来,诸如,例如,提前1到2个星期。 用户可以查看电子节目指南上的日程表,并选择他或她希望查看或收听的节目。


图1是根据本系统的一个实施例的系统的体系结构的框图。图2是根据本系统的一个实施例的媒体服务服务器的框图。图3A-3C是根据本系统的一个实施例的媒体下载控制引擎的操作的流程图。图4-5C是根据本系统的一个实施例的媒体下载控制引擎呈现的图形用户界面的例图。图6A-6C是根据本系统的一个实施例的虚拟频道引擎的操作的流程图。图7和8是根据本系统的一个实施例的虚拟频道引擎呈现的图形用户界面的例图。图9是根据本系统的一个实施例的虚拟频道引擎呈现的图形用户界面上的电子节目指南的例图。图10是根据本系统的一个实施例的客户端设备的框图。图11是根据本系统的一个实施例的用于实现本地机顶盒广告插入的计算环境的框图。
具体实施例方式现在将参考图1-11描述系统的实施例,一般而言,这些实施例涉及用于媒体内容搜索与检索的系统,以及能够使用该系统的虚拟电视频道。在本系统的第一方面,一种媒体下载控制引擎使具有有限的能力的客户端设备能够定位和播放来自网站的该客户端设备不支持的格式的媒体内容。媒体下载和控制引擎由诸如PC之类的媒体服务服务器主存,该媒体服务服务器指示客户端设备作出通过媒体服务服务器的对不受支持的媒体文件的请求。媒体服务服务器获取不支持的媒体文件,并将它们代码转换为由客户端设备支持的格式。然后,将经过代码转换的文件发送到客户端设备,供客户端设备播放。本系统的第二方面可以利用媒体下载控制引擎来获取媒体内容和创建自定义虚拟频道。第二方面特别涉及虚拟频道引擎,该引擎为用户调度连续的内容流,该内容是基于用户感兴趣的主题选定的。首先参考图1,示出了包括媒体服务服务器102和客户端设备104的系统体系结构 100。在各实施例中,媒体服务服务器102可以是诸如传统的家庭PC之类的计算设备,而客户端设备104可以是附接到可以是电视机的显示器106的机顶盒。下面参考图11阐述了其中客户端设备104是机顶盒的实施例的比较详细的描述,下面参考图9阐述了媒体服务服务器的示例的比较详细的描述。应该理解,在替换实施例中,客户端设备104可以是除机顶盒以外的与媒体服务服务器102相比具有有限的处理能力的设备。这样的额外的客户端设备可包括,但不仅限于,移动电话、个人数字助理,以及诸如例如来自微软公司的)(b0X 游戏系统之类的游戏控制台。媒体服务服务器102和客户端设备104可以位于用户的家庭,并彼此如通过有线或无线网络连接联网。设备102和104还各自连接到因特网110,在这里,它们能够访问不同的web服务器,包括提供视频点播(VOD)及其他服务的媒体服务器112,以及包括能够执行web搜索的搜索引擎的门户114。媒体服务器112可包括基于接收到的对于内容媒体的请求来管理媒体内容向媒体服务服务器102和/或客户端设备104的传递的媒体传递引擎。门户114可包括搜索引擎,该搜索引擎具有能够搜索万维网以寻找媒体文件的web爬寻器应用程序,以及用于存储媒体文件的位置的索引。现在参考图2,媒体服务服务器102 —般而言可以包括一个或多个处理器116、以及操作系统118。还可以进一步提供网络接口 120以能够在媒体服务服务器102、客户端设备104及其他计算系统之间进行通信。媒体服务服务器102还包括在处理器116上执行的若干个软件应用程序。这些应用程序包括根据本系统的一对客户端应用程序。下面详细说明了这些客户端应用程序中的每一个,但是,一般而言,此处被称为媒体下载控制引擎124 的第一应用程序,允许客户端设备104执行媒体搜索并播放可能以不被客户端设备104支持的文件格式存在于远程位置服务器上的媒体。此处被称为虚拟频道引擎1 的第二客户端应用程序,允许用户创建虚拟电视频道,该频道呈现与对用户感兴趣的主题的搜索查询相关的恒定的内容流。在各实施例中,媒体下载控制引擎IM和虚拟频道引擎1 两者都可以驻留在媒体服务服务器102上,但是,应该理解,在替换实施例中,软件引擎124、128可以存储在彼此不同的服务器上。在一个这样的实施例中,虚拟频道引擎可以驻留在客户端设备104上。虽然媒体服务服务器102可以是用户的家庭PC,但是,媒体服务服务器102也可以可另选地是专用应用程序服务器。这样的专用的应用程序服务器可以位于用户的家庭,或者,在更进一步的实施例中,媒体服务服务器可以远离用户的家庭。即,媒体下载控制引擎和/或虚拟频道引擎可以位于电话公司或其他服务提供方的远程服务器上。在这样的实施例中,远程服务器可以通过因特网或其他网络连接与客户端设备104进行通信。此外,尽管媒体服务服务器102被示为与单一客户端设备104相关联,但是,在更进一步的实施例中,可以有一个以上的客户端设备与媒体服务服务器102相关联。媒体服务服务器102还包括用于存储媒体内容以及与媒体内容相关的元数据的数据存储130。这样的元数据可包括标题、演员表及其他与媒体服务服务器数据存储130中的存储的媒体内容相关的数据。元数据可使处理器116生成交互式电子节目指南(“EPG”), 该EPG呈现要通过电视机106显示的内容的日程表。此内容可以存储在数据存储130中, 或在适当的时间被从媒体服务器112或门户114(图1)下载。如下面所说明的,用户可以使用虚拟频道引擎1 来生成自定义虚拟频道。为虚拟频道选择的媒体内容,以及虚拟频道的元数据,可以存储在数据存储130中。在替换实施例中,数据存储130可以驻留在客户端设备104中。现在将参考图3A-3C的流程图以及图4和5的用户界面例图来说明媒体下载控制引擎124的操作。一旦软件引擎IM被安装,并在媒体服务服务器102上运行,在步骤 200中将客户端设备104接通电源之后,客户端设备可以唤起局域网中的其他设备并在步骤202中链接到媒体服务服务器102。客户端设备可以使用简单服务发现协议(SSDP),该协议提供可使客户端设备发现包括媒体服务服务器102的存在的网络服务的机制。可以为客户端设备104使用除SSDP以外的协议来查找媒体服务服务器102。在链接到客户端设备104之后,媒体服务服务器102在步骤204中确定客户端设备104能力。媒体服务服务器102可包括如在本领域内已知的用于检测客户端设备能力的用户代理,包括客户端设备与哪些媒体文件格式兼容(即,客户端设备支持并能够播放哪些媒体文件格式)。在步骤206中,媒体服务服务器102以向客户端设备104提供指令的广播消息作出响应,当启动媒体内容搜索时,客户端设备104会将其请求发送到媒体服务服务器102。在步骤208中,客户端设备104将数据传输到电视机106,以便以已知方式在电视机106上生成用户界面。用户界面向用户呈现包括执行媒体搜索的选项的主菜单。用户可以通过与客户端设备104和/或电视机106相关联的遥控器,与此用户界面进行交互。在步骤210中,客户端设备104确定用户是否希望启动媒体搜索。在接收到用户愿意在步骤 210中执行媒体搜索的指示时,客户端在步骤212中将请求传输到媒体服务服务器102以启动搜索。根据最初在步骤206中从媒体服务服务器102传输的指令(即,当搜索将被启动时,联系媒体服务服务器),生成在步骤212中发送的请求)。在从客户端设备接收到用户希望启动媒体搜索的通知时,媒体服务服务器102在步骤214中与预定的web URL进行连接以获取媒体搜索主题的菜单目录。预定的web URL 可以是门户114(图1)的地址。Web门户114可以是诸如,例如,由微软公司主存的MSN. com 之类的各种现有的搜索引擎门户中的任何一个。媒体服务服务器102存储门户114的主页或主要搜索页面的位置,并在步骤214中从指定的网页下载搜索主题的列表。媒体服务服务器102连接到的页面还可是在门户上的自定义的用户的主页。媒体服务服务器102可包括能够联系预定的网站,请求媒体搜索目录,并从网站接收响应信息的已知浏览器应用程序。在步骤220中,媒体服务服务器102将所获取的搜索主题列表格式化为数据结构, 该数据结构将允许客户端设备104从列表中进行选择,并为每个所选一个或多个主题获得进一步的结果。作为许多示例中的一个,媒体搜索目录可以下载诸如下面的主题
按专辑排列的音乐(Music by album)按歌星排列的音乐(Music by artist)按歌曲排列的音乐(Music by song)按相册排列的照片(Photos by album)按日期排列的照片(Photos by date)按标题排列的视频(Videos by title)收藏夹(Favorites)最近播放(Recentlyplayed)关键字搜索(Keyword search)应该理解,在更进一步的实施例中,媒体目录列表可包括额外的或替换的主题。用户可以直接使用客户端设备用户界面或媒体服务服务器,定制由媒体服务服务器102检索到的主题。 如所指出的,在步骤220中,媒体服务服务器102将媒体目录的数据格式化为每一个主题的相应的数据结构。每一个数据结构都指定给定主题,还提供到在门户114上存储了给定主题的URL的URL链接。一旦媒体目录数据被格式化为数据结构,在步骤2M中,将数据结构发送到客户端设备。下面是由媒体服务服务器102格式化并从媒体服务服务器 102发送到客户端设备104的各种数据结构的XML版本的示例
<MediaMenu xmlns="http://schemas.datacontract.org/2004/07/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<List> <Children> <CAMLNode>
<Title>music by album</Title>
<Url>http://157.56.144.163:9999/xm/albums dp=STB:SL:1024:768:32:Xml&requesttoken=< /Url> </CAMLNode> <CAMLNode>
<Title>music by artist</Title> <Url>http://157.56.144.163:9999/xm/artists dp=STB;SL;1024:768:32;Xml&requesttoken=</ Url> </CAMLNode> <CAMLNode>
<Title>music by song</Title>
<Url>http://157.56.144.163:9999/xm/allsongs dp=STB:SL:l(n4:768:32:Xml&requesttoken= </Url> </CAMLNode> <CAMLNode>
<Title>photos by album</Title>
<Url>http://157.56.144.163:9999/xp/photoalbum dp=STB:SL:1024:768:32:Xml&requesttoken=</Url> </CAMLNode> <CAMLNode>
<Title>photos by date</Title>
<Url>http://157.56.144.163:9999/xp/root dp=STB:SL:1024:768:32:Xml&requesttoken=</Url> </CAMLNode> <CAMLNode>
<Title>videos by title</Title> <Url>http://157.56.144.163:9999/xv/root dp=STB:SL:1024:768:32:Xml&requesttoken=</Url> </CAMLNode> <CAMLNode>
<Title>favorites</Title>
<Url>http://157.56.144.163:9999/favorites dp=STB;SL:1024:768:32;Xml&requesttoken=</U rl>
</CAMLNode> <CAMLNode>
<Title>recently played</Title> <Url>http://157.56.144.163:9999/recents dp=STB:SL:1024:768:32:Xml&requesttoken=</Url> </CAMLNode> <CAMLNode>
<Title>Search</Title>
<Url>http://157.56.144.163:9999/Search dp=STB:SL:1024:768:32:Xml&requesttoken=</Url>
</CAMLNode>
<CAMLNode>
<Title>MSN Video</Title>
<UrI>http://157.56.144.163:9999/msn
video dp=STB:SL:1024:768:32:Xml&requesttoken=</Url>
</CAMLNode>
<CAMLNode>
<Title>MSN Photos</Title> <Url>http://l 57.56.144.163:9999/msn photos dp=STB:SL:1024:768:32:Xml&requesttoken=</Url> </CAMLNode>
〈/Children〉 <Total>ll</Total> <Class>Iist</Class> </List>
<ViewStyle>XB</ViewStyle> <Class>menulist</Class> </MediaMenu>在上面的XML代码中,媒体目录中的每一个主题被嵌入在数据结构中。在每一个主题中,CAMLNode是相应的数据结构的定义。之后是主题标题,再之后是指定预定网站中的该主题的URL的内容链接。每一个数据结构中的链接的开始(在此示例中, “157. 56. 144. 163 :9999”)是当客户端设备在步骤202中最初链接到设备102时由客户端设备检测到的媒体服务服务器102的本地地址。如下面所说明的,由客户端设备104通过电视机106显示包括数据结构中的主题的媒体目录,用户可以选择一个主题以便进行进一步的探查。将媒体服务服务器的本地地址包括在每一个数据结构会导致客户端通过媒体服务服务器102路由任何对有关一个主题的附加信息的请求。上面是可以被从媒体服务服务器传递到客户端设备以指定各种媒体主题的数据结构的一个示例。可以构想,媒体搜索的主题可以被以其他数据格式从媒体服务服务器传递到客户端设备。此外,尽管上面的示例采用XML,但是,也可以使用其他语言协议。作为再一个示例,如果客户端设备104支持由微软公司推出的SilverLight 浏览器插件,那么, 可以使用JSON作为语言协议在媒体服务服务器102和客户端设备104之间传递数据结构。在步骤230中(图:3B),客户端设备接收数据结构,并在电视机106上以已知方式生成用户界面。在图4中示出了此用户界面140的示例。客户端设备从数据结构中取媒体目录主题,并在用户界面140上以对用户友好的方式显示它们。在步骤232中,客户端设备104确定用户是否选择了显示的主题以便进行进一步的搜索。如果是,客户端设备104向媒体服务服务器102作出对与该主题相关联的附加信息的HTTP请求。具体而言,由媒体服务服务器102向客户端设备104所提供的数据结构包括主题的列表以及到可以查找到那些主题的附加信息URL的链接。因此,当用户选择给定主题时,客户端设备从用户界面140接收该选择的指示,然后,跟随与所选主题相关联的链接。如上文所指出的,每一个数据结构内的链接还包括媒体服务服务器102的本地地址,如此,所有对有关一个主题的附加信息的请求被通过媒体服务服务器102路由。通过格
11式化发送到客户端设备的数据结构中的链接,客户端设备不必处理如何、在哪里或通过什么路线路由来获取附加信息。客户端设备简单地跟随与每一个主题相关联的数据结构中指定的链接。通过使用从客户端设备104接收到的URL,媒体服务服务器102在步骤236中联系指定的URL地址处的服务器并获取带有附加的被请求的信息的搜索结果。在步骤MO中, 可以以如上文所描述的数据结构来格式化指定的主题的附加信息。即,数据结构可包括附加信息的标题,以及如果由用户通过客户端设备104选择的话,可以由媒体服务服务器102 在哪里获取附加信息的链接。在步骤M4中,将附加的被请求的信息的数据结构从媒体服务服务器102传输到客户端设备104。下面是从媒体服务服务器发送到客户端设备的选择的主题的附加信息的XML版本的示例。在此示例中,用户从在用户界面上显示的媒体目录中选择了 “MSN Video (MSN 视频),,。-<MsnVideoMediaMenu xmlns="http://schemas.datacontract.org/2004/07/MSN.VideoPlugin" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <Headerxmlns:="http://schemas.datacontract.org/2004/07/">
<Title>MSN Video</Title> <Class>header</Class> </Header>
<Listxmlns="http://schemas.datacontract.org/2004/07/">
〈Children〉
<CAMLNode> <Poster/> <Title>What's Hot</Title> <Url>http://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=What's Hot</Url> <CAMLNode>
<CAMLNode> 〈Poster/〉
<Title>News</Title> <Url>http://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=News</Url>
<CAMLNode>
<CAMLNode> <Poster/>
<Title>Money</Title> <Url>http://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=Money</Url>
<CAMLNode>
<CAMLNode> <Poster/>
<Title>Sports</Title> <Url>http://157.56.144.163:9999/msnvideo/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=Sports</Url>
<CAMLNode>
<CAMLNode> <Poster/>
<Title>Celebrity</Title> <Url>http ://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=Celebrity</Url>
<CAMLNode>
<CAMLNode> <Poster/>
<Title>Movies</Title> <Url>http://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=Movies</Url>
<CAMLNode>
<CAMLNode> <Poster/>
<Title>Music</Title> <Url>http://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=Music</Url>
<CAMLNode>
<CAMLNode> <Poster/> <Title>TV</Title>
<Url>http://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=TV</Url>
<CAMLNode>
<CAMLNode> <Poster/>
<Title>Life</Title><Url>http://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=Life</Url>
<CAMLNode>
<CAMLNode> <Poster/>
<Title>Autos</Title> <Url>http://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;Xml&requesttoken=&name=Autos</Url>
<CAMLNode>
<CAMLNode> <Poster/>
<Title>Soapbox User Videos</Title> <Url>http://157.56.144.163:9999/msn
video/genre dp=STB;SL;1024;768;32;XmI&requesttoken=&name=Soapbox User Videos</Url> <CAMLNode>
</Children> <Total>ll</Total> <Class>list</Class> </List>
<ViewStylexmlns="http://schemas.datacontract.org/2004/07/">XB</ViewStyle> 〈Class xmlns="http://schemas.datacontract.org/2004/07/">menulist</Class>
</MsnVideoMediaMenu>如上在步骤214中,媒体服务服务器102将返回的信息格式化为数据结构,然后, 将数据结构转发到客户端设备104。然后,如上文所描述的,在步骤230中,由客户端设备 104以对用户友好格式在用户界面140上显示附加信息。图5A中示出了可以在用户界面 140上显示的附加信息的示例。如在上面的数据结构中所示出的,媒体服务服务器也可以返回“海报”以及缩略图和描述(在图5B和5C中示出的),以便客户端可以显示丰富的用户界面。然后,用户可以从在用户界面140上显示出的附加信息中作出进一步的选择。每当用户希望将媒体搜索聚焦于用户希望查看和/或收听的特定的内容时,可以重复步骤230444。通过重复步骤230-244来聚焦用户搜索的一个例外是用户选择关键字搜索代替一般媒体主题的情况。在用户选择关键字搜索的情况下,用户界面显示一个用户可以在其内输入搜索的窗口。然后,用户可以使用与客户端设备104和/或电视机相关联的键盘或遥控器来输入文本查询。如果没有键盘存在,则客户端可以在用户界面上生成软键盘,用户可以从该软键盘中选择形成查询的文本。然后,将搜索查询发送到媒体服务服务器102,该媒体服务服务器102又将查询传递到预定的web门户114,以便使用web门户搜索引擎来进行web门户搜索。搜索的结果被返回到客户端设备104,该客户端设备104将结果格式化为数据结构,例如,如上文所描述的。然后,已格式化的结果被发送到客户端设备104,供在用户界面140上以对用户友好的格式显示。通过使用上文所描述的步骤,用户能够选择一个主题或关键字搜索,客户端设备 104将请求传递到媒体服务服务器102。此过程可以经过多个步骤,直到用户到达该用户希望下载的视频、音乐或图像。利用此系统,客户端设备104不知道它正在与哪一个服务器进行通信。客户端设备只向与选定主题相关联的URL发出请求。媒体服务服务器102通过控制在CAMLNode的“URL”部分设置的URL来控制流程。这提供了巨大的灵活性。例如,如下面所说明的,此系统为客户端设备104提供了播放来自网站的该客户端设备不支持的格式的媒体内容的能力。如果在步骤232中用户不选择进行附加的信息搜索,则媒体下载控制引擎IM接下来确定用户是否在步骤M8中选定一个链接以下载特定媒体。如果不,则引擎IM在步骤250中检查用户是否希望退出对媒体的搜索(可以在用户界面140上提供退出选项)。 倘若如此,则客户端设备104在步骤254中返回到主菜单画面(未示出),媒体下载控制引擎124结束。然而,假设用户在步骤248中选择了要下载的特定媒体,则下载和播放媒体。图5B 和5C示出了可以作为用户选择的结果向他或她呈现以便到达用户希望播放的内容的用户界面140的示例。假设用户从图4所示出的用户界面中选择了“视频”,然后从图5A所示出的用户界面中选择了“新闻”。然后,媒体服务服务器102可以获取视频列表,视频列表被转发供显示在如图5B所示的界面140上。用户可以滚动浏览该列表,并选择所感兴趣的视频。如上文所指出的,缩略图142或其他图形可以伴随内容列表。在此示例中,用户选择了对微软WMeve Ballmer的采访的视频。一旦选择,媒体服务服务器102可以检索带有内容的摘要的摘要页面,如图5C所示。如果用户选择观看该内容,则获取该内容的媒体文件, 并在用户的电视机106上播放,如下面参考图3C中的步骤256-270所描述的。应该理解, 图4-5C所示出的用户界面屏幕140仅用作示例,可以向用户呈现大量各种替换的和/或附加的用户界面屏幕,以允许用户导航到所希望的内容。如上文所指出的,媒体服务服务器102察觉客户端设备104的能力,具体而言,媒体服务服务器102察觉客户端设备能够播放什么文件类型。当媒体服务服务器102将带有媒体文件列表的数据结构发送到客户端设备104供用户查看时,媒体服务服务器发送支持的和不支持的媒体文件的列表。对于计算系统知道被客户端设备支持的那些媒体文件,计算系统格式化该文件的数据结构中的链接,以便客户端设备可以去获取该媒体文件本身。 即,如果媒体文件处于客户端设备可以播放的格式,那么,来自媒体服务服务器102的该媒体文件的数据结构中的链接将直接指向该文件所在的远程服务器。因此,如果用户选择支持的文件来进行下载,则所选链接直接指向远程服务器,并从客户端设备104向远程服务器直接作出请求。然后,远程服务器将文件直接下载(或流式播放)到客户端设备104(步骤 256)。另一方面,由媒体服务服务器所发送的列表可包括到处于客户端设备不能播放的格式的媒体文件的链接。对于这些不支持的文件,媒体服务服务器102用指回媒体服务服务器的链接编码相关联的数据结构。即,被发送到客户端设备104的数据结构中的链接将包括媒体服务服务器102的本地地址。因此,如果用户选择不支持的文件来下载,则所选链接指向媒体服务服务器102,客户端设备104向媒体服务服务器102作出请求,以便媒体服务服务器获取文件(步骤沈0)。然后,媒体服务服务器联系指定的网站,并将不支持的文件下载到媒体服务服务器102 (步骤沈4)。在接收到之后,在步骤266中,媒体服务服务器代码转换媒体文件。代码转换过程取原始媒体文件,并生成被客户端设备支持的格式的新媒体文件。将媒体文件从一种格式代码转换为另一种格式的方法在本领域内是已知的。有许多现有的代码转换内容的方案, 某些可以利用变化的客户端网络条件,并提供自适应控制(即,当可用的网络带宽下降时, 可变的比特率)。媒体服务服务器102可以使用这种类型的代码转换,以及任何其他已知的代码转换方案。一旦文件被代码转换,媒体服务服务器102就可以将已代码转换的文件存储在媒体服务服务器102上的一个存储位置。从客户端设备发送的链接指向此存储位置。因此, 一旦文件被代码转换,可以在步骤268中将文件发送到客户端设备104,以便在步骤270中播放。如此处所使用的,播放媒体文件意味着在电视机106(或其他监视器)上显示视频, 和/或通过与电视机106相关联的扬声器(或其他设备)播放音频。在又一实施例中,媒体服务服务器102可以实时地“在运行时”代码转换内容,无需等待文件被代码转换。在这样的实施例中,客户端将能够在所有源内容被代码转换之前开始查看内容。作为一个示例,客户端设备104可以支持Windows媒体视频(WMV),但不支持 flash视频(FLV)。如果用户选择FLV视频文件(或其他不支持的文件格式)以便从远程服务器下载,则在客户端设备104上选择的数据结构链接将指示媒体服务服务器102从远程服务器获取文件。在接收到之后,媒体服务服务器102将把.flv视频文件实时代码转换为具有客户端设备支持的格式(例如,.wmv)的新文件,并将经过代码转换的.wmv文件发送到客户端设备。然后,客户端设备可以在步骤270中播放经过代码转换的视频。另一方面, 如果用户试图从远程服务器下载支持的格式(例如,.wmv)的文件,则客户端设备104将从远程服务器直接下载.wmv文件,无需媒体服务服务器的协助。然后,它将在步骤270中播放.wmv视频。对于支持的/不支持的音频文件、支持的/不支持的图形文件和支持的/不支持的文本文件,可以执行类似的过程。在客户端设备104支持对于给定媒体的多种格式的情况下,可以有一种默认的支持的文件格式,不支持的文件格式可代码转换为该默认格式。另选地或另外地,媒体下载控制引擎IM可以在将不支持的文件格式代码转换为支持的文件格式时使用规则。例如,在已知给定文件格式更干净地代码转换为除默认文件格式以外的支持的文件格式的情况下, 引擎IM可以将不支持的文件格式代码转换为具有更干净的代码转换的文件格式。上面的系统给用户提供了搜索媒体内容并将其直接下载到他们的电视系统的能力。这给用户提供了在他们的内容搜索体验中增大的灵活性,并允许从电视系统执行各种因特网搜索应用。根据本系统的一个这样的应用是上文参考图2所提及的并参考图6和7 比较详细地说明的虚拟频道引擎128。尽管虚拟频道引擎128的实施例利用上文所描述的媒体下载控制引擎124,但是,应该理解,在本系统的替换实施例中,虚拟频道引擎1 不必使用媒体下载控制引擎124。一般而言,如上所述,虚拟频道引擎1 允许用户使用如上所示的客户端设备104 来输入搜索查询,引擎1 随后生成与搜索查询相关的节目。引擎1 调度那些节目,并使它们供用户在他的或她的电视机上查看。吸取(assimilated)的节目的日程表可以与其他频道上的调度内容一起在向用户示出的EPG中的新的虚拟频道中列出。现在将参考图6A-6C的流程图和图7-9的用户界面描述虚拟频道引擎128的操作。应该理解,可以由媒体服务服务器102、客户端设备104,或两者的组合来执行虚拟频道引擎128。还可以预期,虚拟频道引擎1 位于用户可以访问并运行例程以创建一个或多个虚拟频道的远程服务器上。在步骤300中,引擎1 显示允许用户输入所希望的搜索查询的用户界面。具体而言,在虚拟频道引擎1 被主存在媒体服务服务器102上的情况下,设备102将消息发送到客户端设备104,该客户端设备104又将消息发送到电视机106以在电视机106上生成用户界面。在虚拟频道引擎1 驻留在客户端设备上的情况下,客户端设备将消息发送到电视机106以在电视机106上生成用户界面。在图7中示出了这样的用户界面148的示例。用户使用与客户端设备104或电视机106相关联的键盘来输入搜索查询。可另选地,在没有键盘的情况下,可以在界面148上显示软键盘,用户可以使用他们的遥控器与该软键盘进行交互。在步骤302中接收到搜索查询时,通过诸如例如,门户114(图1)所支持的远程搜索引擎网站,来执行对该查询的搜索。搜索可以涉及人、电影或演出、音乐、活动,或使特定用户感兴趣的任何其他主题。由用户输入的特定的搜索查询此处被称为根搜索查询或第一代搜索查询。在步骤304中,接收第一代搜索查询的结果。如对于搜索引擎搜索结果所常见的那样,将按照相关性的顺序来排名获得的结果,并可包括到文本文件、视频文件、图形文件和音频文件的链接。在各实施例中,虚拟频道上包括的节目只是从视频文件形成的。然而, 应该理解,可以形成包括视频文件、图形文件、音频文件、文本文件或其任何组合的节目。在各实施例中,用户可以将搜索限制到只有一种类型的媒体,例如,视频。在这些实施例中,将只从所选媒体类型来编译节目。还可使用其他搜索条件来细化搜索结果。这样的附加的条件包括搜索结果的时长、搜索结果的纵横比、搜索结果的分辨率、从其中获得搜索结果的源,以及搜索结果的种类(例如,电影、音乐视频、文献片、新闻等等)。可以使用其他搜索条件。涉及流行的搜索主题的搜索查询可以生成大型资料库,从该资料库,可以形成节目,如下面所说明的。然而,搜索查询可能产生很少结果,或者,用户希望扩大以从与根搜索查询关联的不同的搜索查询获得搜索结果。如此,虚拟频道引擎1 可以使用第二代搜索查询来获得附加的结果。具体而言,可以由搜索引擎使用元数据挖掘引擎来执行搜索,该元数据挖掘引擎能够导出与原始根搜索查询关联的搜索查询。这样的元数据挖掘引擎可以使用用于获得与根搜索查询关联的导出的搜索查询的各种已知算法。一般而言,元数据挖掘引擎可以从搜索引擎检查搜索查询的日志,以确定与根搜索查询关联的导出的搜索查询。关系可以是用于从根搜索查询确定导出的搜索查询的语义、上下文、时间或其他已知关联。从根搜索查询导出的搜索查询此处被称为导出的搜索查询或第二代搜索查询。
在一个示例中,挖掘引擎可以是那种在诸如例如,Wikipedia 搜索站点之类的现有的搜索网站上使用的挖掘引擎。在这样的示例中,挖掘引擎可以取第一代搜索查询,并通过该搜索站点上的具有包括回到第一代搜索查询的链接的结果的查询的索引来搜索。作为一个示例,用户可以输入演员“John Cleese”的姓名作为第一代根搜索查询。然后,挖掘引擎将在结果中进行搜索,以查找其他查询,以查看它们中的哪些包括回到John Cleese的链接。作为一个示例,搜索查询“Monty Python”和“James Bond”可以两者都具有包括姓名 "John Cleese”,以及到John Cleese页面的链接的搜索结果。这些搜索查询将形成第二代搜索查询的至少一部分。挖掘引擎还可生成涉及诸如例如,“John Cleese简历”和“John Cleese电影”之类的各种其他主题的第二代搜索查询。应该理解,可以根据大量各种其他方案来确定派生搜索查询。在各实施例中,可以由用户控制第二、第三等等代搜索查询的代。在下面所说明的替换实施例中,虚拟频道引擎可以从根搜索查询自动创建代际搜索查询。在其中用户控制更多代的搜索查询的创建的实施例中,在用户输入第一代根搜索查询之后,可以在步骤306 中获得第二代搜索查询,并在步骤308中在电视机106上的用户界面148上向用户显示。使用上面的第一和第二代搜索查询的示例,在图11中示出了这样的用户界面148。用户被给予选择要搜索的第二代搜索查询中的一个或多个的选项(步骤31 。如果用户选择不搜索任何第二代查询,则搜索结束,根搜索查询以及其结果被存储(图6B,步骤336)。另一方面, 如果用户选择搜索第二代搜索查询中的一个或多个,则在步骤314中获取每一个选定的第二代搜索查询的搜索结果。如图11所示,用户还被给予创建更多代的搜索查询的选项(步骤318)。例如,一组第三代(n = 3)搜索查询将是元数据挖掘引擎确定与第二代搜索查询中的一个相关联的搜索查询。每一个第二代搜索查询都可以导致一组第三代搜索查询。因此,搜索查询可以随着每一个连续代呈指数级地扩大。步骤318-332表示用于生成η代搜索查询和结果的步骤。第二代搜索查询是在步骤306中获得的,如此,第一次经过步骤318-332时,η从3开始(即,第三代),每当经过该循环时,递增一代。因此,第一次经过步骤318-332时,用户指出他或她是否希望查看第三代搜索查询(步骤318)。如果是,则在步骤320中获取第三代搜索查询。在步骤324中,在用户界面148(图11)上向用户显示第三代搜索查询。然后,用户被给予选择搜索第三代搜索查询的选项(步骤326)。如果用户没有选择要搜索的第三代查询中的任何一个来查询,则全部搜索查询 (第一代以及任何选定的第二代查询)以及为这些搜索查询获取的结果被存储(图6B,步骤336)。另一方面,如果在步骤3 中用户选择搜索第三代搜索查询中的一个或多个,则在步骤330中获取每一个选定的第三代搜索查询的搜索结果。在步骤332中,代际计数器η 被递增(例如,到第四代),例程返回到步骤318。在η = 4的情况下,在步骤318中,用户再次被给予获取第η代搜索查询的选项,其中,第η代的搜索查询是从η-1代搜索查询中的每一代导出的搜索查询。然后,过程再次经过步骤318-332来处理。在实践中,将需要获取超过2到3代的导出的搜索查询的情况是很少的。然而,可以构想,每当用户希望获取用户所希望的那样多的代的搜索查询和结果时,可以重复步骤 318到332。在各实施例中,超出第二代的代际搜索的结果可以交叉引用根搜索查询,以确
19保远程代际搜索结果与根搜索查询具有某种关系(尽管在各实施例中可以忽略此交叉引用)。在各实施例中,代替用户确定他或她希望多少代的搜索结果,虚拟频道引擎可以自动生成一代或多代搜索查询和搜索结果。在此实施例中,可以使用各种条件来确定使用多少代的搜索项。在一个实施例中,可以执行对根和导出的搜索查询的搜索,直到有足够的内容以形成在聚集中持续预定时间长度的节目,例如,几小时、一天、一周或几个星期。因此,如果搜索结果产生内容,当形成节目时,该内容持续预定时间长度,则不需要执行更多代的搜索。在又一实施例中,可以执行不同代的搜索,以确保有各种不同的涉及原始搜索查询的内容。因此,在上面的John Cleese的示例中,提供涉及John Cleese、Monty Python 和James Bond的结果会提供良好的多样性和各种涉及John Cleese的内容。通过由门户114的搜索引擎对万维网的搜索,获取为根和任何导出的搜索查询获取的搜索结果。除这些搜索结果之外,虚拟频道引擎1 还可搜索存储在媒体服务服务器 102和/或客户端设备104上的本地存储中的内容存储内的相关内容。引擎1 还可搜索其他IP或网络广播频道上的即将到来的内容的日程表以查找相关内容(即,包括根或导出的搜索查询项的内容或内容的元数据)。如下面所说明的,来自这些源中的任何源的内容可以被包括在节目内。现在参考图6B,在结束搜索过程之后,第一和任何附加的代的所有搜索查询都与这些搜索查询的搜索结果一起被存储(步骤336)。此后,在步骤340中,定义了虚拟频道的名称。虚拟频道可以取与根查询相同的名称。因此,在上面的示例中,虚拟频道引擎1 可以创建叫做“John Cleese”的虚拟频道。对应于长搜索项的虚拟频道的名称可以被截断。在步骤342中,可以创建各种节目的节目标题。在一个实施例中,节目标题可以取与根搜索查询和任何导出的搜索查询相同的名称。可以使用每一个搜索查询来形成不同的节目名称。因此,在上面的示例中,可以创建叫做“John Cleese”、“Monty Python”、"James Bond'\"John Cleese简历”和“John Cleese电影”的节目。这些节目名称仅用作示例。在步骤344中,虚拟频道的名称和节目标题可以被存储在媒体服务服务器102中的数据存储 130中,或者,也可以被存储在客户端设备104或远程服务器的数据存储中。给定搜索查询的搜索结果在存储器中链接到对应于给定搜索查询的节目名称。在步骤346中,可以将节目的内容添加到节目中。在图6C的流程图中示出了步骤 346的一个实施例的进一步的细节。在此实施例中,在步骤354中,从存储器中连续地检索节目名称。因此,在上面的示例中,第一节目名称是“John Cleese”。还检索节目的长度。 节目可以被设置为预定义的长度(例如,1/2小时、一个小时、两个小时等等)。所有节目都可以被设置为相同长度,或者,不同的节目可以是不同的长度。为了向节目中添加内容,取给定节目的下一最高排名的搜索结果的长度(步骤 356)。此度量被作为与搜索结果相关联的元数据的一部分返回。然后,在步骤358中进行检查,以查看当前节目中是否有足够的可用时间来将下一最高分级的搜索结果添加到节目中。如果有,则在步骤360中将内容添加到节目中,例程返回到步骤356,以检查下一最高排名的搜索结果。如果没有空间用于下一排名的内容,则在步骤361中例程检查是否有更多与当前节目标题相关联的结果。如果有,则例程返回到步骤356,以检查下一搜索结果是匹配在节目内。因此,在一个示例中,第一节目可以被设置为1/2小时。虚拟频道引擎检索第一节目,并检索与该节目相关联的第一排名搜索结果的时间长度。引擎确定第一分级的搜索结果是10分钟长视频。由于它是将被添加到1/2小时节目中的第一内容,并且内容长度小于 1/2小时,它将被添加到节目中。然后取第二排名的搜索结果的时间长度。如果它小于20 分钟长(在添加第一内容片段之后节目中的剩余的时间),则添加第二内容片段。如果内容片段对于节目中的剩余的时间太长,则跳过该内容片段,考虑下一内容片段。可以标记被跳过的内容片段,以便当节目被修改时首先添加到节目中(如下面所说明的)。步骤356-361的过程持续,直到此示例中的节目的1/2小时被用内容填满。由于较低的搜索结果可能与节目不太有关,因此,虚拟频道引擎可以截断要考虑的结果,例如, 只到头20个结果。在更进一步的实施例中,可以省略截断行,或者也可以比20个结果多一些或少一些。可以向每一个内容片段添加小的时间缓冲,以防止内容片段之间的急速的变换。当一个节目已完成(没有内容适于分配的时间内)时,可以在步骤362中存储它。一个节目中可能剩余几分钟,并难以找到将匹配该几分钟的内容。这可以以许多方式中的一种来处理。可以选择广告来填充该几分钟。可另选地,可以缩短或延长一个节目的时间长度来匹配该节目内的内容片段的长度。作为另一个选项,可以添加内容,但是, 只有它的一部分被包括在节目中。在节目被存储之后,在步骤364中,虚拟频道引擎可以接下来查看是否有更多的存储的节目要被添加内容。如果是,则例程返回到步骤360,以为下一节目添加内容,如上所述。如果没有更多节目,则向节目添加内容的步骤346已完成。在各实施例中,所存储的是节目的名称,以及到被包括在该节目中的内容片段的链接。如下面所说明的,当播放节目时,引擎可以出去并从存储的链接获取内容。在替换实施例中,当创建节目时,可以下载实际内容本身,并作为节目的一部分来存储。在上面的示例中,较高排名的搜索结果被编译到较低排名的搜索结果之前的节目中。应该理解,在进一步的实施例中,可以根据其他步骤,将内容添加到节目中。作为一个替代方案,代替按照内容片段的排名将它们添加到节目中,可以选择其总时间合计达一个节目的时间长度的与给定节目相关联的一组内容片段。由于内容可以在上面的过程之后留下,可以使一个节目变长一些,或者也可以创建节目的不同的片断,以使得该节目变为一个系列。尽管节目可能通常只由视频或视频和音频文件构成,但是,节目还可包括文本和/ 或图形文件。对于文本和/或图形文件,取决于文件的大小,可以给每一个文件分配默认显示时间长度。因此,较短的文本或图形文件可以被显示,例如,30秒,而较长的文本或图形文件可以显示得长一些。当将这样的文件包括在节目中时,可以计数显示文本或图形文件的时长。返回到图6B,在创建节目之后,在步骤348中,可以接下来调度节目。可以将节目添加到日程表中,以使得与原始根搜索最紧密关联的节目首先出现在日程表中,与节目关联度较低的被排在稍后。虚拟频道引擎可以建立节目的日程表以将不同的时间段持续到未来,但是,可以约未来1-2个星期。在播放了日程表中的所有节目之后,可以重复日程表。随着时间的流逝,可以重复未观看的节目。此外,如下面所说明的,虚拟频道引擎包括反馈机制。被给予了高评价的已观看过的节目可以被再次添加到日程表中,并重复。被跳过的节目,或者那些被给予了低评价的节目,可以从进行的日程表中省略。在图9中的用户界面EPG 150中示出了上面的示例的创建的虚拟频道的节目的日程表的示例。EPG 150—般而言可以是包括跨顶部水平地示出的日程表时间以及垂直向下地示出的各种可用频道的网格。图9的EPG 150是一个简单示例,但是,一般而言,EPG可以具有大量的频道,用户可以在其中滚动,并选择在特定时间在电视机106上查看的内容。 利用通过电缆或卫星业务提供商,从各种外部源(包括网络电视台(ABC、NBC等等),或从流式播放因特网协议电视(IPTV)的web服务器(如服务器112)接收到的内容信息来填充 EPG0还可利用来自驻留在媒体服务服务器102和/或客户端设备104上的本地存储(例如,存储130)的信息来填充EPG。记录的媒体内容可以具有嵌入的数据,如子标题、图文电视或可以被搜索以指示此内容与当前搜索查询有关的其他数据组件。子标题、图文电视或其他数据可以被搜索索引器解码,并用于索引给定搜索查询的特定节目。例如,在用户具有对于John cleese的个人搜索频道的情况下,用户可以具有包括子标题流的记录的新闻节目。此子标题流可以被读取到子标题解码器,所产生的文本可以被搜索索引器用来索引此特定记录的节目内容。 作为另一个示例,如果一篇新闻文章涵盖了 John Cleese,那么,此文章可以被索引,此内容可以是用于个人搜索频道的潜在的内容。客户端设备104从外部和/或内部源接收EPG 150的EPG内容数据,以及元数据。此元数据涉及各种频道上的调度的内容,并可包括,例如,标题、摘要、风格、类另I」、分类、 评论、演员表、摄制组、歌星、电影制片人、时间、时长、位置、内容类型、内容提供商、源、分辨率、成本、订户,或涉及特定媒体内容的其他数据。虽然在图9的EPG 150中未示出,还可通过利用用户的遥控器与EPG 150的交互,使此元数据对用户可用。根据本系统,虚拟频道引擎1 可以向EPG 150添加新的频道,该新频道被示为与EPG 150上可用的其他频道并列。在完成步骤348之后,虚拟频道引擎1 可以向EPG 150添加新频道名称,与该频道上可用的节目的日程表的一起,该信息被存储在媒体服务服务器102、客户端设备104或存储在远程服务器上。继续上面的示例,创建了叫做“John Cleese”的频道,各种节目被按照它们的调度时间示出。图9中的EPG 150只包括几个节目,但是,可以有更多。当到了观看特定节目的时间时,媒体服务服务器102或客户端设备104可以联系具有被包括在节目中的内容的源服务器,而设备102或104可以下载(或流式播放)该节目的内容。内容的下载或流式播放可以通过媒体下载控制引擎1 和相对于媒体下载和控制引擎IM如上所描述的图:3B和3C的步骤248和256-270来完成。即,可以由客户端设备104获取支持的文件类型,并直接下载或流式播放到客户端设备104。在节目内使用的一些文件可能采用不由客户端设备104支持的格式。可以将这些文件发送到媒体服务服务器102,以便代码转换,然后,再发送到客户端设备104。应该理解,虚拟频道引擎1 可以用于没有媒体下载控制引擎的各实施例中。在这样的实施例中,被添加到虚拟频道中的节目可以仅限于由客户端设备104支持的内容。可以在节目开始时从不同的源下载节目的全部内容,或者也可以在节目的播放过程中在特定内容将被示出时从不同的源流式播放内容。在更进一步的实施例中,可以在即将到来的节目的调度的查看时间之前下载其内容,对其进行代码转换(在必要时),并存储在媒体服务服务器102中的媒体存储130中或存储在客户端设备104内。可以在各节目之间或在节目期间中提供空间以便插入广告。在各实施例中,可以基于为用户的节目选择的内容来将广告定向到单个用户。如上文所指出的,虚拟频道引擎1 可以允许就给定节目内的内容和/或就节目作为整体作出反馈。可以在步骤350中接收反馈。这样的反馈可以是被动的;即,客户端设备104检测用户的对节目内容的查看模式。用户可以跳过内容片段或整个节目。可另选地,用户可以倒退或快进内容片段或节目的一部分。引擎1 导致此被动的反馈被存储,并使用它来修改某时间段内日程表,以进一步针对特定用户的口味来自定义虚拟频道(步骤 352)。可另选地,步骤350中的反馈可以是主动的。可以给用户提供明确地评定向用户呈现的内容的选项。在节目结束之后,可以通过向用户显示的用户界面获取这样的反馈。通过使用虚拟频道引擎128,用户可以创建为用户调度连续的内容流的频道,该内容是基于用户感兴趣的主题选定的。一旦用户输入了他的或她的搜索查询并选定任何派生搜索查询,自动创建虚拟频道和节目,并给用户提供节目,无需用户作出进一步的交互。尽管上面的示例示出了创建单个虚拟频道,但是,应该理解,可以使用上面的步骤来创建用户感兴趣的任何主题的若干个虚拟频道。这些虚拟频道中的每一个将出现在EPG 150中,用户可以选定内容以便在单个频道上观看或在它们之间切换。在上文所描述的实施例中,虚拟频道的节目是在特定时间调度的。然而,在替换实施例中,可以如上文所描述的那样来生成节目,但是,代替被调度,这些节目可以被存储在媒体服务服务器102和客户端设备104的本地存储器上,或存储在远程媒体服务器112上。 在此实施例中,可以使内容节目作为按需内容可用,并按需选定以便在用户希望的任何时间查看。在各实施例中,虚拟频道是每一个用户私人的。然而,在又一实施例中,单独的用户的虚拟频道列表可以被上传和存储在诸如媒体服务器112(图1)之类的后端服务器上。 此后,在随后的用户输入搜索查询以创建虚拟频道的情况下,随后的用户的客户端或媒体服务服务器可以调用后端服务器,以检查任何其他用户是否已经在创建虚拟频道时输入了相同搜索查询。倘若如此,虚拟频道引擎1 可以从存储的与从相同根搜索查询早先创建的虚拟频道相关联的节目数据,来为随后的用户构建新虚拟频道。可以在被在媒体服务服务器102、客户端设备104或诸如媒体服务器112之类的远程服务器上执行的诸如程序模块之类的计算机可执行指令的一般上下文中描述上文所描述的媒体下载控制引擎1 和虚拟频道引擎128。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。本系统也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。图10示出了启用广播的电子媒体设备368的示例配置,该设备368可以例如是与电视机106相关联的机顶盒。设备368包括具有处理器372的中央处理单元370、易失性存储器374(例如,RAM),以及程序存储器376(例如,ROM、闪存、磁盘驱动器、软盘驱动器、 CD-ROM等等)。设备368具有一个或多个输入设备380 (例如,遥控器、键盘、鼠标等等)、视频显示器,该视频显示器可以是电视机106或其他VGA、SVGA显示器,以及用于与立体音响系统对接的立体声I/O 382。设备368具有一个或多个调谐器384,这些调谐器384调谐到诸如因特网110、LAN 或WAN之类的网络上的适当的地址,或不在网络上的频率。调谐器可以是耦合到天线、电缆或圆盘式卫星天线。可另选地,调谐器可以是以软件实现的“虚拟调谐器”386,该调谐器 386允许通过网络接口 388访问诸如服务器112(图1)之类的内容服务器。调谐器卡384 可以被配置成接收模拟和/或数字数据。例如,调谐器卡384可以接收MPEG编码的数字视频和音频数据,以及许多不同的形式的数据,包括数据文件形式的软件程序和编程信息。网络接口 388提供对网络的访问,并可以是调制解调器、网卡、RF接收器,或提供对外部网络的访问的其他类型的端口/接收器。设备368运行支持多个应用程序的操作系统。操作系统可以是允许同时执行多个应用程序的多重任务操作系统。操作系统可以使用图形用户界面窗口环境,该环境在显示屏幕的叫做“窗口”的专门描绘的区域呈现应用程序或文档。设备被示为带有密钥监听器390以在必要时从诸如服务器112之类的远程服务器传输的授权和会话密钥。由监听器390接收到的密钥被实现的密码安全服务使用,以对会话密钥和数据进行解密。密码服务是通过硬件和软件的组合来实现的。在CPU 370的外部提供了安全的抗窜改硬件单元392。在处理器372上执行的软件层被用来促进对密码硬件 392上的资源的访问。软件层包括向寻求密码服务(例如,加密、解密、签名,或验证)的任何应用程序提供功能的密码应用程序接口(CAPI) 394。一个或多个密码服务提供方(CSP) 396实现由CAPI 向应用程序呈现的功能。CAPI层394选定用于执行被请求的密码功能的适当的CSP。CSP 396和密码单元392结合在一起执行各种加密功能,如加密密钥管理、加密/解密服务、散列例程、数字签名,以及认证任务。不同的CSP可以被配置成处理特定功能,如加密、解密、 签名等等,虽然单个CSP可被实现为处理它们全部。CSP 396可被实现为由CAPI按需要加载,然后,可以由应用程序通过CAPI 394调用的动态链接库(DLL)。图11示出了可以例如是媒体服务服务器102的计算环境。用于实现本系统的各方面的计算环境包括计算机410的形式的通用计算设备。计算机410的组件可以包括,但不仅限于,处理单元420、系统存储器430,以及将包括系统存储器的各种系统组件耦合到处理单元420的系统总线421。系统总线421可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、以及局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线,以及也称为夹层(Mezzanine)总线的外围部件互连(PCI)总线。计算机410通常包括各种计算机可读介质。计算机可读介质可以是能由计算机 410访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于, RAM、ROM、EEPR0M、闪存或其他存储器技术,CD-ROM、数字多功能盘(DVD)或其他光盘存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备,或者能用于存储所需信息且可以由计
24算机410访问的任何其他介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”是指其一个或多个特征以这样的方式设置或改变以便在信号中对信息进行编码的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上面各项中的任何组合也包括在计算机可读介质的范围内。系统存储器430包括以诸如ROM 431和RAM 432之类的易失性和/或非易失性存储器的形式存在的计算机存储介质。基本输入/输出系统433 ¢10 通常存储在ROM 431 中,包含了诸如在启动过程中帮助在计算机410内的元件之间传输信息的基本例程。RAM 432通常包含处理单元420可立即访问和/或目前正在由处理单元420操作的数据和/或程序模块。作为示例而非限制,图11示出了操作系统434、应用程序435、其他程序模块436, 以及程序数据437。计算机410也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图11示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器441,对可移动、非易失性磁盘452进行读写的磁盘驱动器451,以及对诸如CD ROM或其它光学介质等可移动、非易失性光盘456进行读写的光盘驱动器455。可以用于示例性操作环境中的其他可移动/不可移动,易失性/非易失性的计算机存储介质包括,但不仅限于,盒式磁带、闪存卡、DVD、数字视频磁带、固态RAM、固态ROM等等。硬盘驱动器441通常由诸如接口 440等不可移动存储器接口连接至系统总线421,并且磁盘驱动器451和光盘驱动器455通常由诸如接口 450等可移动存储器接口连接至系统总线421。上文所讨论的并且在图11中示出的驱动器及其它们相关联的计算机存储介质为计算机410提供了对计算机可读的指令、数据结构、程序模块及其他数据的存储。例如,图 11中,硬盘驱动器441被示为存储操作系统444、应用程序445、其它程序模块446和程序数据447。这些组件可以与操作系统434、应用程序435、其他程序模块436,以及程序数据437 相同,也可以不同。在此操作系统444、应用程序445、其他程序模块446以及程序数据447 在此被给予了不同的编号,以说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘462和定点设备461(通常指的是鼠标、跟踪球或触摸垫)向计算机410输入命令和信息。 其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些及其他输入设备常常通过耦合到系统总线421的用户输入接口 460连接到处理单元420, 但是,也可以通过其他接口和总线结构,如并行端口、游戏端口、通用串行总线(US^端口来进行连接。如上文所讨论的监视器493或其他类型的显示设备也通过诸如视频接口 490 之类的接口连接至系统总线421。除监视器120之外,计算机410也可包括诸如扬声器497 和打印机496之类的其他外围输出设备,它们可以通过输出外围接口 495来连接。计算机410可以使用到一个或多个远程计算机(如远程计算机480)的逻辑连接, 以在联网环境中操作。远程计算机480可以是个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括上文参考计算机410所描述的许多或全部元件,虽然图11中只示出了存储器设备481。图11中所描述的逻辑连接包括局域网(LAN)471和广域网(WAN)473,但是,也可以包括其他网络。这些联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当用于LAN网络环境中时,计算机410通过网络接口或适配器470 (诸如接口 126) 连接到LAN 471。当用于WAN网络环境中时,计算机410通常包括调制解调器472,或用于通过WAN 473(如通过因特网)建立通信的其他装置。调制解调器472,可以是内置的或外置的,可以经由用户输入接口 460或其他适当的机制,连接到系统总线421。在联网环境中, 相对于计算机410所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图11示出了驻留在存储器设备481上的远程应用程序485。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。前面的对本系统的详细描述只是为了说明和描述。它不是详尽的公开或将本系统限于所公开的准确的形式。根据上述原理,许多修改方案和变化也是可以的。所描述的实施方式只是为了最好地说明本系统的原理以及其实际应用,从而使精通本技术的其他人在各种实施方式中最佳地利用本系统,适合于特定用途的各种修改也是可以的。本发明的范围由所附的权利要求进行定义。
权利要求
1.具有计算机可执行指令的计算机可读介质041,456),所述计算机可执行指令用于编程计算设备(102,400)的处理器020)以执行使联网到所述计算设备的客户端设备 (104,368)能够播放媒体文件的方法,所述方法包括下列步骤(a)检测(步骤204)由所述客户端设备所支持的所述媒体文件格式;(b)指示(步骤M0)所述客户端设备联系所述计算设备以获取所述客户端设备不支持的格式的媒体文件;(c)指示(步骤M0)所述客户端设备直接联系远程位置以获取由所述客户端设备所支持的格式的媒体文件;(d)接收(步骤256J60)来自所述客户端设备的获取所述客户端设备不支持的格式的媒体文件的请求;(e)获取(步骤沈4)在所述步骤(d)中所请求的所述媒体文件;(f)将在所述步骤(e)中获取的所述媒体文件代码转换(步骤沈6)为由所述客户端设备支持的格式;以及(g)将在所述步骤(f)中代码转换的所述媒体文件转发(步骤沈8)到所述客户端设备,以便由所述客户端设备进行播放。
2.如权利要求1所述的计算机可读介质,其特征在于,还包括下列步骤(h)接收来自所述客户端设备的执行对媒体文件的搜索的请求,(i)联系远程位置,(j)从所述远程位置获取可用的媒体文件的类别,(k)将所述类别格式化为包括到在所述远程位置处可用的媒体文件的所述类别的链接的数据结构,以及(1)将所述格式化的数据结构发送到所述客户端设备。
3.如权利要求2所述的计算机可读介质,其特征在于,还包括接收来自所述客户端设备的查看可用的媒体文件的所述类别中的一个或多个的请求和联系所述远程位置以获取所述所请求的一个或多个类别的步骤。
4.如权利要求1所述的计算机可读介质,其特征在于,所述步骤(b)和(c)包括将数据结构发送到所述客户端设备以便供所述客户端设备用于获取所述媒体文件的步骤。
5.如权利要求4所述的计算机可读介质,其特征在于,还包括所述数据结构指定供所述客户端设备在请求所述媒体文件时所使用的链接的步骤。
6.如权利要求5所述的计算机可读介质,其特征在于,所述指示所述客户端设备联系所述计算设备以获取所述客户端设备不支持的格式的媒体文件的步骤(b)包括向所述客户端设备发送具有指定到所述计算设备的连接的链接的数据结构的步骤。
7.如权利要求5所述的计算机可读介质,其特征在于,所述指示所述客户端设备直接联系远程位置以获取由所述客户端设备所支持的格式的媒体文件的步骤(c)包括向所述客户端设备发送具有指定到所述被请求的媒体文件的所述位置的直接连接的链接的数据结构的步骤。
8.具有计算机可执行指令的计算机可读介质041,456),所述计算机可执行指令用于编程处理器(420)以执行使客户端设备(104,368)能够播放虚拟电视频道上的媒体文件的方法,所述客户端设备联网到计算设备,所述方法包括下列步骤(a)接收(步骤302)根搜索查询;(b)生成(步骤304)对所述根搜索查询的搜索结果;(c)从所述根搜索查询生成(步骤306)—个或多个派生搜索查询;(d)生成(314)对所述一个或多个派生搜索查询的搜索结果;(e)创建(步骤340、342、346、348)所述虚拟电视频道,所述虚拟电视频道包括来自在所述步骤(b)中所生成的所述根查询的所述搜索结果的内容,以及来自所述步骤(d)中的所述一个或多个派生搜索查询的所述搜索结果的内容;(f)由所述计算设备检测(步骤204)由所述客户端设备支持的所述文件格式;(g)获取(步骤沈4)所述虚拟电视频道中所包括的所述内容,由所述客户端设备支持的格式的内容被从所述支持的内容的源直接发送到所述客户端设备,而所述客户端设备不支持的格式的内容被从所述不支持的内容的源发送到所述计算设备;(h)将在所述步骤(g)中发送到所述计算设备的内容代码转换(步骤沈6)为由所述客户端设备支持的文件格式;以及(i)将在所述步骤(h)中代码转换的内容发送(步骤沈8)到所述客户端设备。
9.如权利要求8所述的计算机可读介质,其特征在于,还包括根据设置未来某预定时间长度的内容播放时间的日程表来播放所述虚拟电视频道上的所述内容的步骤。
10.如权利要求8所述的计算机可读介质,其特征在于,还包括所述客户端设备直接联系所述支持的内容的源以请求所述支持的内容的步骤。
11.一种生成包括媒体内容的虚拟频道的方法,所述方法包括下列步骤(a)接收根搜索查询;(b)生成所述根查询的搜索结果;(c)从所述根搜索查询生成一个或多个派生搜索查询;(d)生成对所述一个或多个派生搜索查询的搜索结果;(e)创建所述虚拟电视频道,所述虚拟电视频道包括来自在所述步骤(b)中所生成的所述根查询的所述搜索结果的内容,以及来自所述步骤(d)中的所述一个或多个派生搜索查询的所述搜索结果的内容;(f)将所述内容解析为不同的节目,每一个节目都是从所述根搜索查询结果和所述一个或多个派生搜索查询结果中创建的;以及(g)向用户显示所述节目,无需所述用户指定要显示的所述内容。
12.如权利要求11所述的方法,其特征在于,还包括从所述一个或多个派生搜索查询生成一个或多个附加的派生搜索查询,以及生成对所述一个或多个附加的派生搜索查询的搜索结果的步骤。
13.如权利要求11所述的方法,其特征在于,还包括根据设置未来某预定时间长度的内容播放时间的预定日程表来播放所述虚拟电视频道上的所述内容的步骤。
14.如权利要求13所述的方法,其特征在于,还包括基于从所述用户接收到反馈的步骤来调整节目的日程表以忽略最初调度的节目和/或添加新节目的步骤。
15.如权利要求11所述的方法,其特征在于,所述向用户显示所述节目的步骤(g)包括通过电子节目指南向用户显示所述节目的步骤,所述虚拟电视频道与所述电子节目指南中的其他频道出现在一起,所述虚拟电视频道的所述不同的节目与所述其他频道中的节目一起呈现。
全文摘要
公开了用于媒体内容搜索与检索的系统,以及能够使用该系统的虚拟电视频道。本系统的第一方面涉及一种媒体下载控制引擎,该控制引擎使具有有限的能力的客户端设备能够播放来自网站的该客户端设备不支持的格式的媒体内容。本系统的第二方面可以利用媒体下载控制引擎来获取媒体内容和创建自定义虚拟频道。
文档编号H04N21/472GK102428465SQ201080022567
公开日2012年4月25日 申请日期2010年5月11日 优先权日2009年5月19日
发明者A·V·迪斯科罗, M·刘, R·博尔德莱, R·霍林格姆, W·宁, Y·吴, Z·马 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1