# Patent

## Title
Progress bar for branched videos

## Abstract

A system for navigating and visualizing the progression of selectably presentable video content includes a progress indicator module for dynamically displaying the progression status of video content paths made up of selectably presentable video content segments. The system further includes an interactive control module for facilitating navigation along the video content paths. The progression status may be graphically represented in the form of a tree structure having linked video content segments forming the content paths. The control module may be used to navigation the video within this tree structure.

## Background
FIELD OF THE INVENTION
The invention relates generally to representing progress in a streaming video, and more particularly to systems and methods for navigating and visualizing the progress of selectably presentable branched video content.
BACKGROUND
A video progress bar is a component in a graphical user interface that is used to visualize both the progression of downloaded video (buffering) and the played or viewed video. Sometimes, the graphic is accompanied by a textual representation of the progress in a time- or percent-based format.
Typically, progress bars use a linear function, such that the advancement of a progress bar is directly proportional to the amount of video that has been completed from the total amount of video that will be played. However, varying disk, memory, processor, bandwidth and other factors often complicate this estimate.
Further, current progress indicators lack the ability to support the unique issues encountered when attempting to navigate and represent the progress of content that plays as a single, seamless video, but is made up of multiple paths and segments selectable in real-time by a viewer. Accordingly, there is a need for an visual progress indicator and accompanying navigation controls that facilitate user interaction with selectable video content.
SUMMARY OF THE INVENTION
The invention provides techniques and supporting systems for navigating and visualizing the progression of selectably presentable video content. To facilitate enhanced usability of user-facing media players, various implementations of the invention provide a progress indicator that dynamically displays the progression status of video content paths made up of selectably presentable video content segments while being viewed by a user. Aspects of the invention also provide an interactive control module that assists the user in their navigation along video content paths. The progression status is graphically represented in the form of a tree structure having linked video content segments forming the content paths, and the control module is used to navigation the video within this tree structure.
Therefore, in one aspect, a system for navigating and visualizing the progression of selectably presentable video content includes a progress indicator module for dynamically displaying the progression status of video content paths, each path made up of selectably presentable video content segments. The system further includes an interactive control module that allows a viewer to navigate along the video content paths and segments.
In some embodiments, the progression status includes a visual indicator that represents the portion of video content downloaded, the portion of video content played, and/or the portion of video content remaining for download. The progression status may include visual indicators identifying decision (branching) points. These indicators represent the points in a video when a transition may be made from one video segment to a second segment, which may be chosen from a set of multiple segment options.
In another embodiment, the progression status includes time markers that indicate when the decision points occur within the content. The time markers may be measured from the beginning of the video content path currently traversed by a viewer. The progression status may also display a time interval representing an amount of time permitted, upon reaching a decision point, for a viewer to choose which video content path to continue upon. In one embodiment, the progression status displays an amount of time until a decision point is reached.
In some embodiments, the progression status includes option indicators identifying each potential video content segment option that may be selected at a decision point. The option indicators may identify the selected segments after they are chosen at decision points. The progression status may be dynamically updated after each decision point along a traveled video content path.
In one instance, the progression status is represented as a graphical tree structure. The tree structure may contain linked video content segments forming a traveled video content path prior to a current point in time, and may further include potential segment selections branching from the content path after that point. In some embodiments, the tree structure includes linked video content segments forming all of the possible video content paths. The interactive control module may facilitate a viewer's navigation of the tree structure.
In some implementations, the progression status includes a display of statistics based on user selection of the video content segments, such as selections made by previous viewers of the video.
The progression status may include a video content length indicator. In some embodiments this length indicator is a maximum video duration based on a potentially followed video path that has the longest total length of video content segments. In other embodiments, the length indicator is a minimum video duration based on a potentially followed video content path having the shortest total length of video content segments. In yet other embodiments, the length indicator is based on the average duration of all possible video content paths.
In another embodiment, the system includes a preview module for displaying video thumbnails associated with a point in time along the video content paths. The thumbnails may represent previews of different video content segments potentially viewable at the point in time. The thumbnails may be from the currently viewed content segment, or, in other cases, from potentially viewable content segments. If the thumbnail is from a potentially viewable segment, upon selection of the video thumbnail the control module may seek to and/or display the video content segment corresponding to the thumbnail.
In another aspect, a method for navigating and visualizing the progression of selectably presentable video content includes the steps of dynamically displaying the progression status of video content paths, each path made up of selectably presentable video content segments. The method further includes the step of facilitating navigation along the video content paths.
In some embodiments, the progression status includes a visual indicator that represents the portion of video content downloaded, the portion of video content played, and/or the portion of video content remaining for download. The progression status may include visual indicators identifying decision (branching) points. These indicators represent the points in a video when a transition may be made from one video segment to a second segment, which may be chosen from a set of multiple segment options.
In another embodiment, the progression status includes time markers that indicate when the decision points occur within the content. The time markers may be measured from the beginning of the video content path currently traversed by a viewer. The progression status may also display a time interval representing an amount of time permitted, upon reaching a decision point, for a viewer to choose which video content path to continue upon. In one embodiment, the progression status displays an amount of time until a decision point is reached.
In some embodiments, the progression status includes option indicators identifying each potential video content segment option that may be selected at a decision point. The option indicators may identify the selected segments after they are chosen at decision points. The progression status may be dynamically updated after each decision point along a traveled video content path.
In one instance, the progression status is represented as a graphical tree structure. The tree structure may contain linked video content segments forming a traveled video content path prior to a current point in time, and may further include potential segment selections branching from the content path after that point. In some embodiments, the tree structure includes linked video content segments forming all of the possible video content paths. The method may further include facilitating a viewer's navigation of the tree structure.
In some implementations, the progression status includes a display of statistics based on user selection of the video content segments, such as selections made by previous viewers of the video.
The progression status may include a video content length indicator. In some embodiments this length indicator is a maximum video duration based on a potentially followed video path that has the longest total length of video content segments. In other embodiments, the length indicator is a minimum video duration based on a potentially followed video content path having the shortest total length of video content segments. In yet other embodiments, the length indicator is based on the average duration of all possible video content paths.
In another embodiment, the method further includes the step of displaying video thumbnails associated with a point in time along the video content paths. The thumbnails may represent previews of different video content segments potentially viewable at the point in time. The thumbnails may be from the currently viewed content segment, or, in other cases, from potentially viewable content segments. If the thumbnail is from a potentially viewable segment, upon selection of the video thumbnail the video may seek to and/or display the video content segment corresponding to the thumbnail.
Other aspects and advantages of the invention will become apparent from the following drawings, detailed description, and claims, all of which illustrate the principles of the invention, by way of example only



BRIEF DESCRIPTION OF THE DRAWINGS
A more complete appreciation of the invention and many attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings. In the drawings, like reference characters generally refer to the same parts throughout the different views. Further, the drawings are not necessarily to scale, with emphasis instead generally being placed upon illustrating the principles of the invention.
FIG. 1 is an exemplary diagram of progress indicator structures according to an embodiment of the invention.
FIG. 2 is an exemplary diagram of a progress indicator with various time markers according to an embodiment of the invention.
FIG. 3 is an exemplary diagram of progress indicator structures with selection option markers according to an embodiment of the invention.
FIG. 4 is an exemplary diagram of a thumbnail preview grid for a progress indicator according to an embodiment of the invention.
FIG. 5 is an exemplary diagram of progress indicator structures having various segment sizes and path lengths according to an embodiment of the invention.
FIG. 6 is an exemplary diagram of unfolding video and associated progress indicators according to an embodiment of the invention.
FIG. 7 is an exemplary diagram of a detour in a progress indicator according to an embodiment of the invention.



DETAILED DESCRIPTION
Described herein are various embodiments of a dynamic progress indicator and interactive controls that provide for the visualization and navigation of selectably presentable video content. The progress indicator may be used in conjunction with seamlessly assembled and presented streaming video content, such as that described in U.S. patent application Ser. No. 13/033,916, entitled “System and Method for Seamless Multimedia Assembly,” and filed Feb. 24, 2011, the entirety of which is hereby incorporated by reference. Selectably presentable video content may include, for example, one or more separate video content paths and/or segments that are seamlessly presented to a viewer as a continuous video without noticeable interruptions in video and audio playback between segments. In some instances, the viewer is permitted to make choices at one or more various decision points interspersed throughout the video content, resulting in the corresponding video segment(s) and/or path(s) associated with the choices to be presented to the viewer in the selected order.
Because of the distinctive characteristics of selectably presentable video content, such as varying numbers of video segments, video segment lengths, different audio tracks and the like, these videos benefit from a special dynamic indicator and controller that can visually represent the progression of video play and buffering/download within multiple-path structures and enable viewer-directed navigation among the various paths of the video. The indicator may show progress information in real-time, and update frequently in order to present status correctly. Navigation may also be performed in real-time, and may be functionally integrated into the progress indicator and/or performed using separate buttons or other interactive controls.
The progress indicator may take several forms, with each representing the progress of branching video content. Although the indicators are represented and referred to herein as horizontal bars arranged in lines or trees, it is to be appreciated that this is an exemplary embodiment of the invention, and the progress indicators may take any suitable form, shape or orientation while still accomplishing the objects of the invention. Such forms may include, but are not limited to, circles, ovals, arcs, spirals, dials, gauges, and other forms suitable for representing progress and other information associated with media content.
Further, although the progress indicators are described herein with respect to video playback, the invention is applicable to streaming and non-streaming media, including audio, animation, video games, interactive media, and other forms of content usable in conjunction with the present systems and methods. Streaming media may include, for example, multimedia content that is continuously presented to a viewer while it is received from a content delivery source, such as a remote video server on the Web.
FIG. 1 illustrates exemplary forms that the progress indicator may take. In the line form 100, progress is represented as a single dynamic bar that presents different video selection options at decision points. In the depicted example, there are two decision points 102, 104. Upon selection of a particular content segment, the bar adjusts to accommodate the selection, for example, by changing the video length and updating progress statuses accordingly. The addition of the selected content may increase the length of the bar. In other instances, the existing bar and/or segments of the bar are resized to accommodate the new content while retaining a fixed overall bar length.
In some embodiments, the progress indicator is visually represented as a tree. This may include a tree structure form in which there are one or more starting video content segments, and at the end of each segment (and/or upon reaching a decision point), the segment branches out to one or more selectable content segments. Accordingly, as illustrated, a viewer may follow a left-to-right path containing various connected segments. One skilled in the art will appreciate that the tree structures described and depicted herein are merely exemplary embodiments, and any suitable progress status structure may be used to represent the branching media content. Such structures may include, but are not limited to, graphs, lists, flowcharts, hierarchical structures, state diagrams, and/or any combination of the foregoing.
The full tree form may include a visual representation of all video content paths. Still referring to FIG. 1, a full tree may take multiple forms. Full tree progress bar 110 is a simple form branching tree for a video that has a single starting point (video segment), then, at the first decision point 111, branches into two paths having different video segments 114, 116, each segment 114, 116 of equivalent length. Because these particular segments 114, 116 are the same length in this example, the second decision point 113 occurs at the same time for both paths. At this decision point 113, the paths split again, providing a total of four possible outcomes (ending video segments) and four possible paths that can be followed when viewing the video.
Full tree progress bar 120 is represented in railroad form; that is, one or more possible paths are represented as a single, contiguous tracks made up of their respective individual video content segments. At a decision point, a viewer may select an option that results in the video proceeding down a different path. For example, and as illustrated, at decision point 121, the viewer has made a choice (or the video player has automatically made a selection) resulting in the video previously playing on path 124 to continue instead on path 126.
In an additional example of the full tree form, progress bar 130 includes a number of content segments of varying length, forming numerous paths that can be taken throughout the viewing/downloading of a video. After the first decision point 131, the following video content segments each have different lengths. Thus, subsequent decision points occur at different times depending on which path is traversed. Video content segments may be shared among paths; for example, segment 135 can be reached after a decision point in both segments 132 and 134.
In the partial tree form 140, rather than displaying all possible video paths and/or segments, only a subset of the paths/segments is shown. For example, partial tree progress bar 140 shows only the segments of the path that have been played up to the current point in time 145, as well as the available choices 142, 144 after that time 145. The visual display may be limited to the available choices branching from the current video segment, or it may include all potential future segments. Past paths not followed and/or future segments not yet selected may be permanently hidden, or may be shown to a viewer by, for example, setting a preference or operating a GUI control.
In some embodiments, the progress bar structure is loaded prior to the video content loading, while in other embodiments, the progress bar and video content load in parallel. The progress indicator may be fully presented from the beginning of play, with chosen segments highlighted after each decision point. Alternatively, the bar may be shown only up to a certain point (e.g., up to the amount of video loaded (buffered), up to the amount of video played, or up to the end of the current video segment). The progress bar may dynamically add or remove video segments and/or paths from its display while the video is playing. In some embodiments, intelligent buffering of the video, audio, and/or other media content is performed as described in U.S. patent application Ser. No. 13/437,164, entitled “Systems and Methods for Loading More Than One Video Content at a Time,” and filed Apr. 2, 2012, the entirety of which is hereby incorporated by reference.
Traversal of the video content may be performed by selecting among options that appear on and/or around the video while the video is playing. The video segment that is played after the current playing segment is determined based on the option selected. Each option may result in a different video segment being played. The transition to the next video segment may be done immediately upon selection, at the end of the current segment, or at some other predefined point. Notably, the transition between content segments may be seamless. In other words, the video may continue playing regardless of whether segment selection is made, and no noticeable gaps appear in audio or video playback between any connecting segments. In some instances, the video continues on to a following segment after a certain amount of time if none is chosen, or may continue playing in a loop. If a video segment is missing, corrupted, or has otherwise failed to load, the progress bar may provide an indicator that the segment is missing and enable a viewer to jump to the end of (or past) the missing segment at any time.
The progress indicator may include various visualized information items in graphical and/or textual form. This information may include, for example, the progression of downloaded video content, the progression of played video content, and/or a percentage value representing the foregoing progressions. When displayed in a tree form, the progress indicator may show this information for each branch and/or content segment. In some embodiments, the progress indicator includes markers delineating branching points; i.e., points (or ranges) in time at which the viewer can select to transition to a new video content segment. These decision point markers may be placed at the ends of content segments (i.e., at the point of transition to the next content segment), or at any point (or range in time) in a video segment where a viewer is permitted to select a video path to traverse.
In some embodiments, the progress indicator includes time-based information for presentation to a viewer. FIG. 2 depicts a progress bar 200 associated with a video content path indicating that the video has been played up to point 202 and has buffered up to point 204. A second bar 205 displays the options selected up to the current point in time 202. This bar 205 may be represented separately, as depicted, or may be combined with or superimposed onto video progress bar 200. Progress bars 200, 205 are separated into three segments, with the separation between each segment defined by a decision point 210a, 210b. Segments 215a and 215b of progress bar 205 show that an option was selected (whether automatically or by a viewer) at a preceding decision point, and so the video content played during those segments corresponds with the respective selected options.
In one example, the video associated with the progress bars 200, 205 is a music video in which the viewer selects options at the decision points 210a, 210b to determine what content will be played. For the first segment 215a, the viewer may select either a tall or short performer to sing the first verse of the song. As shown, the “Tall” option is indicated as having been selected; thus, the video associated with the tall performer was played during segment 215a. Likewise, at decision point 210a, the viewer was provided with options to have either a blonde or brunette performer sing the second verse. Segment 215b of progress bar 205 indicates that the “Blonde” option was selected, and the video playing at current time 202 is therefore associated with that selection. Decision point 210b has not yet been reached, thus no selection is indicated as having been made for segment 215c. 
Still referring to FIG. 2, the progress indicator(s) 200, 205 may include time information such as the current time of play 220 (measured from the beginning of the video and/or the beginning of the current video segment), the total video time 222 (further explained below), the time of each decision (branching) point 230a, 230b (measured from the beginning of video and/or the beginning of the current video segment), the time length of the current video segment 235 (or all or a subset of segments), the time interval(s) in which a viewer must select an option 240 (if any), and the time until the next branching point is reached 250.
In some embodiments, the progress indicator includes various statistics associated with the video content and dynamically displayed and updated in real-time. The statistics associated with the video content may include those described in U.S. patent application Ser. No. 13/034,645, entitled “System and Method for Data Mining within Interactive Multimedia,” and filed Feb. 24, 2011, the entirety of which is hereby incorporated by reference. The statistical information may be textually or graphically presented, e.g., as icons, in different colors, pictures, and/or videos. The information may appear as interactive elements on the video itself, or as part of the progress indicator.
The statistics may be associated with viewer selections based on previous plays of a video by the viewer, the viewer's friends, social networking connections, and/or all other users. For the example, the progress bar may display how popular a particular option is, and/or how many times a particular option was chosen (see FIG. 3), and may include a list of connections (e.g., Facebook friends, email contacts, Twitter followers, etc.) that chose the same option (or an indication of what option(s) were instead chosen). These statistical displays may be dynamically updated as viewers watch videos and make choices. For example, if each viewer in a group of Facebook friends separately watches a particular video at the same time, each may see various statistical indicators on the progress bar update in real-time as friends make selections on which video content paths to follow.
Stylized markers (e.g., stars, text, or other graphical icons) may be superimposed on or otherwise associated with the progress bar when a viewer selects the most popular option at a decision point. Previously followed video content paths may be shown in a different color or otherwise highlighted upon subsequent plays. For example, the current traversed video path may be shown in blue, while previously followed paths are colored yellow. The statistics may also be based on the structure of the video, for example: the number of video paths available to a viewer (this may be dynamically updated after each decision point), the number of overall possible paths, and/or the number of paths viewed out of the total number of possible paths.
As described above, the progress bar may include text or graphics indicating the options available for selection at decision points and/or the options that have previously been selected. These options may be displayed differently depending on the progress indicator structure. As illustrated in FIG. 3, for tree structures 300, 330, the options may appear on every content segment for the entire tree, or may only appear on a subset of segments, such as those segments on potentially viewable video content paths and/or paths already traversed. With respect to a railroad structure 360, the options 362, 364, 366 may appear from the beginning of each track, or may appear as the options are approached while viewing the video. In some embodiments, the progress indicator does not display any options until a particular option is selected. In that instance, the selected option may then be displayed on the progress indicator, and additional options may be shown as they are selected.
In some embodiments, the options are hidden and do not initially appear on the progress indicator. In these instances, a hidden option may be displayed on the indicator only after it is selected or discovered by a viewer while playing the video. In other embodiments, certain options are not shown and/or made available to all or a subset of viewers. For example, in some circumstances, the video may be played in a “passive” mode, meaning that the viewer cannot make some or all of the choices that would be available during a normal play-through of the video. Passive mode may be used to replicate a play-through using previously made or predefined selections, and may, for example, allow a viewer to share his or her version of a video (i.e., the traversed path) with other viewers. In some instances, options may be hidden from viewers based on the location they are viewing the video from. For example, some video segments may contain copyrighted material not licensed for display in certain countries; thus, any options leading to those segments may be hidden and/or replaced by other options.
Referring to FIG. 4, the progress indicator may provide thumbnail previews of video content 400 when a user interacts with the indicator. For example, upon hovering over or selecting a point in time 410 on the progress bar configuration, the viewer may be shown a thumbnail image or video of one or more of the possible options that may be viewed at that point. As illustrated, if at the selected point in time 410 the viewer may be traversing any one of three potential paths, then three thumbnails 400 are displayed to the viewer, each representing a separate one of the potential paths.
Thumbnail previews may be shown for points before and/or points after the current point in time of the video. For points prior to the current time, the thumbnails displayed may include all possible paths at that time, or may only include the path traversed by the viewer. For points after the current time, the thumbnails displayed may include all possible paths at that time regardless of previous choices made, or may only include the paths available to the viewer based on selections previously made in viewing the video. The thumbnails may be presented in a grid or any suitable format. As further described below, the viewer may select one of the thumbnails to navigate to that point in the video.
The video may be controlled by a set of navigation and playback controls. In one embodiment, there are two types of controllers: constant and content. Constant controllers do not change form significantly (or at all) during most or all of the video playback. These controllers may be disposed outside the video, e.g., adjacent to the progress bar, and may include standard button controls such as play, pause, seek, enable/disable subtitles, and the like. Some constant controls may affect audio, video, and/or an interactive layer that sits on top of the video. For example, if the user pauses a video, the audio and interactive layer may be paused as well. Content controllers may appear on the video during playback as part of the interactive layer; these controls may be associated with the video content and may control and/or interact with it. Content controllers include, for example, the selectable options that appear prior to branching points that allow a viewer to decide how the video will continue. The interactive layer may also include links, pop-ups, advertisements, and/or other content that may permit user interaction and/or direct the viewer to other websites, videos, etc. upon selection.
Constant controls on or near the progress indicator may include a play button to start or continue playing the video, audio, and/or interactive layer, and a pause button to pause playback. While a video is paused and/or stopped, buffering of the content may continue, and in some instances, the interactive layer may continue to function so that a viewer can select a content option at a decision point while playback is paused and have the resulting selection affect the video after resuming play. A stop button may be included to allow a viewer to return to beginning of the video. In some instances, a viewer's previously selected options persist after stopping the video. Volume control and mute toggling buttons may also be included as constant controls.
The playback controls may further include seek buttons for navigating the various paths and segments of the video. Fast-forward and/or fast-backward buttons may adjust the viewer's position in the video accordingly, or may seek in fixed increments, such as three-second, five-second, or ten-second jumps. A “snap-seek” function may be provided that allows the viewer to seek predefined points in the video, such as immediately prior to decision points. Upon seeking backwards, the viewer's previous selections may be saved or reset. Upon seeking forward past a decision point, the video player may automatically select a decision (e.g., default, last used, most common), or may use a previous selection made by the viewer, if any. If the viewer attempts to seek to a point on the video timeline that has yet to be buffered, a “loading” indicator may be displayed while the video downloads.
The progress bar itself may be used for navigating within a progress status tree structure, and may include various interactive controls for doing so. For example, a viewer may jump to a specific point on the tree by selecting and/or clicking on that point. Markers on the progress bar may also be selected as specific jump points; for example, a the progress bar may display predefined time stamps and/or segment identifiers that may be selected, whereby a viewer is directed to a the identified time or segment. These markers may be placed, for example, shortly before branching points to allow the viewer to select a path to follow, shortly after branching points, or at any other point on a video content path. Again, a “loading” indicator may be displayed if the viewer attempts to view video that has not yet been buffered.
As described above, navigation controls may also include the ability to seek to a particular point in time or segment in the video by selecting a thumbnail from a group of one or more thumbnails that appears when hovering over a point on the progress bar. In selecting a particular segment to seek to, it may be assumed that the option(s) selected at decision point(s) prior to that segment (if any) are those that would need to have been made to reach the segment corresponding to the selected thumbnail. These assumed selections may be tracked for statistical purposes as previously described.
Upon seeking, the video, audio, and interactive layer remains synchronized, such that the selected segment presented to the viewer includes the same audio, video, and interactive components that would have been presented to the viewer had reached the same point without seeking. In other cases, different video, audio, and/or interactive components may be presented to the viewer, such as modified or customized options at decision points.
When the progress indicator is structured in a line form (see FIG. 1), special considerations may be taken to determine how to display the video length and progress after the current point of playback. For example, at a decision point in the video, a viewer may have the option of either continuing down a path that is two minutes long or one that is four minutes long. Because each video path may have different numbers of segments, and each segment may vary in duration, the progress bar display may accommodate these variations as well as other differences in video segments that may affect progress calculations. This information associated with the progress bar may be dynamically updated and recalculated throughout progression of the video, and/or after each decision point or selection of a video segment option.
The following methods may be used to estimate the total amount of time remaining in a video, and adjust the progress display accordingly: (1) assume that default selections are made for all remaining decision points; (2) use the decision point selections from the previous playback; (3) use decision point selections previously made by the current viewer and/or other viewers; (4) use the most common selection at each remaining decision point; (5) assume the longest duration path is traversed (i.e., determine the maximum total duration of each possible combination of remaining video segments); (6) assume the shortest duration path is traversed (i.e., determine the minimum total duration of each possible combination of remaining video segments); (7) use the average duration of the possible remaining paths; and/or (8) use the average duration of all possible remaining segments. In some versions the viewer may select which estimation methods are used. The progress status may display more than one calculated value; for example, the minimum and maximum times left to play may be shown together. In instances where the total video length is desired (not just the remaining length), the above calculations may include the durations of the already-traversed segments, or may include the durations of the maximum, minimum, and/or average segments or paths, regardless of whether or not traveled.
FIG. 5 illustrates an example of calculating the maximum duration of a video when the paths contain different numbers of segments. With respect to tree structure 510, at the start of the video 512, the maximum duration path includes segments A1+B1+C1+D1 for a total video length of six minutes and thirty seconds. If, at decision point 514, a viewer selects segment B2, the remaining maximum duration is B2+D1 (three minutes), with a total video length of A1+B2+D1 (five minutes and thirty seconds).
Referring further to FIG. 5, tree structure 520 is used to illustrate the calculation of an average video duration in a video having varying segment sizes at single decision points. At the beginning of the video 522, there are four possible paths that may be followed by a viewer: A1+B1+C1 (five minutes and thirty seconds); A1+B1+C2 (six minutes and fifteen seconds); A1+B2+C3 (five minutes); and A1+B2+C4 (four minutes and thirty seconds). The average duration of all these paths is approximately five minutes and nineteen seconds, and this value may be displayed on the progress bar as the total video length. If, at decision point 524, option B2 is selected, the paths containing B1 may be disregarded in calculating the average length. Accordingly, the total video length would then be updated to display the average of paths A1+B2+C3 and A1+B2+C4, or four minutes and forty-five seconds. The total remaining video length may be calculated by taking the average of paths B2+C3 and B2+C4, or by any other suitable calculation as described above.
In some instances, the video allows for an option at a decision point to return the viewer to a segment at an earlier point in the same or a different video path, essentially allowing the viewer to enter into a video loop. In response to a looping action, the progress indicator may return the playback cursor to the desired segment on the line or tree structure, or, alternatively, the cursor may remain at the current point and the length of play may be recalculated appropriately (e.g., the video length may be extended by the length of the looped part, or an alternate method of calculation as described above may be used). To accommodate the extended playback, the progress bar may extend its length or resize its existing representation of segments to fit the looped portion.
In the instance of “unfolding” videos, the configuration of the progress bar as well as its associated time markers and other information may be updated as the video progresses. As shown in FIG. 6, the video unfolds when a viewer interacts with it. For example, a streaming video clip on a website may include a fifteen-second pre-roll advertising segment prior to playing the clip content. If a viewer does not interact 600 with the advertisement, the pre-roll completes after fifteen seconds and the content is played. If, however, the viewer interacts once 610 with the advertisement, the pre-roll adds an additional fifteen-second segment to allow for further interaction. If the viewer then interacts a second time 620 with the advertisement, the pre-roll is further extended. The unfolding of the pre-roll prior to playing the content may continue indefinitely, or may cease after a certain number of segments are added. As the video unfolds, the progress bar is updated to accommodate the additional length.
In some embodiments, the progress indicator may support video detours; that is, interrupting the playback of the current video to view another video, and returning to the previous point in playback after the detour video completes playback or is otherwise terminated. Referring to the tree structure progress bar illustrated in FIG. 7, at point 700 at viewer may be given an option to watch a detour video. For example, the currently playing video may include an actor using a new video game system, and an interactive control is provided to the viewer to temporarily break from the video to watch an advertisement for that product. If the viewer opts to watch the detour video 710, playback may resume immediately after the point of the detour 720, or may continue at some other point in the video. If the progress bar is represented in a line form, the bar may be presented without the detour segment. If the detour is taken, the bar may be increased in size by the detour length, and/or the time indicators associated with the bar may be recalculated and updated.
In various embodiments, the behavior of the progress indicator may dynamically change in order to influence the perception of the viewer. For example, the graphical progress playback status of the video may appear to speed up for several seconds leading up to a decision point. The playback progression status may pause at various points during the video without also pausing the corresponding video and audio content. Other instances of progress acceleration and/or deceleration may be utilized for effect. In some instances, the graphical effects such as pulses, ripples, coloring, and the like are applied to the progress indicator.
In some embodiments, an interactive content authoring tool is used to create the selectably presentable video content described herein. The progress bar may be included as part of the authoring tool to assist in the formation of this content.
One skilled in the art will recognize the various forms in which the systems and methods described herein may be implemented. For example, the invention may include a progress indicator module for progress, status, and statistical information for video content, and an interactive control module for navigating the video content. These functions may be implemented in any appropriate hardware or software. If implemented as software, the invention may execute on a system capable of running a commercial operating system such as the Microsoft Windows® operating systems, the Apple OS X® operating systems, the Apple iOS® platform, the Google AndroidTM platform, the Linux® operating system and other variants of UNIX® operating systems, and the like.
The software may be implemented on such hardware as a smart or dumb terminal, network computer, personal digital assistant, wireless device, smartphone, game machine, music player, mobile telephone, laptop, palmtop, wireless telephone, information appliance, workstation, minicomputer, mainframe computer, or other computing device, that is operated as a general purpose computer or a special purpose hardware device that can execute the herein described functionality. The software may be implemented on a general purpose computing device in the form of a computer including a processing unit, a system memory, and a system bus that couples various system components including the system memory to the processing unit.
The described systems may include a plurality of software processing modules stored in a memory and executed on a processor in the manner described herein. The program modules may be in the form of any or more suitable programming languages, which are converted to machine language or object code to allow the processor or processors to read the instructions. The software may be in the form of a standalone application, implemented in a multi-platform language/framework such as Java, .Net, Objective C, or in native processor executable code. Illustratively, a programming language used may include assembly language, Ada, APL, Basic, C, C++, C#, Objective C, COBOL, dBase, Forth, FORTRAN, Java, Modula-2, Pascal, Prolog, REXX, and/or JavaScript, for example.
Method steps of the techniques described herein can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). Modules can refer to portions of the computer program and/or the processor/special circuitry that implements that functionality.
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry.
The techniques described herein can be implemented in a distributed computing system that includes a back-end component, e.g., as a data server, and/or a middleware component, e.g., an application server, and/or a front-end component, e.g., a client computer having a graphical user interface and/or a Web browser through which a user can interact with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet, and include both wired and wireless networks.
The system can include client and servers computers. A client and server are generally remote from each other and typically interact over a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
In various embodiments, the client computers include a web browser, client software, or both. The web browser allows the client to request a web page or other downloadable program, applet, or document (e.g., from the server(s)) with a web page request. One example of a web page is a data file that includes computer executable or interpretable information, graphics, sound, text, and/or video, that can be displayed, executed, played, processed, streamed, and/or stored and that can contain links, or pointers, to other web pages. In one embodiment, a user of the client manually requests a web page from the server. Alternatively, the client automatically makes requests with the web browser. Examples of commercially available web browser software are Microsoft® Internet Explorer®, Mozilla® Firefox®, and Apple® Safari®.
In some embodiments, the client computers include client software. The client software provides functionality to the client that provides for the implementation and execution of the features described herein. The client software may be implemented in various forms, for example, it may be in the form of a web page, widget, and/or Java, JavaScript, .Net, Silverlight, Flash, and/or other applet or plug-in that is downloaded to the client and runs in conjunction with the web browser. The client software and the web browser may be part of a single client-server interface; for example, the client software can be implemented as a “plug-in” to the web browser or to another framework or operating system. Any other suitable client software architecture, including but not limited to widget frameworks and applet technology may also be employed with the client software. The client software may also be in the form of a standalone application, implemented in a multi-platform language/framework as described above.
A communications network may connect the clients with the servers. The communication may take place via any media such as standard telephone lines, LAN or WAN links (e.g., T1, T3, 56 kb, X.25), broadband connections (ISDN, Frame Relay, ATM), wireless links (802.11, Bluetooth, GSM, CDMA, etc.), and so on. The network may carry TCP/IP protocol communications, and HTTP/HTTPS requests made by a web browser, and the connection between the clients and servers can be communicated over such TCP/IP networks. The type of network is not a limitation, however, and any suitable network may be used
In a client-server environment, the servers may be implemented on one or more server class computers that have sufficient memory, data storage, and processing power and that run a server class operating system (e.g., Oracle® Solaris®, GNU/Linux®, and the Microsoft® Windows® family of operating systems). Other types of system hardware and software than that described herein may also be used, depending on the capacity of the device and the number of users and the size of the user base.
Although internal components of the computer are not shown, those of ordinary skill in the art will appreciate that such components and the interconnections are well known. Accordingly, additional details concerning the internal construction of the computers need not be disclosed in connection with the present invention.

## Claims

1. A system for navigating and visualizing the progression of selectably presentable video content, the system comprising:
a computing device having at least one processing unit programmed to provide:
a progress indicator module for providing for display a dynamic progression status of at least one of a plurality of video content paths, each content path comprising a plurality of selectably presentable video content segments,
wherein the progression status comprises a video content length indicator that is dynamically updated after each decision point to indicate a possible amount of remaining video playback time, wherein the possible amount of remaining video playback time is based on the playback lengths of one or more potentially viewable video content segments in one or more video content paths following the decision point, and wherein a particular decision point comprises a point in a video content segment for determining a transition from the video content segment to one of a plurality of other video content segments,
wherein the possible amount of remaining video playback time comprises at least one of a maximum duration based in part on a possible video content path following the decision point and having the longest total length of video content segments, a minimum duration based in part on a possible video content path following the decision point and having the shortest total length of video content segments, and an average duration based in part on an average playback length of all possible video content paths following the decision point; and

an interactive control module for facilitating navigation along the video content paths.

2. The system of claim 1, wherein the progression status comprises a visual indicator representing one or more of a portion of video content downloaded, a portion of video content played, and a portion of video content remaining for download.

3. The system of claim 1, wherein the progression status comprises at least one visual indicator identifying a decision point for transitioning from a source video content segment to a selectable one of a plurality of target video content segments.

4. The system of claim 3, wherein the progression status further comprises a time marker for the decision point, the time marker measured from the beginning of a currently traveled video content path.

5. The system of claim 3, wherein the progression status further comprises a time interval representing an amount of time permitted, upon reaching the decision point, to select one of the target video content segments to continue on a video content path.

6. The system of claim 3, wherein the progression status further comprises an amount of time until the decision point is reached.

7. The system of claim 3, wherein the progression status further comprises at least one option indicator identifying each target video content segment for potential selection at the decision point.

8. The system of claim 3, wherein the progression status further comprises an option indicator identifying a selected one of the target video content segments, the option indicator displayed upon selection of the selection segment at the decision point.

9. The system of claim 1, wherein the progression status is dynamically updated after each decision point along a currently traveled video content path.

10. The system of claim 1, wherein the progression status comprises a graphical tree structure.

11. The system of claim 10, wherein the tree structure comprises linked video content segments forming a traveled video content path prior to a current point in time.

12. The system of claim 11, wherein the tree structure further comprises potential selectable video content segments branching from the traveled video content path after the current point in time.

13. The system of claim 10, wherein the tree structure comprises linked video content segments forming all of the video content paths.

14. The system of claim 10, wherein the control module facilitates navigation within the tree structure.

15. The system of claim 1, wherein the progression status comprises statistics based on user selection of the video content segments.

16. The system of claim 1, further comprising a preview module for providing for display a plurality of video thumbnails associated with a particular point in time of the progression status, each video thumbnail representing a respective video content segment from a different one of the video content paths, the respective video content segment being potentially viewable at the particular point in time.

17. The system of claim 16, wherein the control module, upon selection of one of the video thumbnails, seeks to the video content segment corresponding to the thumbnail.

18. A method for navigating and visualizing the progression of selectably presentable video content, the method comprising the steps of:
providing for display, by a computing device having at least one processing unit, a dynamic progression status of at least one of a plurality of video content paths, each content path comprising a plurality of selectably presentable video content segments,
wherein the progression status comprises a video content length indicator that is dynamically updated after each decision point to indicate a possible amount of remaining video playback time, wherein the possible amount of remaining video playback time is based on the playback lengths of one or more potentially viewable video content segments in one or more video content paths following the decision point, and wherein a particular decision point comprises a point in a video content segment for determining a transition from the video content segment to one of a plurality of other video content segments,
wherein the possible amount of remaining video playback time comprises one or more of a maximum duration based in part on a possible video content path following the decision point and having the longest total length of video content segments, a minimum duration based in part on a possible video content path following the decision point and having the shortest total length of video content segments, and an average duration based in part on an average playback length of all possible video content paths following the decision point; and

facilitating navigation along the video content paths.

19. The method of claim 18, wherein the progression status comprises a visual indicator representing one or more of a portion of video content downloaded, a portion of video content played, and a portion of video content remaining for download.

20. The method of claim 18, wherein the progression status comprises at least one visual indicator identifying a decision point for transitioning from a source video content segment to a selectable one of a plurality of target video content segments.

21. The method of claim 20, wherein the progression status further comprises a time marker for the decision point, the time marker measured from the beginning of a currently traveled video content path.

22. The method of claim 20, wherein the progression status further comprises a time interval representing an amount of time permitted, upon reaching the decision point, to select one of the target video content segments to continue on a video content path.

23. The method of claim 20, wherein the progression status further comprises an amount of time until the decision point is reached.

24. The method of claim 20, wherein the progression status further comprises at least one option indicator identifying each target video content segment for potential selection at the decision point.

25. The method of claim 20, wherein the progression status further comprises an option indicator identifying a selected one of the target video content segments, the option indicator displayed upon selection of the selection segment at the decision point.

26. The method of claim 18, further comprising dynamically updating the progression status after each decision point along a currently traveled video content path.

27. The method of claim 18, wherein the progression status comprises a graphical tree structure.

28. The method of claim 27, wherein the tree structure comprises linked video content segments forming a traveled video content path prior to a current point in time.

29. The method of claim 28, wherein the tree structure further comprises potential selectable video content segments branching from the traveled video content path after the current point in time.

30. The method of claim 27, wherein the tree structure comprises linked video content segments forming all of the video content paths.

31. The method of claim 27, wherein the facilitating step further comprising facilitating navigation within the tree structure.

32. The method of claim 18, wherein the progression status comprises statistics based on user selection of the video content segments.

33. The method of claim 18, further comprising providing for display a plurality of video thumbnails associated with a particular point in time of the progression status, each video thumbnail representing a respective video content segment from a different one of the video content paths, the respective video content segment being potentially viewable at the particular point in time.

34. The method of claim 33, further comprising upon selection of one of the video thumbnails, seeking to the video content segment corresponding to the thumbnail.