PRIORITY CLAIMThis application is a continuation of U.S. patent application Ser. No. 14/587,272 filed on Dec. 31, 2014, which is incorporated herein by reference.
TECHNICAL FIELDThe present disclosure generally relates to systems and methods for providing media content and information regarding the media content over a network. Such systems and techniques may be useful, for example, in navigating a user interface (UI) of available content while viewing a current video selection.
BACKGROUNDMost television viewers receive their television programming through a cable, direct broadcast satellite (DBS), IPTV or similar subscription-based service. To that end, television service is usually broadcast from a cable, DBS or other content aggregator to multiple subscribers. The subscribers may then view received content as live broadcasts from any one of a plurality of client devices connected to a home network, and may similarly browse available content from any connected device.
At the same time, the Internet and other digital communications networks continue to have significant effects on every aspect of personal and professional life. Network communications are becoming increasingly ubiquitous due to the reduced cost and increased performance of portable computing devices, as well as the increasing prevalence and capability of mobile telephony and other wireless communications technologies. Additionally, more and more devices, including set top boxes (STBs), television receivers, personal or digital video recorders (DVRs), placeshifting devices and the like are becoming enabled for communications over digital networks. Consumers therefore expect convenient modalities for browsing available media content from a wide range of devices and settings.
Digital streaming media services such as Netflix™, Hulu™ Plus, and Amazon™ Prime employ a “browse-then-watch” metaphor for navigating and viewing subscription content. For example, a user must first terminate or suspend the current viewing session, navigate through available content choices, select the next movie, television show, or the like, and then terminate the browsing session and begin viewing the most recently selected content. That is, the user must interrupt the current viewing session, switch to a browsing mode, and thereafter return to a viewing mode. Other services shrink the current video frame, push it to one corner of the screen, and display a viewing guide in the remaining portion of the screen.
Presently known media distribution paradigms lack the ability to browse available content without substantially disrupting the current viewing session. Moreover, presently known guides are typically presented in the form of a grid containing textual information.
Systems and methods are thus needed which overcome these limitations.
BRIEF SUMMARYAccording to various exemplary embodiments, systems and methods are described for displaying an interactive user guide in a graphically appealing manner which minimally disrupts the then current viewing session. In some embodiments, during a video viewing session, a browsing session is overlaid onto the video being viewed in response to a viewing guide request received from the client. In this way, a viewer may browse for content in the context of the current video viewing session, without shrinking or stretching the frame size of the video session. Information about the available content is displayed in a graphical hierarchy, such as horizontally scrollable ribbons superimposed on the lower portion of the screen.
In an embodiment, the ribbons present a master/detail paradigm, such that the top ribbon displays categories of content (e.g., channels, genre), and a lower ribbon displays details of a selected category. The navigation hierarchy may be abstracted to any number of dimensions, whereby successively increasing embedded detail for a selected tile is displayed in a subsequent ribbon. Other embodiments may also display control instructions to change channels, to fast forward or rewind content, to adjust user preferences, and/or to take any other actions as desired.
Other embodiments provide a hardware environment in which the video decoder and the graphics driver are implemented in the same processor or processing system, thereby reducing cost and hardware complexity. In this way, the interactive user guide interface may be superimposed over the video on virtually any state of the art television, smart phone, lap top or tablet computer, or the like.
Various other embodiments, aspects and features are described in more detail below.
BRIEF DESCRIPTION OF THE DRAWING FIGURESExemplary embodiments will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and:
FIG. 1 is a block diagram of an exemplary host system including a guide server and content server in accordance with an embodiment;
FIG. 2 is a screen shot of a ribbon based guide hierarchy overlaid onto a video in accordance with an embodiment; and
FIG. 3 is a flow diagram of an exemplary process for navigating a content hierarchy during a video session in accordance with an embodiment.
DETAILED DESCRIPTIONThe following detailed description of the invention is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background or the following detailed description.
According to various embodiments, an interactive user guide interface is presented to a user upon request, in the form of horizontally scrollable ribbons disposed in the lower portion of a video screen. in a preferred embodiment, guide overlays and hence cover up the lower portion (e.g., the lower third) of the viewing screen. The guide comprises a top ribbon which presents the viewer with categories of information, and the bottom ribbon displays a detail view of a selected category.
By way of non-limiting example, categories displayed in the top ribbon may include: available channels (e.g., CBS, NBC, ABC, CNN); genres (e.g., comedy, suspense); sports (e.g., NHL, NFL, MLB, NBA); actors (e.g., Jimmy Stewart, Robert Wagner). Details displayed in the bottom ribbon may include the current, past, and future programs offered by a selected channel, available movies corresponding to a selected genre, available games corresponding to a selected sports league, an interactive search feature, and so on. In a preferred embodiment, the bottom ribbon comprises a sequence of individual tiles, each including one or more photographic, graphical, and textual cues using, for example, the imagery and/or art associated with a particular program or franchise. Accordingly, the ribbon metaphor provides at least three dimensions of navigation hierarchy: i) the master ribbon; ii) the detail ribbon; and iii) the textual/graphical/imagery within each tile.
In other embodiments, the ribbon metaphor may be extrapolated to any number of dimensions, such that selecting an item from the then current detail level produces a successive ribbon comprising a deeper level of detail, much like navigating files and folders on a hard drive. In this regard, the “up, down” buttons on a remote, display, or touch pad may be used to navigate up and down the ribbon hierarchy, and the “left, right” buttons may be used to scroll within a ribbon leveraging the left-to-right temporal/chronological metaphor. The Enter, Return, Select, or other intuitively appropriate key (or virtual button) may be used to select an item or tile from within the hierarchy.
In contrast to presently known set top boxes which typically implement graphics drivers and video decoding in software, various embodiments integrate these functions in a single hardware implementation, for example, in a single or multi-core processor, chip set, central processing unit (CPU) or other processing system. In this way, the graphical user interface (GUI) may be overlaid or superimposed onto the video stream seamlessly and cost effectively. Moreover, high bandwidth network protocols allow the system to simultaneously download live video and the GUI graphics over the same pipe in real time.
Various embodiments therefore provide a relatively robust set of functions and features to the viewer that can be conveniently accessed using conventional web protocols and existing client devices. Other embodiments may provide alternate or additional features, as desired.
Turning now to the drawing figures and with initial reference toFIG. 1, an exemplarymedia delivery system100 useful in overlaying a media guide user interface onto a video stream includes amedia server104 for pushingmedia content105, and amedia guide server116 for pushing information regarding available programming, to aclient102 via anetwork110. Theclient102 is configured to presentcontent101 on a display screen, monitor, or the like, and to overlay a user interface (or browser)103 onto a bottom portion of the screen in response to a user request for the browser.
Upon receiving a request from aclient102, thehost116 establishes a session with themedia server104 to access available programming. Thehost116 also retrieves program guide information from aguide database115, which may be a stand-alone database, integrated with thehost116 ormedia115, or otherwise available to thehost116. This information may be appropriately processed and/or formatted (e.g., as a plurality of ribbons) and provided toclient102 vianetwork110. Some implementations may provide robust searching ofcontent105 and/or guideinformation115, for example. Such searching may also considerinformation112 about on-demand programming, and/or other information as desired in addition to information obtained frommedia server104. Other embodiments may additionally or alternately provide the ability to change preferences or other settings onmedia server104, to viewmedia content105 in a web browser or other window, and/or to take any other actions as may be desired.
Client102 may be any device, component, module, hardware, software application and/or the like that is capable of communicating over network no. To that end, many different types ofclients102 may be implemented with any sort of general or special purpose hardware, software and/or firmware. In some embodiments,client102 may be a conventional personal computer, portable computer, workstation and/or other computing system. In still other embodiments, some types ofclients102 may include personal digital assistants, video game players, mobile telephones, network appliances, network-enabled remote controls and/or any other devices capable of communicating on network no.
In the embodiment shown inFIG. 1,client102 may execute any sort of conventional browser application that is compatible with standard Internet, world wide web (WWW) and/or other formats. Conventional web browsers available for a number of different computing platforms include the INTERNET EXPLORER, MOZILLA FIREFOX, SAFARI, CHROME, and OPERA browsers, as well as many others.Such browsers103 are typically capable of displaying active or other documents formatted in accordance with published protocols (e.g., hypertext markup language (HTML), extensible markup language (XML), and/or the like). Many browsers are also capable of executing “plugin” applications, applets or the like. Such plugins may be formatted in accordance with ActiveX, JAVA and/or any number of other formats.
In some embodiments,client102 includes a media application including a graphics and/or video driver in the form of a software module, or the media application may be implemented in hardware (e.g., integrated into the processor associated with the client device). In other embodiments, the media application could be implemented as a plugin or other applet that runs within the browser, as desired. In some embodiments, the media application may be initially obtained from a networked host, such ashost116. The application may be retrieved on an as-needed basis in some embodiments, or may be stored atclient102 for subsequent execution.
Network110 is any digital or other communications network capable of transmitting messages between senders (e.g., media server104) and receivers (e.g., media server104). In various embodiments, network no includes any number of public or private data connections, links or networks supporting any number of communications protocols. Network no may include the Internet, for example, or any other network. Such networks may be based upon TCP/IP or other conventional protocols, although other embodiments may use any type of alternate or successor protocols, as desired. In various embodiments, network no may also incorporate a wireless and/or wired telephone network, such as a cellular communications network for communicating with mobile phones, personal digital assistants, and/or the like. Various embodiments ofnetwork110 may also incorporate any sort of wireless or wired local area networks, such as one or more IEEE 802.3 and/or IEEE 802.11 networks.
Media server104 is any device or system communicating onnetwork110 that is capable of receiving, recording, placeshifting and/or otherwise processingmedia content105. In various embodiments,media server104 includes a personal or digital video recorder (DVR) feature that allows theserver104 to record received programming for later viewing. A DVR may a standalone device, or may be integrated within any sort of receiver (e.g., a cable, direct broadcast satellite (DBS) or other set top box (STB)) that is capable of receiving and demodulating programming signals. Other embodiments ofmedia server104 may include any sort of standalone or hybrid media players, file servers and/or the like that are capable of receiving, storing or otherwise processing streaming or file-basedcontent105 of any sort. Still other embodiments ofmedia server104 could implement a networked gaming server or other media service as desired.
Content105 is any sort of file-based programming or other content that is accessible tomedia server104. In various embodiments,content105 represents stored programming that is received from an internal or external television receiver.Content105 may also represent programming received from a camera, network server and/or other source, as desired. Content may be stored in any media, including in memory, on a hard disk, on a networked server, and/or in any other digital, optical or other available storage medium.Content105 may be stored in any sort of compressed or uncompressed format, as desired, and may be encoded or transcoded as desired for effective receipt, storage, retrieval and playing.
Host116 is any server or other network host capable of interacting with one ormore clients102 to provide instructions to one ormore servers104. In various embodiments,host116 is a program guide server that also allows integration ofprogram guide information115 and/or information about available on-demand programming112 or the like with information aboutcontent105, as described more fully below.
FIG. 1 shows one example of ahost116 that could be used to provide a guide server that interacts with any number ofclients102 andservers104. To that end, eachhost116 withinsystem100 may be implemented with a server computer system or service that is based upon any processor, architecture and/or operating system. Eachhost116 will typically by implemented using any sort ofconventional processing hardware122,memory124 and input/output features125. Various embodiments may be implemented using dedicated or shared hardware servers; other implementations may make use of virtual server features as part of a “cloud computing” service, such as any of the cloud computing services provided by AMAZON, GOOGLE, MICROSOFT, IBM, UBUNTU, SUN MICROSYSTEMS and/or any number of other providers.
AlthoughFIG. 1 shows asingle host116 for convenience, many practical embodiments may provide a cluster or other collection ofmultiple hosts116 to support any desired number of simultaneous connections. This cluster may also incorporate appropriate routing, load balancing, access and security mechanisms and or any number of other features. In various embodiments, eachhost116 is an actual or virtual computer system executing anoperating system126 such as any version of LINUX, UNIX, SOLARIS, NETWARE, WINDOWS, OS/X, AIX and/or the like. The various UNIX/LINUX operating systems typically provide a computing core that is capable of executing aguide server application128, as well as any number of daemons, processes, applications or other instance modules as desired. For example, aguide server application128 could execute as a daemon onhost116, with connections to separateclients102 being managed as separate processes or instances that communicate withserver application128 using features provided byoperating system126.
Guide server application128 is typically initiated whenhost116 is booted or otherwise initialized. In various embodiments,application128 suitably registers with any appropriate load balancers or other routers so that connections withclients102 can be appropriately distributed.Application128 then processes connection requests fromclients102 as appropriate. In the embodiment shown inFIG. 2, guideserver application128 containscontrol logic132 for controlling remotely-locatedservers104 and a web server orother presentation logic136 for providing information toclient102 in a web-based or other format that can be conveniently presented to the user. Various embodiments may also providesearch engine logic134 as desired; this search engine may perform an integrated search of information aboutcontent105 that is stored with theremote media server104, as well as anyprogram guide information115 and/or information about on-demand programming112 as desired.Such information112,115 may be obtained from any database or other source available to host116, including any database executing on a separate server or the like.
Control module132 contains any appropriate programming logic to establish sessions over network no with one ormore media servers104 in response to requests received fromclients102. Such sessions can be used to retrieve information from themedia server104 and/or to provide instructions to the media server as desired. In various embodiments, interaction betweenclient102 andhost116 is implemented within the context of a conventional web session that allows active and/or passive web content to be displayed within thebrowser103; other embodiments may use different structures or techniques as desired.
Interactions betweenhost116 andclient102 may be managed in any manner. In various embodiments,client102 interacts withhost116 using a conventional web browser that can receive information from a conventional web server. Such information may be provide as part of dynamic or active web content (e.g., using ASP, JAVASCRIPT, Cold Fusion, PHP and/or other content, or using JAVA, ACTIVEX and/or other plugins), and/or as static content (e.g., using HTML, XML or similar constructs). In various embodiments, a conventional web page or similar document may be displayed with embedded active content that allows the user to interact with a program guide or other information using conventional graphical user interface (GUI) constructs.
Guide server application128 may provide any alternate and/or additional functions and features as desired. Generally, guideserver application128 is at least partially implemented using conventional compiled object code derived from source code in any programming language (e.g., C, C++ or the like). Other embodiments may make use of an interpreted or other abstracted environment, such as the JAVA environment available from Sun Microsystems of Sunnyvale, Calif. or the .NET environment available from Microsoft Corporation of Redmond, Wash. Other embodiments may implement the various components ofguide server application128 using any other programs, programming languages, scripting languages, development or execution environments, and/or the like. Such programming may be stored in source or object code form on any digital storage medium (e.g.,memory124, mass storage, removable media, or any other medium) that is accessible to guideserver application128.
Turning now toFIG. 2, ascreen shot200 illustrates a ribbon basedguide202 overlaid ontoprogram content204 in accordance with an embodiment. More particularly, theprogram content204 may occupy the entire screen when theguide202 is not present. When summoned by the user, theguide202 is overlaid, superimposed, or otherwise integrated onto the same screen as the viewed program, for example, over the lower portion (e.g., the lower third, half, quarter) of the screen. In various embodiments, the aspect ratio of the program content remains intact while the user interface is displayer; that is, the frame size of the program being viewed is neither increased nor decreased. Alternatively, the frame size may be re-formatted onto that portion of the available screen not occupied by the UI.
With continued reference toFIG. 2, theUI202 includes afirst ribbon206 and asecond ribbon208. In the illustrated embodiment, thefirst ribbon206 comprises a scrollable listing of available channels which, when selected by the user, reveal a deeper level of detail in a subsequent ribbon. The second (lower)ribbon208 comprises a scrollable sequence ofindividual tiles210, each including one or more of branding or franchise (e.g., channel, network, or program)information212, textual and/orgraphical information214, and/or photographic orother imagery216.
Turning now toFIG. 3, anexemplary process300 for simultaneously providing media content and a searchable program guide to aclient102 overnetwork110 is shown. Generally speaking,process300 involves establishing asession212 between host106 andmedia server104 in response to arequest204 received from aclient102. Host116 also interacts withclient102 as desired to provide program information and media content, to receive instructions, and/or for any other purpose. The various functions shown inFIG. 3 may be performed by software, firmware or other programmable instructions stored within and executed by the various components ofFIG. 1, as appropriate.
With continued reference toFIG. 3, in various embodiments the client requests (function302) content to be viewed, whereupon the host retrieves (function304) the content from the content server. The media server returns (function306) the requested content to the host, which pushes (function309) the selected content to the client for viewing.
While the elected content is being viewed, the user may request (function310) a program guide or other user interface to facilitate navigating through a hierarchy of available content for subsequent viewing. The host retrieves (function312) the guide information from the guide server, whereupon the guide server returns (function314) the guide information to the host. The guide information is then transmitted to the client device (function316), where it is populated into an appropriate UI and overlaid onto the then current program being viewed.
With continued reference toFIG. 3, the user may select (function318) an item from the master ribbon (e.g., the top ribbon), whereupon the guide server returns (function320) the corresponding detail for the selected item to the host. The host then pushes (function322) the detail to the client, for display in the second (e.g., bottom) ribbon.
A method executable by a host communicating with a client over a network is thus provided. The method includes: receiving a request from the client while media content is displayed at the host; in response to the request, transmitting a user interface (UI) to the client; and displaying the UI at the client without interrupting the displayed media content; wherein the UI comprises a horizontally scrollable ribbon.
In an embodiment, the media content comprises a video stream, and the host comprises a server configured to simultaneously transmit the media content and the UI to the client.
In an embodiment, displaying the UI comprises overlaying the UI on top of the displayed media content while maintaining the shape size of the displayed media content.
In an embodiment, displaying the UI comprises overlaying the UI on a bottom portion of the displayed media content, where the bottom portion may be in the range of 10% to 50% of the height of the displayed media content.
In an embodiment, transmitting the UI comprises forming a web page with program guide information and transmitting the web page to an application executing on the client.
In an embodiment, the UI comprises a first horizontally scrollable ribbon comprising topic tiles and a second horizontally scrollable ribbon comprising detail tiles pertaining to one of the topics.
In an embodiment, the method also includes changing the then current media content to display new media content corresponding to the selected detail tile in response to a user selecting one of the detail tiles.
In an embodiment, the method also includes presenting a third ribbon comprising further detail corresponding to the selected detail tile in response to a user selecting one of the detail tiles.
A media delivery system is also provided which includes: a host configured to simultaneously transmit a video stream and an interactive program guide browser to a client device; and a processor configured to simultaneously decode the video stream and display the browser at the client device; wherein the system is configured to provide an integrated display at the client device, the integrated display including a master ribbon comprising selectable channel tiles overlaid onto a bottom portion of a video frame.
In an embodiment, the integrated display further includes a detail ribbon comprising selectable program tiles overlaid on the bottom portion of the video frame.
In an embodiment, the detail ribbon abuts a bottom horizontal edge of the video frame, and the master ribbon abuts a top horizontal edge of the detail ribbon, and the master and detail ribbons are independently horizontally scrollable.
In an embodiment, the integrated display further includes a third ribbon disposed adjacent the detail ribbon and comprises additional information corresponding to a selected program tile.
In an embodiment, the media delivery system is further configured to overlay the browser without interrupting the video stream while maintaining the shape size of the video frame.
In an embodiment, the at least one program tile comprises textual, photographic, and branding imagery.
In an embodiment, the media delivery system is further configured to change the then current video stream and display a new video stream in response to a user selecting one of the program tiles.
An integrated display provided by a host to a client device comprises: a substantially rectangular frame; a live stream video provided within the frame; and a program guide overlaid onto a portion of the live stream video, the program guide including a master ribbon and a detail ribbon; wherein the master and detail ribbons are horizontally scrollable.
While several exemplary embodiments have been presented in the foregoing detailed description, it should be appreciated that a vast number of alternate but equivalent variations exist, and the examples presented herein are not intended to limit the scope, applicability, or configuration of the invention in any way. To the contrary, various changes may be made in the function and arrangement of elements described without departing from the scope of the claims and their legal equivalents. The term “exemplary” is used herein to represent one example, instance or illustration that may have any number of alternates. Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations.