# Patent

## Title
Systems and methods for linking media content

## Abstract

Systems and methods are described for presenting a plurality of media clips to a viewer using a media player device. A first media clip is displayed on the media player, and an indicator corresponding to a second media clip is provided during playback of the first media clip. In response to the viewer selecting the indicator, playback of the first media clip is suspended, and information is stored about the first media clip on the media player device. The second media clip can then be subsequently displaying on the media player device. After displaying the second media clip, the stored information can be retrieved, and playback of the first media clip can resume from the point that playback was previously interrupted.

## Background
TECHNICAL FIELD
The following discussion generally relates to streaming media, and in particular relates to systems, devices and techniques for processing linked media streams.
BACKGROUND
Consumers are continually demanding increased flexibility in viewing streaming and other forms of media. Whereas television viewing traditionally involved watching imagery received on a broadcast signal on a conventional television set, modern media experiences allow media content to be provided via broadcast, cable, satellite, portable media (e.g., DVD) and other sources. Further, the Internet and other relatively high-bandwidth networks now allow media content to be streamed or otherwise delivered to any number of devices (e.g., wireless phones, computers and the like) that previously were not typically used for viewing media content. Consumers are therefore able to view media content on a wide variety of devices and in a wide variety of locations.
In addition to the increased availability and flexibility in viewing media content, consumers have recently expressed significant interest in creating “clips” of media content that can be shared with others. Such clips may include relatively short excerpts of viewed media content in a digital or other format that may be distributed via the Internet or another channel; a number of Internet services for uploading and sharing media clips have become very popular in recent years.
As media streaming, clipping, placeshifting and other forms of media viewing continue to evolve, a need has emerged for an interface that allows consumers to view multiple media files in a convenient and intuitive manner. These and other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background section.
BRIEF DESCRIPTION
According to various exemplary embodiments, systems and methods are described for presenting a plurality of media clips to a viewer using a media player device. In a first embodiment, a first media clip is displayed on the media player, and an indicator corresponding to a second media clip is provided during playback of the first media clip. In response to the viewer selecting the indicator, playback of the first media clip is suspended, and information is stored about the first media clip on the media player device. The second media clip can then be subsequently displaying on the media player device. After displaying the second media clip, the stored information can be retrieved, and playback of the first media clip can resume from the point that playback was previously interrupted.
Other embodiments provide a system for presenting a plurality of media clips to a viewer. The system comprises means for displaying a first one of the plurality of media clips and for providing an indicator corresponding to a second one of the plurality of media clips on the media player device during playback of one the first one of the plurality of media clips. A means for receiving a viewer input corresponding to the indicator from the viewer is also provided. The system additionally comprises a means for processing playback of the plurality of media clips, the controlling means comprising means for suspending playback of the first one of the plurality of media clips and for subsequently directing the display of the second one of the plurality of media clips on the media player device in response to the viewer input corresponding to the indicator. Various embodiments also comprise a means for storing information about the first one of the plurality of media clips on the media player device while the second one of the plurality of video clips is being displayed.
In still other embodiments, a device for presenting a plurality of media clips to a viewer is provided. The device suitably comprises a display, a digital storage medium, a user interface configured to accept inputs from the viewer, and a processor. The processor can be configured to present a first one of the plurality of media clips to the viewer on the display and to provide an indicator corresponding to a second one of the plurality of media clips on the media player device during playback of the first one of the plurality of media clips, and, in response to the inputs from the viewer indicating a selection of the indicator, to suspend playback of the first one of the plurality of media clips, to store information about the first one of the plurality of media clips on the digital storage medium and to subsequently present the second one of the plurality of media clips on the display.
Various other embodiments, aspects and other features are described in more detail below.



BRIEF DESCRIPTION OF THE DRAWING FIGURES
Exemplary 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 media player;
FIG. 2 is a block diagram of an exemplary metadata structure; and
FIG. 3 is a flowchart of an exemplary method for presenting multiple interlinked media clips.



DETAILED DESCRIPTION
The following detailed description 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, the viewer experience is improved by providing media clips that are interconnected by a hyperlink or the like so that the viewer is able to readily navigate between the various clips. In some embodiments, an indicator associated with a second clip is presented while the viewer is watching a first clip. When the viewer clicks or otherwise activates the indicator, the viewing context switches from the first clip to the second clip. That is, viewing of the first clip can be temporarily suspended while the second clip is viewed. Information about the first clip is stored while the second clip is played, therefore allowing convenient restoration of the first clip after the second clip is finished, or after the viewer navigates back to the first clip from the second. This allows the viewer to “browse” through video clips in a manner similar to browsing of web pages or the like, thereby providing a convenient and intuitive interface to the viewer.
With reference now to FIG. 1, media player 100 is any device, system or module capable of playing media clips received from any source. Clips may be received from any source, such as a local storage medium 127 and/or a server 108 located across a digital network 110. Clips are rendered on a display 132 using various hardware and software features as appropriate. As noted above, multiple clips may be inter-linked in any manner to allow browsing between clips through navigation of links associated with each clip.
In various embodiments, media player 100 is implemented with any sort of conventional computer system or similar workstation, such as any sort of desktop, laptop or other personal computer or general-purpose computing system. In other embodiments, media player 100 is a set-top box (STB) or other receiver device capable of receiving television or other media signals via any sort of broadcast, cable, satellite or other medium. In still other embodiments, media player 100 may be a portable self-contained computing device such as any sort of wireless phone, personal digital assistant (PDA), network client and/or the like. Alternatively, media player 100 is a logical application or other module implemented in software or firmware that can be executed on any sort of processing hardware, including any sort of web or other network client. Media player 100 as described herein therefore represents any device, logic or other system capable of receiving a media clips from any local or remote source and of playing media clips for one or more viewers.
“Clips”, as used herein, refers to any audio, video, audio/video or other media content received from any source, and in any format. In various embodiments, “clips” are simply streaming or file-based digital media content in any format that can be retrieved from server 108 or another source via a digital communications network 110 or the like. In embodiments wherein media player 100 is a television receiver such as a STB, for example, media clips may be received directly from a satellite, cable, broadcast or other source. In such embodiments, media clips may be a received television signal or the like that is received and processed locally on media player device 102. Media clips may also represent a stream obtained from a DVD or other portable medium, and/or a media file stored at media player 100 in any format.
In some embodiments, media player 100 is able to create clips from any source. Sources of clipped content could include any digital or analog programming stream, including any stream received from a broadcast source (e.g., a satellite, terrestrial broadcast and/or cable source), digital video recorder, placeshifting device, DVD or other portable media, network source, and/or the like. Clip creating may be provided by media player 130 or a separate editing application. In such embodiments, received media streams can be converted into shorter digital clips that can be shared with other viewers, e.g., using network 110. Clip creation features need not be provided in all embodiments, however.
In the exemplary embodiment shown in FIG. 1, media player 100 includes a processor 122, memory 124 and input/output features 126 commonly associated with any conventional computing platform. Processor 122, for example, may be any sort of microprocessor, microcontroller, digital signal processor, programmable array or other logic capable of executing instructions and processing data to implement the various features of the media player device. Memory 124 includes any sort of RAM, ROM, flash and/or other memory capable of storing instructions and data that can be processed by processor 122 or other processing logic as appropriate. Input/output 126 typically includes any conventional interfaces to input devices (e.g., keyboard, mouse, trackball, joystick, directional pad, touchpad/touchscreen, wireless or other remote control, and/or other input devices as appropriate), as well as any conventional interfaces to output devices such as a display 132 or the like. Input/output 126 typically also includes interfaces to any sort of mass storage 127 (e.g., a magnetic or optical disk) and/or to a communications network 110. Network interfaces used in various embodiments might include any sort of wired (e.g., IEEE 802.3 “ETHERNET”) or wireless (e.g., IEEE 802.11 “Wi-fi”) interfaces, including any sort of interfaces to telephone networks.
Any of the various features of media player 100 may be implemented with any sort of general or special purpose hardware, software and/or firmware, as appropriate. In some embodiments (e.g., embodiments wherein media player 100 is implemented as a STB or other media receiver), processor 122, memory 124 and/or input/output 126 may be implemented as a “system on a chip” (SoC) using any suitable processing circuitry under control of any appropriate control logic. In various embodiments, such control logic may execute within an integrated SoC or other processor to implement a media receiver, decoder, display processor and/or any other features as appropriate. The Broadcom Corporation of Irvine, Calif., for example, produces several models of processors (e.g., the model BCM 7400 family of processors) that are capable of supporting SoC implementations of satellite and/or cable receiver systems, although products from any number of other suppliers could be equivalently used. In still other embodiments, various distinct chips, circuits or components may be inter-connected and inter-relate with each other to implement the various functions and features described herein. In still other embodiments, processor 122 and/or any other features may be implemented with an application specific integrated circuit (ASIC) or the like.
To that end, operations of device 102 may be controlled by any sort of general purpose or other operating system 128. Operating system 128 typically implements user interface features and also allows programs (e.g., media player application 130) to use the various hardware and other resources of device 102. Examples of operating systems that could be used in various embodiments include any of the well-known operating systems conventionally used in personal computing (e.g., any version of WINDOWS, MacOS/OSX, LINUX OS, etc.) or mobile computing (e.g., any version of BLACKBERRY, ANDROID, WINDOWS MOBILE, SYMBIAN, iPHONE and/or any other operating system). The particular examples of operating systems are not intended to be limiting; indeed, other embodiments could be based upon other operating systems, including any sort of proprietary operating system, and equivalent embodiments could be based upon any sort of programming or other abstraction environment (e.g., JAVA, .NET, and/or the like) in place of or in addition to a conventional operating system 128.
Media player application 130 is any program, application, applet, browser plugin, software module and/or other logic capable of decoding one or more clips for playback on display 132 or the like. Media player application 130 may be implemented in any programming language, and may be stored in source or object code format in any storage medium, including memory 124 and/or any sort of disk or other mass storage available to media player 100. In an exemplary implementation, media player application 130 is a software program that is stored in object code form on a disk or similar medium until being activated by the user. The program 130 is then partially or wholly duplicated into memory 124 to facilitate execution of the object code instructions by processor 122.
Display 132 is any sort of television, monitor or other display capable of presenting imagery to the viewer. In various embodiments, display 132 is a conventional television or computer monitor associated with media player 100, including any sort of integrated or external display 132 that might be associated with a computer, wireless phone, PDA or the like. In other embodiments, display 132 is a conventional analog or digital television that may be coupled to a STB or other receiver, as described above. Display 132 need not be physically present at the same location as media player 100 in all embodiments; to the contrary, content may be provided from media player 100 to display 132 via any sort of cabling, network (e.g., network 110) or the like.
Network 110 is any digital or other communications network capable of transmitting messages between senders and receivers. In various embodiments, network 110 may encompass one or more wide area networks, local area networks, and/or any combination of wide and local area networks, including any sort of wireless or other telephone networks. Network 110 can include any number of public or private data connections, links or networks supporting any number of communications protocols. Network 110 may include the Internet, for example, or any other network based upon TCP/IP or other conventional protocols. In many embodiments, network 110 may also include one or more conventional local area networks, such as one or more IEEE 802.3 and/or IEEE 802.11 networks. Network 110 may also incorporate any sort of wireless telephone network, such as any sort of GSM/EDGE or CDMA/EVDO connection, any sort of 3G or subsequent telephone link, and/or the like. Network 110 as shown in FIG. 1, then, is intended to broadly encompass any digital communications network(s), systems or architectures for transmitting data between the various components of system 100.
Server 108 is any conventional network server that is able to receive and/or provide one or more media clips on network 110. In various embodiments, server 108 is a media server that distributes media clips to various media players 100 over network 110. In various further embodiments, server 108 also receives media clips that are created by viewers using media players 100 or the like. In such embodiments, viewers are able to create custom-made clips from broadcast or other content and to share their clips with friends or others. Clips may be provided from server 108 in any sort of file-based and/or streaming format, such as any sort of formatting based upon WINDOWS MEDIA, QUICKTIME, REAL MEDIA, FLASH, SHOCKWAVE and/or other products.
The viewer is able to interact with media player application 130 using the interface features of display 132 in any manner. In various embodiments, the viewer is able to select the buttons, icons, sliders and/or other interface features presented on display 132 using conventional keyboard, mouse, and/or other interface hardware that may be available. Other embodiments may provide a wireless remote control or the like, or any other interface feature supported by media player 100. In an exemplary embodiment, the viewer is able to select and manipulate icons, sliders, buttons and/or other interface elements on display 132 through movement and selection of a cursor or other conventional interface feature using a mouse or other multi-dimensional input device. Such features are commonly supported by various operating systems 128, hardware drivers (e.g., input/output features 126) and/or the like.
In the exemplary embodiment shown in FIG. 1, media player 100 is able to present a clip 106 on display 132 for the viewer. The clip 106 is presented in conjunction with an appropriate user interface that incorporates buttons, icons and/or other features that allow for navigation and control of the viewer experience. For example, the exemplary interface shown in FIG. 1 includes a Play button 116 that allows the viewer to play or pause the presentation of the media clip 106, as well as a time shift buffer indicator 113 that displays the current playback position within the clip. A slider 114 is also provided in this example that allows the viewer to move within the time shift buffer to change the playback position of the clip. That is, the slider 114 moves with respect to the time shift buffer indicator 113 to “fast forward” or “rewind” the playback of the media clip 106. Other embodiments may equivalently provide buttons, icons or other features in place of slider 114 or buffer indicator 113, or any of the other particular imagery and interface elements shown in FIG. 1. Further, various embodiments may provide additional features not shown in FIG. 1. Some embodiments may allow viewers to record “mark points” or the like, for example, on or near the time shift buffer indicator 113 to provide a convenient reference for later re-viewing of one or more scenes. Still other embodiments may allow editing of the clip, or “sub-clipping” (e.g., creation of new clips from the existing clip). For example, start and end points of a sub-clip may be defined with respect to the time shift buffer or the like.
While a first clip 106 is playing, indicators 102 for other clips may be presented in any manner. In various embodiments, indicators 102 are simply icons, buttons or other interface features that can be clicked or otherwise actuated to present a different clip to the viewer. This second clip may be interlinked to the first clip in any manner, as described more fully below. When the viewer selects indicator 102, the viewing experience changes to that of the second clip. Information about the first clip can be stored (e.g., in memory 124 and/or storage 127) for subsequent retrieval, and the second clip is played for the viewer. After viewing of the second clip is complete (e.g., the clip is finished, or the viewer indicates a desire to stop viewing the clip), viewing of the first clip can be restored, as described more fully below.
To that end, contextual information about the first clip can be stored before (or while) the subsequent clip is presented, thereby allowing the viewer to restore the original context at a later time. Contextual information may include some or all of the contents of the time shift buffer (including any mark points, sub-clip start/end points, editing information and/or the like). This information may be stored in memory 124, storage 127 or another suitable location so that the viewer is able to return to the same viewing context that was displayed before navigating to the subsequent clip.
By storing context information about clips as subsequent clips are selected, navigation or “browsing” between clips can be facilitated. To that end, display 132 as shown in FIG. 1 includes two browsing indicators 105, 107 that allow reverse or forward navigation, respectively, between clips. By selecting indicator 105, for example, the viewer is able to revert to the previously-viewed clip. After reverting to a previously-viewed clip, indicator 107 can be selected to move “forward” in the linked chain of video clips, as appropriate. Any number of clip contexts may be stored in any sort of linear or other chain to allow backward and/or forward browsing through the various clip contexts, as desired.
Indicators 102 associated with other clips may be presented in any manner. In various embodiments, indicators 102 are simply presented within imagery presented on display 132 to allow for selection of a subsequent clip. Indicator 102B, for example, shows an icon or other indicator that can be selected to bring up a second clip at any time during viewing of the present clip. Clips may be selected from indicators 102C that overlie or are otherwise located within the displayed imagery of the current clip 106 in some embodiments. To that end, indicators 102A-C may be presented in any location and at any time during viewing of clip 106, as appropriate.
In the example of FIG. 1, indicator 102A is shown proximate to the time shift buffer indicator 113 to indicate a clip that may correspond to the particular content of the presently-viewed clip at the time indicated in the time shift buffer. If a particular product is being shown or discussed during a portion of the present clip, for example, indicator 102B may provide a link to a second clip that provides more information about that product for that portion of the clip. Indicator 102A may therefore be presented when the playback of the first clip (as indicated by the position of slider 114) is within the portion of the time shift buffer 113 that corresponds to the particular time that the content of the second clip is most relevant. Indicators corresponding to other clips may be presented at other times, and/or no indicators to other clips may be provided at certain times during playback of the first clip, as desired.
Indicators 102A-C that allow the viewer to quickly access other media clips may therefore be provided in any manner. As a first clip is presented to the viewer, the indicators 102A-C may be presented at times and locations on display 132 that are convenient and logical for providing access to additional clips. Upon selection of one or more indicators 102A-C, the subsequent clip is presented, and information about the first clip (e.g., the contents of the time shift buffer, an indication of the point in the clip when viewing was suspended, and/or other information) is stored for subsequent viewing of the first clip.
Clips may be inter-linked in any manner. In some embodiments, linking information about subsequent clips is provided in metadata associated with the first clip to facilitate a clip browsing experience that is both familiar and convenient to the viewer. Metadata associated with the first clip can contain information 200 that identifies subsequent clips, and provides sufficient information to media player 100 to allow displaying and selection of the clips in a manner intended by the clip creator.
FIG. 2 shows an exemplary structure for linking clips to each other. In various embodiments, information 200 is stored in metadata of the first clip that allows for linking to the second clip. Such information 200 may include such features as a time 202 that the indicator 102 is presented, an identification 204 of the indicator 102, an identification 206 of the second clip itself, and/or any access restrictions 208 placed on the subsequent clip. By providing this information with the first clip, a second clip can be conveniently linked to the second clip to allow for sequential or other viewing of the related clips.
Time information 202 is any indication of a time in the first clip that the indicator for the second clip may be active. Information 202 may include a start time, an end time, or both starting and ending times to define those times during playback that the indicator 102 for the clip is active. Multiple times or time ranges may be defined in some embodiments, thereby allowing the indicator 102 to be displayed at multiple points during playback of the first clip. Timing information may not be present in all embodiments; in such cases, indicator 102 may be presented throughout the duration of the first clip, or other default-type actions may be taken.
Identification 204 of the indicator 102 may be provided in any manner. In various embodiments, identification 204 includes data that describes the icon or other graphical imagery for indicator 102. This information may be defined in any manner. In various embodiments, indictor 102 is simply provided as a JPEG, TIFF, PNG or other image. Other embodiments may provide a uniform resource locator (URL) or other address/link to additional information. In still other embodiments, a reference to a video frame or other source of imagery for indicator 102 may be provided. Alternatively, textual or numerical information may be provided that allows the media player 100 to generate a suitable indicator 102.
Clip identification 206 is any information capable of identifying the second clip. Such information may include a URL or other address of the clip (e.g., a location on network 110 where the clip may be obtained), or may include the clip itself in some embodiments.
Some clips may be associated with access restrictions 208 and/or other limits upon viewing. Clips may be restricted based upon time of day, dates of availability, and/or other factors as appropriate. In some embodiments, certain clips can be access restricted to allow for distribution only to limited groups (e.g., members of a “friends” group or to viewers who have entered appropriate userid/password pairs or other credentials). Any information 208 relating to viewing restrictions, access controls or the like can be incorporated into metadata 200 for processing by media player 100 as appropriate.
The information provided in metadata 200 may be created and formatted in any manner. In various embodiments, a clip author is able to provide information within structure 200 using an authoring tool, or any sort of manual entry, or any combination of the two. In various embodiments, media player application 130 includes the ability to create media clips from received media streams, as described above; this functionality can be enhanced to allow the inter-linking of additional clips as described herein. A clip creation tool, for example, may include options to add references to additional clips that can be linked from the created clip. Such tools may simply request a URL or other address of the created clip, as appropriate, or may provide any sort of “drag and drop” or other convenient graphical mechanism for inter-linking multiple clips. Start and end times for presenting the indicator 102 (as well as any other parameters) may be defined manually, graphically or otherwise. Start and end times could be selected from points on the time shift buffer indicator 113 associated with the primary clip, for example. Any additional information (e.g., relating to a display location for the indicator 102) could also be provided as desired.
Turning now to FIG. 3, an exemplary process 300 that may be executed at media player 100 suitably involves the broad steps of displaying a first media clip on the media player device (function 302), providing an indicator 102 corresponding to a second media clips during playback of the first media clip (function 306), and in response to the viewer selecting the indicator (function 308), suspending playback of the first media clip and storing information about the first media clip on the media player device (function 310). The second media clip can be subsequently displayed on the media player device (function 312) as appropriate.
Generally speaking, each of the method steps shown in FIG. 3 may be implemented in software or firmware that may be stored in memory, mass storage or any other storage medium available to the executing device, and that may be executed on any processor or control circuitry associated with the executing device. For example, the various functions shown in FIG. 3 may be implemented in software or firmware that can be stored in memory 124 and/or storage medium 127 and executed by processor 122. The particular logic shown in FIG. 3 may be modified or enhanced in any manner, and any other components, systems, logic or devices may be involved in various other embodiments as appropriate.
Media clips may be displayed in any manner (function 302). As noted above, clips may be rendered by media player application 130 and presented on display 132 associated with media player 100 in any manner. Displaying may be initiated in response to inputs (e.g., from “play” button 116) provided by the viewer using a graphical or other user interface. The media clip is then rendered (e.g., by processor 122 operating in conjunction with decoder software in media player application 130 or the like) and displayed as appropriate.
The displayed media clip may have any number of associated clips that are interlinked through metadata or the like. If links are present (function 304), indicators 102 for the linked clips can be presented (function 306) on display 132 while the clip is being displayed. As noted above, metadata 200 associated with the displayed clip can describe appropriate times during playback that the indicator 102 is active, and/or any other parameters as desired. That is, indicator 102 may be active during particular times during playback or the like, and may also be activated/deactivated in response to access controls, temporal constraints, available hardware or software, or other parameters as desired. These parameters may be defined within metadata 200 that accompanies the primary clip.
When the viewer selects an indicator 102 (thereby indicating a desire to view a secondary media clip that is associated with the indicator 102), the linked clip is processed as appropriate (function 310). In various embodiments, playback of the primary media clip is paused or otherwise suspended, and some or all of the contents of the time shift buffer associated with the primary clip are stored (e.g., in memory 124 and/or storage 127) for later retrieval. In other embodiments, a time marker that indicates a time that the playback was interrupted may be stored to facilitate later playback of the first clip from the same point that playback was previously left off. Other embodiments may additionally store metadata, viewer settings and/or other contextual information associated with the viewing of the first media clip.
Information for multiple clips can be stored for later retrieval (e.g., using the back button 105 and/or forward button 107 described above). Indeed, any number of additional clip contexts can be stored, so long as the amount of available memory or other storage space is not exceeded. To that end, some embodiments may impose a limit on the number of contexts/information that can be stored to prevent excessive memory or other storage consumption by such information.
After storing information associated with the primary media clip, the secondary clip associated with the selected indicator 102 can be presented on display 132 (function 312). At this point, the second clip can effectively function as the primary clip described above, with additional links/indicators 102 processed as appropriate to facilitate a multi-link chain of video clips. That is, the viewer may be presented with additional indicators 102 for additional clips that have not yet been presented based upon metadata 200 associated with the second clip.
Further, the viewer may be able to navigate back to the original clip by selecting an appropriate icon, button or other indicator 102 on display 132 (function 314). The indicator may simply be the “back” button 105 described above, or may be another indicator 102 presented elsewhere on display 132 as desired.
If the second clip terminates without the viewer selecting a link to a third clip, then any appropriate default action may be taken (function 316). In an exemplary embodiment, the media player application 130 simply waits for additional instruction before proceeding. In other embodiments, the viewing context for the previous clip can be restored, or any other action can be taken as desired.
Viewing of the original clip can be restored in any manner (function 318). In various embodiments, the time shift buffer or other information previously stored (e.g., in function 310) can be retrieved from memory 124, storage 127 or any other location, and the viewing context for the original clip can continue. If the point at which viewing was previously suspended was recorded, playback of the original clip can continue at that same point, as desired. Other information from the previous viewing context (mark points, viewer settings, preferences, etc.) may also be retrieved to preserve the original viewing context as accurately as possible.
The basic functionality described in FIG. 3 can be supplemented in any number of ways. The particular clips that are linked to each clip, for example, may be manually or automatically selected in any manner. Automatic selection may take place, for instance, in response to keywords entered by any number of authors, editors and/or viewers, thereby allowing clips with common keywords or other descriptors to be linked together. Clips can be associated based upon commercial relationships or other factors (e.g., an advertisement clip can be linked to a primary clip to allow for selective viewing of the advertisement). Still further, clips can be associated with each other based upon the contents of the clips, as noted above. If an actor in a primary clip is visiting a museum or other attraction, for example, a secondary clip providing more information about the attraction can be linked to the primary clip, with the indicator 102 associated with the second clip being visible during the portions of the primary clip where the attraction is discussed or described. Similar features could be used with product placement, advertisements, or simply to provide clips with common content and to associate the content of the current clip with content of the linked clips.
Again, the concepts described herein could be readily and equivalently applied to any type of video, audio or other media files, including files provided in any sort of streaming or file based format, as well as terrestrial or satellite broadcasts, cable transmissions, signals obtained from DVD or other recorded media, and/or the like.
As used herein, the word “exemplary” means “serving as an example, instance, or illustration”. “Exemplary” embodiments are not intended as models to be literally duplicated, but rather as examples that provide instances of embodiments that may be modified or altered in any way to create other embodiments. Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations.
While the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing various embodiments of the invention, it should be appreciated that the particular embodiments described above are only examples, and are not intended to limit the scope, applicability, or configuration of the invention in any way. Various changes may be made in the function and arrangement of elements described without departing from the scope of the invention and its legal equivalents.

## Claims

1. A method for browsing between a plurality of media clips each comprising motion video presented to a viewer using a media player device, wherein the plurality of media clips comprises a first media clip and a second media clip, the method comprising:
displaying the first media clip in a first viewing context on the media player device, wherein the first media clip is stored in a first time shift buffer;
during playback of the first one of the plurality of media clips from the first time shift buffer, providing an indicator corresponding to a second one of the plurality of media clips on the media player device;
in response to the viewer selecting the indicator, suspending the playback of the first one of the plurality of media clips from the first time shift buffer, storing context information describing the first viewing context on the media player device, and subsequently replacing the first viewing context with a second viewing context that plays back the second media clip on the media player device from a second time shift buffer that is separate from the first time shift buffer; and
in response to a subsequent input from the viewer during the playback of the second video clip in the second video context, retrieving the stored context information describing the first viewing context, restoring the first time shift buffer containing the first media clip on the media player device from the stored context information, and continuing playback of the first one of the plurality of media clips in the first viewing context on the media player device from the first time shift buffer to thereby allow the viewer to sequentially browse between playback of the first media clip from the first time shift buffer and playback of the second media clip from the second time shift buffer on the media player device.

2. The method of claim 1 wherein the context information about the playback state of the first media clip comprises the contents of the first time shift buffer and wherein the first time shift buffer is used to support fast forward and rewind operations during playback of the first media clip, and wherein the restoring comprises restoring the contents of the first time shift buffer after playback of the second media clip to thereby restore the fast forward and rewind operations during the continuing playback of the first media clip.

3. The method of claim 1 wherein the stored context information about the first one of the plurality of media clips comprises a time indicator corresponding to the point in the first one of the plurality of media clips when playback from the first time shift buffer was suspended, and wherein the continuing playback of the first media clip is restored from the point in the first time shift buffer when playback was previously suspended.

4. The method of claim 1 wherein the restoring comprises restoring the contents of the first time shift buffer after playback of the second media clip to thereby restore the fast forward and rewind operations during the continuing playback of the first media clip.

5. The method of claim 1 wherein the indicator is provided only during a portion of the playback of the first one of the plurality of media clips.

6. The method of claim 5 wherein the second one of the plurality of media clips is selected based upon the content of the first one of the plurality of media clips during the portion of the playback that the indicator is provided.

7. The method of claim 1 further comprising displaying time shift imagery on the media player device that corresponds to the first time shift buffer that is navigable by the viewer to play a portion of the first one of the plurality of media clips.

8. The method of claim 7 wherein the indicator is provided proximate the time shift imagery when content of the first one of the plurality of media clips corresponds to the content of the second one of the plurality of media clips.

9. The method of claim 7 wherein the information stored about the first one of the plurality of media clips comprises the contents of the first time shift buffer.

10. The method of claim 9 wherein the restoring comprises restoring the contents of the first time shift buffer to thereby resume playing of the first one of the plurality of media clips.

11. The method of claim 10 wherein the subsequent input from the viewer comprises a viewer selection of a second indicator displayed with the second one of the plurality of media clips.

12. The method of claim 1 further comprising processing metadata associated with the first one of the plurality of media clips, wherein the metadata comprises identification information about the second one of the plurality of media clips.

13. The method of claim 12 wherein the identification information comprises the indicator.

14. The method of claim 12 wherein the identification information comprises timing information that identifies a portion of the first one of the plurality of media clips when the indicator is visible to the viewer.

15. The method of claim 12 wherein the identification information comprises the indicator, timing information that identifies a portion of the first one of the plurality of media clips when the indicator is visible to the viewer, and linking information identifying a location of the second one of the plurality of media clips.

16. A system for presenting a plurality of media clips comprising moving video to a viewer, the system comprising:
means for displaying a first one of the plurality of media clips and for providing an indicator corresponding to a second one of the plurality of media clips on the media player device during playback of one the first one of the plurality of media clips from a first time shift buffer;
means for receiving a viewer input corresponding to the indicator from the viewer; and
means for processing playback of the plurality of media clips, wherein the processing means is configured to suspend playback of the first one of the plurality of media clips in response to the viewer input corresponding to the indicator, to direct the storage of context information about a first viewing context of the first one of the plurality of media clips comprising the first time shift buffer, to subsequently direct the displaying means to replace the first viewing context of the first one of the plurality of media clips with a second viewing context displaying the second one of the plurality of media clips from a second time shift buffer on the media player device in response to the viewer input corresponding to the indicator, and, in response to subsequent input from the viewer, to retrieve the stored context information about the first one of the plurality of media clips and to restore the first viewing context of the first one of the plurality of media clips from the stored context information to thereby allow for continued playback of the first one of the plurality of media clips and to thereby allow the viewer to sequentially browse between playback of the first media clip from the first time shift buffer and playback of the second media clip from the second time shift buffer on the media player device; and
means for storing the context information about the first one of the plurality of media clips on the media player device while the second one of the plurality of video clips is being displayed.

17. The system of claim 16 wherein the context information about the first viewing context of the first media clip comprises a time indicator corresponding to a point in the first one of the plurality of media clips when playback is suspended, and wherein the processing means is further configured to process the time indicator from the restored context information to thereby restore playback of the first media clip from the point when playback was previously suspended.

18. The system of claim 16 wherein the context information about the first viewing context of the first media clip comprises the contents of the first time shift buffer used to support fast forward and rewind operations during playback of the first media clip, and wherein the processing means is further configured to restore the contents of the first time shift buffer after playback of the second media clip to thereby restore the fast forward and rewind operations during the continuing playback of the first media clip.

19. The system of claim 18 wherein the processing means is further configured to provide the indicator proximate the time shift imagery when content of the first one of the plurality of media clips corresponds to content of the second one of the plurality of media clips.

20. The system of claim 18 wherein the context information stored about the first one of the plurality of video clips comprises the contents of the first time shift buffer.

21. A device for presenting a plurality of media clips each comprising moving video to a viewer, the device comprising:
a display;
a digital storage medium;
a user interface configured to accept inputs from the viewer; and
a processor configured to present a first one of the plurality of media clips to the viewer on the display in a first viewing context comprising a first time shift buffer and to provide an indicator corresponding to a second one of the plurality of media clips on the media player device during playback of the first one of the plurality of media clips, and, in response to the inputs from the viewer indicating a selection of the indicator, to suspend playback of the first one of the plurality of media clips from the first time shift buffer in the first viewing context, to store information about the first viewing context on the digital storage medium and to subsequently present the second one of the plurality of media clips on the display from a second time shift buffer in a second viewing context that replaces the first viewing context, and, in response to subsequent input from the viewer, to retrieve the stored context information about the first viewing context and to restore the first viewing context from the stored context information to thereby allow for continued playback of the first one of the plurality of media clips from the first time shift buffer and to thereby allow the viewer to sequentially browse between playback of the first media clip from the first time shift buffer and playback of the second media from the second time shift buffer on the media player device.

22. The device of claim 21 wherein the first viewing context comprises a time indicator corresponding to a point in the first one of the plurality of media clips when playback is suspended, and wherein the processor is further configured to process the time indicator from the restored context information to thereby restore playback of the first media clip from the point when playback was previously suspended.

23. The device of claim 21 wherein the processor is further configured to direct the display of time shift imagery on the display, wherein the time shift imagery corresponds to the first time shift buffer in the digital storage medium that is navigable by the viewer to play a portion of the first one of the plurality of media clips.

24. The device of claim 23 wherein the processor is further configured to provide the indicator proximate the time shift imagery when content of the first one of the plurality of media clips corresponds to content of the second one of the plurality of media clips.

25. The device of claim 23 wherein the information stored about the first viewing context comprises the contents of the first time shift buffer.

26. The device of claim 25 wherein the processor is further configured to restore the contents of the first time shift buffer to thereby resume playing of the first one of the plurality of media clips.

27. The device of claim 21 wherein the processor is further configured to process metadata associated with the first one of the plurality of media clips, wherein the metadata comprises identification information about the second one of the plurality of media clips.

28. The device of claim 27 wherein the identification information comprises the indicator, timing information that identifies a portion of the first one of the plurality of media clips when the indicator is visible to the viewer, and linking information identifying a location of the second one of the plurality of media clips.