Patent Publication Number: US-RE46114-E

Title: Insertion points for streaming video autoplay

Description:
TECHNICAL FIELD 
     Embodiments presented in this disclosure generally relate to streaming media services. More specifically, embodiments presented herein relate to techniques for providing a streaming video autoplay feature based on insertion points specified for a group of selected streaming video titles. 
     BACKGROUND 
     Streaming media services include a content server, a content player, and a communications network connecting the content server to the content player. The content server is configured to store media files (or “streams”) made available to end users. Each stream may provide a digital version of a movie, a television program, a sporting event, a staged or live event captured by recorded video, etc. Streams also include media content created specifically for distribution online. Content files stored on the content server are typically organized according to playback chronology and store audio data and/or video data. 
     Media playback by a client device is typically referred as “streaming” because the content server transmits portions of a media file to the client device, which in turn decodes and initiates playback on the a client device without waiting for the complete stream to be received. To account for variable latency and bandwidth within the communications network, a content buffer on the client device queues incoming portions of the stream ahead of the portions actually being played. During moments of network congestion (which leads to lower available bandwidth) less data is added to the buffer, which may drain down as data is being de-queued to support playback at a certain playback bit rate. However, during moments of high network bandwidth, the buffer is replenished and additional buffer time is added until the buffer is generally full again. In practical systems, the buffer may queue data corresponding to a time span ranging from seconds to more than a minute. 
     Streaming digitally encoded audiovisual (AV) programs (including feature length films and television programs) over the Internet has become popular as the availability of high-bandwidth Internet communication has increased, and a variety of different streaming media protocols are available for transmitting media streams to the client. Although many of these protocols were designed to transmit media streams from a server to a conventional computing system, e.g., a typical desktop PC or laptop computer, or home theatre PC (HTPC), the streaming approach is also being used to transmit streaming media to a variety of end-user client devices; including, e.g., mobile telephones, tablet and net-book computing devices, console and handheld video game systems, digital video recorders (DVRs), DVD players, connected digital TVs, and dedicated media streaming devices, (e.g., the Roku® set-top box), etc. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       So that the manner in which the above-recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure may admit to other equally effective embodiments. 
         FIG. 1  illustrates an example computing infrastructure used to provide streaming media to a variety of client systems, according to one embodiment of the invention. 
         FIG. 2  illustrates an example computing system used to provide a streaming media server, according to one embodiment of the invention. 
         FIGS. 3-4  illustrate examples of client devices used view streaming media content, according to one embodiment of the invention. 
         FIG. 5  illustrates an example streaming media file with multiple insertion points used by an autoplay feature, according to one embodiment of the invention. 
         FIG. 6  illustrates a method for presenting streaming media content on a client device using an autoplay feature, according to one embodiment of the invention. 
         FIG. 7  illustrates an example rendering of an autoplay interface on a streaming media client device, according to one embodiment of the invention. 
     
    
    
     DESCRIPTION 
     Overview 
     Embodiments of the invention provide herein relate to techniques presenting streaming media content to users in an engaging manner. One embodiment provides a method for delivering streaming media content to a client device. The method may generally include identifying a selection of media titles to present to a user via an autoplay interface presented on the client device, identifying, for a first one of the media titles, a first insertion point that specifies a frame from which to begin streaming the first media title to the client device via the autoplay interface, and streaming the first media title to the client device from the first insertion point. 
     Other embodiments include, without limitation, a computer-readable medium that includes instructions that enable a processing unit to implement one or more aspects of the disclosed methods as well as a system configured to implement one or more aspects of the disclosed methods. 
     Description of Example Embodiments 
     Embodiments of the invention provide techniques for presenting streaming media content to users in an engaging manner. In one embodiment, a user-interface on a content-publisher website (or interface provided by a cable set-top-box or DVR) may include a control that allows the user to select to begin previewing available titles in an autoplay mode. For example, in one embodiment, a streaming media player may provide an interface that allows users to browse though a collection of available titles sorted into different categories (e.g., science fiction titles, television shows, westerns, etc.). The interface may be configured to automatically begin playback of one of the media titles at a designated insertion point, typically a clip that has been editorially or algorithmically deemed to be an “interesting moment” from the piece of content being merchandised, providing a user with a preview of the title. The insertion point itself may be selected as an interesting point in a given title, and therefore, likely to engage a user in that title. 
     Further, the interface may allow the user to switch from one title to another, and when doing so, the interface begins playback of another title at a designated insertion point associated with that title. For example, assume a user selects a category designated for “mystery” movies, in such a case, the client device may identify a list of mystery media titles and automatically begin streaming one of the titles on the list—at a designated insertion point. The streaming may occur within a portion of an available display area or “full-screen,” based on user preferences or interface defaults; when “full-screen” the user can watch the interesting moment with or without a navigation GUI laid over a portion of the video. If the user changes to another title, the interface then automatically begins streaming the next title—also at a designated insertion point. Thus, this approach creates an effect similar to changing channels on broadcast television, but does in a manner where each change results in a new title being streamed from a designated insertion point. By providing a more engaging experience in this manner, users may be more likely to use a media streaming service. 
     The interface may allow the user to continue viewing a title being previewed from an insertion point as well as allow the user to jump to the beginning of such a title. In one embodiment, the insertion points themselves may be designated by individuals reviewing each available title. However, insertion points may also be generated algorithmically, e.g., based on statistics associated with the media titles. For example, if reviewing individuals tend to designate a first insertion point in comedy films at a point between 5-7 minutes from the beginning, then this could be used as a default insertion point for other comedy titles. Similarly, if users tend to jump to a certain time index in an individual media title (or category of titles), an insertion point may be generated at such time index. 
     Further, one title may have multiple insertion points. For example, insertion points may be categorized as being, e.g., “family friendly” or “violent,” and such metadata could be used to select one insertion point over another, e.g., by picking the “family friendly” one in response to a user preference to limit auto play preview to such insertion points or by picking a particular type of clip based on time of day. Further, the provider may maintain a record of what titles (and what insertion points) have recently been previewed by a given user—in such a case, if a given title is previewed from one insertion point, then that same insertion point is not used a second time for a specified time period—allowing the insertion points to maintain a level of freshness, as opposed to simply replaying the same selections time and time again. 
     Note, the following description is presented to enable one of ordinary skill in the art to make and use the proposed techniques. Descriptions of specific embodiments and applications are provided only as examples and various modifications will be readily apparent to those skilled in the art. The general principles described herein may be applied to other embodiments and applications without departing from the scope of the disclosure. Thus, the present disclosure is not to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features described herein. For purpose of clarity, features relating to technical material that is known in the technical fields related to the proposed ideas have not been described in detail. 
       FIG. 1  illustrates an example computing infrastructure  100  used to provide streaming media to a variety of client systems  130   1-2 , according to one embodiment of the invention. As shown, the computing infrastructure  100  includes a streaming media server system  105 , and a plurality of client systems  130   1-2 , each connected to a communications network  120 . 
     Each of the client systems  130   1-2  communicates with the streaming media server system  105  over the network  120  to view streaming media titles. In this particular example, client system  130   1 , represents a computer system running a web-browser  132 . Accordingly, client system  130   1  is representative of desktop PCs, laptop computers, home-theater PCs (HTPCs), tablet computers, and other computing systems capable of running a web-browser. In such a case, the web-browser  132  is configured to render web pages served from the media server  105 . Such pages may allow users to select titles to view, manage a user account, as well as initiate an autoplay preview mode, as described in greater detail below. Media server  105  provides a computing system configured to transmit media streams to clients  130   1-2 . For example, media server  105  may provide a web-server configured to respond to requests for web pages received from web-browser  132 . 
     Similarly, client system  130   2  represents a set-top device connected to both network  120  and a display  140  (e.g., a flat-panel television). Accordingly, client system  130   2  is representative of digital cable boxes, digital video recorder (DVR) systems, and other specialized streaming media devices, as well as DVD players capable of connecting to a network  120  and receiving and playing back media streams provided by media server  105 . For example, some Blu-ray® disc players can download and execute BD-live applications. In such a case, the disc player could connect to the media server  105  and download interface components used to select and playback media streams. Further, display  140  may itself be an integrated device capable of connecting to the network  120  playing back media streams supplied by the media server  105 . For example, some flat-panel television displays include integrated firmware components used to connect to a variety of media server system  105  (e.g., various streaming media services, video on demand services, or popular video sharing websites). In each of these cases, a user interface presented by the client device may allow users to initiate an autoplay preview mode, where titles are streamed automatically, beginning from a designated insertion point. 
       FIG. 2  illustrates an example computing system used to provide a streaming media server  105 , according to one embodiment of the invention. As shown, a content server system  205  includes, without limitation, a central processing unit (CPU)  205 , a network interface  215 , an interconnect  220 , a memory  225 , and storage  230 . The content server  105  also includes an I/O device interface  210  (e.g., keyboard, display and mouse devices). 
     CPU  205  retrieves and executes programming instructions stored in the memory  225 . Similarly, CPU  205  stores and retrieves application data residing in the memory  225 . The interconnect  220  is used to transmit programming instructions and application data between the CPU  205 , I/O devices interface  210 , storage  230 , network interface  215 , and memory  225 . CPU  205  is included to be representative of a single CPU, multiple CPUs, a single CPU having multiple processing cores, and the like. And the memory  225  is generally included to be representative of a random access memory. The storage  230  may be a disk drive storage device. Although shown as a single unit, the storage  230  may be a combination of fixed and/or removable storage devices, such as fixed disc drives, floppy disc drives, tape drives, removable memory cards, or optical storage, network attached storage (NAS), or a storage area-network (SAN). 
     Illustratively, the memory  225  includes a media server  105 , which itself includes an autoplay component  221  and a streaming component  223 , and storage  230  includes streaming media content  231 , insertion point data  233 , and user/session data  237 . 
     Media server  105  provides a software application configured to stream media titles (i.e., streaming media content  231 ) in response to requests from clients (e.g., client systems  130  of  FIG. 1 ). In one embodiment, the media server  105  may receive a request from a client to begin previewing titles using an autoplay feature. In response, the autoplay component  105  may determine a list of streaming media titles to stream to the requesting client. The list of titles may be based on a user specification of a content category (e.g., a request to preview action-adventure titles). Of course, a variety of approaches could be used to determine a list of titles, e.g., based on a user&#39;s prior viewing choices, demographic profiles, or even at random. The insertion point data  233  stores insertion points for the autoplay feature for the titles made available by streaming media content  231 . Each such insertion point generally corresponds to a frame of video in a streaming media title. During the brief time that the video pre-buffers, the user sees a freeze frame of either the first frame of the clip or a particularly arresting image from early in the clip. 
     Once the autoplay component  221  determines a list of media titles, the streaming component  223  may begin streaming one of them to the client at a designated insertion point. Additionally, the autoplay component  221  may store an indication of what streaming media titles and what insertion points have been used to stream media content to a client as part of a given viewing session (represented in  FIG. 2  as user/session data  237 ). Doing so allows the media server to avoid streaming the same title and/or insertion point to a client as part of a given viewing session. 
       FIG. 3  illustrates an example of a client computing system  130 , used view streaming media content, according to one embodiment of the invention. As shown, the client computing system  130  includes, without limitation, a central processing unit (CPU)  305 , a network interface  315 , an interconnect  320 , a memory  325 , and storage  330 . The computing system  130   1  may also include an I/O devices interface  310  connecting I/O devices  312  (e.g., keyboard, display and mouse devices) to the computing system  130   1 . 
     Like CPU  205 , CPU  305  is included to be representative of a single CPU, multiple CPUs, a single CPU having multiple processing cores, etc., and the memory  325  is generally included to be representative of a random access memory. The interconnect  320  is used to transmit programming instructions and application data between the CPU  305 , I/O devices interface  310 , storage  330 , network interface  315 , and memory  225 . The network interface  315  is configured to transmit data via the communications network  120 , e.g., to stream media from the server system  105 , as well as to receive and present ads  112  from the ad server system  110 . Storage  330 , such as a hard disk drive or solid state (SSD) storage drive, may store non-volatile data. 
     Illustratively, the memory  325  includes a web browser  132 , which itself includes an streaming media client  321  and an autoplay interface  323 . And the storage  330  stores buffered media content  335 . As is known, the browser  132  provides a software application which allows a user to access web pages and other content hosted by a server. In context of the present disclosure, the streaming media client  321  corresponds to components of browser  132  used to playback streaming media content stored on client system  130   1  as buffered media content  355 . For example, streaming media client  321  may be configured to playback media streams packaged as an Adobe® Flash® file, a Microsoft® Silverlight® package, or an HTML5 object. 
     Additionally, the streaming media client  321  may also provide an autoplay interface  323  configured to provide a user with a preview of a variety of different titles, where each title begins streaming from a designated insertion point. When the user switches from one streaming media title to another, the autoplay interface may discontinue streaming a first title and begin streaming a second title at a designated insertion point associated with the second title. An example of such an interface is described below in conjunction with  FIG. 7 . Of course, other approaches may be used to allow the client system  130   1  to render a user interface, as well as to provide the autoplay interface  323 . 
       FIG. 4  illustrates an example of a client device  130   2  used view streaming media content, according to one embodiment of the invention. In this example, a streaming media client device is connected to both a display screen (e.g., a flat panel television) and a network. Accordingly, as shown, the client device  130   2  is connected to both a network  120  and to a display  140 . Note, client device  130   2  is included to be representative of a cable-set top box, a digital video recorder (DVR) device or a cable set-top box with integrated DVR functionality, as well as dedicated streaming devices, e.g., the Roku® device used to stream media content from a variety of different service providers. Thus, set-top box  136  is also shown connected a storage repository of recorded content  425 , representing locally stored content that is available for playback on display  140 . 
     In one embodiment, the client device  130   2  is configured to present media content streamed over network  120  using an autoplay interface  415 . As shown, the client device  130   2  itself includes firmware  410 , a media player  415 , buffered media store  430  and the autoplay interface  420 . The firmware  405  represents the operating logic used to control the client device  130   2 . For example, the firmware  405  may be configured to allow users to schedule recordings, connect to streaming media services, select content for playback, as well as preview titles using the autoplay interface  420 . Streaming media content retrieved over the network  120  may be stored in buffered media store  435 . Media player  415  provides software on the client device  130   2  configured to playback content streamed over the network  120  (whether as part of the autoplay interface or otherwise) or playback content from recorded content  435 . 
       FIG. 5  illustrates an example streaming media title  500  with multiple insertion points ( 505 - 520 ) used by an autoplay feature, according to one embodiment of the invention. As shown, the streaming media title  500  is divided into a sequence of frames. In this example, frames  505  and  510  may be poor candidates for insertion points, as the initial frame  505  shows a logo for a film production studio and frame  510  shows the name of the media title  500 . Neither of frames  505  and  510  may be particularity engaging to the user. In contrast frame  515  shows a frame relatively early in the title  500 , where two individuals are fighting one another. Similarly, frame  520  shows a frame in title  500  where two individuals are have just sat down for a meal. Both frames  515  and  520  may be more engaging to a user than frames  505  or  510 . Accordingly, frames  515  and  520  may be designated as insertion points for media title  500 . Further, insertion point  515  and  520  may be assigned metadata characterizing the insertion points, e.g., as being “family-friendly” in the case frame  520  or “violent” in the case of frame  515 . Such metadata may be used to help select insertion points for users in certain scenarios (e.g., where a user has expressed preferences to only show “family friendly” insertion points). Of course, a variety of other categorizations, characterizations, or other descriptions may be specified for a given media title and/or insertion point and used to assist in selecting what insertion point is used to begin streaming a given title to a user as part of an autoplay interface. 
       FIG. 6  illustrates a method  600  for presenting streaming media content on a client device using an autoplay feature, according to one embodiment of the invention. As shown, the method  600  begins at step  605 , where a streaming media server receives a request to view media content. For example, as noted above, the request may be made by a user interacting with a web-browser or other application software on a computer (e.g., an HTPC), or interacting with a set-top box or a DVR device (or a device integrating components thereof). In one embodiment, the requested media content is streamed over a network to the client device, stored in a buffer, and then played back to the user. 
     At step  610 , the streaming media server may receive an indication whether the user has selected to preview titles using an autoplay interface. For example, the user may enable the autoplay feature using the interface provided by the client device. If not enabled, then at step  615 , the user is presented with a regular interface provided for selecting streaming media titles. However, if the autoplay interface is enabled, then at step  620 , the media server identifies selections for an autoplay list. As noted, the list of titles may be based on a user specification of a content category (e.g., a request to preview action-adventure titles), or on a user&#39;s prior viewing choices, demographic profiles, or at random, etc. Once the list of media titles are identified, the streaming media server may identify an insertion point for each title in the list. As noted, each title may have multiple insertion points, and the streaming media server may select one based on, e.g., user preferences, past history, or other criteria. 
     At step  625 , the client device displays the autoplay interface, and begins streaming playback of one of the titles from the list at the designated insertion point. Additionally, at step  630 , the streaming media server may update the user/session data to reflect what streaming media title and insertion point was previewed to the user. At step  635 , once media title has begun streaming on the client, the interface may wait for a specified period, allowing the user to confirm the selection of the current streaming media title. In such an embodiment, if the user selects to view the streaming media title presented currently being presented via the autoplay feature, the interface may switch to a full-screen mode and simply continue streaming the current media title. Alternatively, the interface may include a control which allows the user to jump to another point in the current title (e.g., the beginning). Otherwise, if the user does not confirm the selection of the current title, at  645 , a timeout occurs. In such a case, the interface may begin playing another title from the list and begin playing the new title from the designated insertion point (returning to step  625 ). 
     In another embodiment, the interface may auto play a current title from an interesting point while allowing the user to continue browsing other available titles (e.g., when not presented in a full-screen mode). In such a case, the user can start any other title from an interesting moment while continuing to browse other titles. At the same time, the current title continues to play (from the insertion point) until the user decides to confirm to view the current title, restart it from the beginning, or jump to another title. Similarly, the interface may allow the user to cycle from one streaming media title to another. In such a case, the user may switch from streaming a first title and begin streaming a second title at a designated insertion point associated with the second title. Note, in an alternative embodiment, the interface could also allow the user could to switch from one insertion point to another within the same title. Further, the user may also change the category of titles being previewed using the autoplay feature. Accordingly, at  650 , if a category change occurs, then the streaming media server determines a new list of selections to preview to the user (step  620 ), selects an insertion point for one of the titles from the new list and begins streaming it from the designated insertion point (step  625 ). This process may repeat until the user selects a title for viewing. 
       FIG. 7  illustrates an example rendering of an autoplay interface  700  on a streaming media client device, according to one embodiment of the invention. In this example, a user is currently previewing an “action-adventure” title  705  in a display window of the interface  700 . The user may switch from the title  705  to a preview of title  710  using an interface button  740   1 , i.e., by pressing an “up” button on a control pad. Similarly, the user may switch to a preview of title  725  using an interface button  740   2 , i.e., by pressing a “down” button on the control pad. The user may continue cycling through other “action adventure” titles in a similar manner. 
     Illustratively, the interface  700  allows the user to change categories from the “action-adventure” categories to either a “comedy” category  750  using an interface button  775  or a “dramas” category  755  using an interface button  780 . If the user selects to change categories, then the interface  700  would identify a new list of titles to stream to the client device, and begin streaming one of them at a designated insertion point. 
     The interface  700  also allows a user to confirm the selection of the title being previewed using controls  770 . As shown, the user can either play from beginning or switch to a full-screen mode using interface controls  785 ,  790 . In this example, the controls  770  also show a countdown timer. If the timer expires, without any further user input-then the interface  700  may switch to a full-screen mode and continue streaming the currently selected media title. 
     Thus, advantageously, embodiments of the invention provide techniques for presenting streaming media content to users in an engaging manner. In one embodiment, a user-interface on a content-publisher website (or interface provided by a cable set-top-box or DVR) may include a control that allows the user to select to begin previewing available titles in an autoplay mode. For example, in one embodiment, a streaming media player may provide an interface that allows users to browse though a collection of available titles sorted into different categories (e.g., science fiction titles, television shows, westerns, etc.). The interface may be configured to automatically begin playback of one of the media titles at a designated insertion point, providing a user with a preview of the title. The insertion point itself may be selected as an interesting point in a given title, and therefore, likely to engage a user in that title. 
     While the forgoing is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof. For example, aspects of the present disclosure may be implemented in hardware or software or in a combination of hardware and software. One embodiment of the disclosure may be implemented as a program product for use with a computer system. The program(s) of the program product define functions of the embodiments (including the methods described herein) and can be contained on a variety of computer-readable storage media. Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive, flash memory, ROM chips or any type of solid-state non-volatile semiconductor memory) on which information is permanently stored; and (ii) writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive or any type of solid-state random-access semiconductor memory) on which alterable information is stored. Such computer-readable storage media, when carrying computer-readable instructions that direct the functions of the present disclosure, are embodiments of the present disclosure. 
     In view of the foregoing, the scope of the present disclosure is determined by the claims that follow.