Systems and methods for nonlinear video playback using linear real-time video players
First Claim
1. A computer-implemented method for playing non-linear video content using a video player that would otherwise be limited to presenting linear video content, the method comprising:
- providing a video tree representing a branching video presentation, the video tree comprising a plurality of branches, each branch comprising one or more video content segments;
providing, by a server, a dynamic playlist to a linear video player executing on a client device, the dynamic playlist comprising one or more references to video content segments of the video tree to be played by the linear video player, wherein the linear video player does not natively support (i) presentation of branching video content to a user and (ii) user interactivity with the branching video content to cause traversal of different paths within the branching video content;
transforming the linear video player into a non-linear video player that supports (i) presentation of branching video content to a user and (ii) user interactivity with the branching video content to cause traversal of different paths within the branching video content, wherein the transforming comprises;
transmitting, by the server, a controller component to the linear video player, separate from and external to software program components that compose the linear video player, to interact with the linear video player through a standard interface of the linear video player that provides for communication of external components with the linear video player, wherein the standard interface comprises an application programming interface (API);
providing an interface layer, distinct from a user interface of the linear video player, over the video content displayed by the linear video player;
receiving, by the controller component and from the linear video player via the standard interface, during playback of a video content segment in the dynamic playlist by the linear video player, an indication of a user interaction with the branching video presentation, the indication comprising a decision to traverse a particular branch in the video tree, wherein the indication of the user interaction is received programmatically via the API; and
modifying the dynamic playlist based on one or more of the video content segments in the particular branch to traverse.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for nonlinear media playback using a linear media player are described. In one implementation, a video tree representing a branching video presentation is provided, and a dynamic playlist is provided to a linear video player. A controller component interacts with the linear video player through a standard interface of the linear video player. During playback of a video content segment in the dynamic playlist by the linear video player, an indication of a user interaction with the playing video content segment is received by the controller component and from the linear video player via the standard interface, and the dynamic playlist is modified based on video content segments in a branch of the video tree. In another implementation, an uncompressed media file is selected and combined with a preceding and/or following media file. The combined files are compressed and a portion of the compressed file corresponding to the original media file is extracted.
325 Citations
22 Claims
-
1. A computer-implemented method for playing non-linear video content using a video player that would otherwise be limited to presenting linear video content, the method comprising:
-
providing a video tree representing a branching video presentation, the video tree comprising a plurality of branches, each branch comprising one or more video content segments; providing, by a server, a dynamic playlist to a linear video player executing on a client device, the dynamic playlist comprising one or more references to video content segments of the video tree to be played by the linear video player, wherein the linear video player does not natively support (i) presentation of branching video content to a user and (ii) user interactivity with the branching video content to cause traversal of different paths within the branching video content; transforming the linear video player into a non-linear video player that supports (i) presentation of branching video content to a user and (ii) user interactivity with the branching video content to cause traversal of different paths within the branching video content, wherein the transforming comprises; transmitting, by the server, a controller component to the linear video player, separate from and external to software program components that compose the linear video player, to interact with the linear video player through a standard interface of the linear video player that provides for communication of external components with the linear video player, wherein the standard interface comprises an application programming interface (API); providing an interface layer, distinct from a user interface of the linear video player, over the video content displayed by the linear video player; receiving, by the controller component and from the linear video player via the standard interface, during playback of a video content segment in the dynamic playlist by the linear video player, an indication of a user interaction with the branching video presentation, the indication comprising a decision to traverse a particular branch in the video tree, wherein the indication of the user interaction is received programmatically via the API; and modifying the dynamic playlist based on one or more of the video content segments in the particular branch to traverse. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for playing non-linear video content using a video player that would otherwise be limited to presenting linear video content, the system comprising:
one or more computers programmed to perform operations comprising; providing a video tree representing a branching video presentation, the video tree comprising a plurality of branches, each branch comprising one or more video content segments; providing, by a server, a dynamic playlist to a linear video player executing on a client device, the dynamic playlist comprising one or more references to video content segments of the video tree to be played by the linear video player, wherein the linear video player does not natively support (i) presentation of branching video content to a user and (ii) user interactivity with the branching video content to cause traversal of different paths within the branching video content; transforming the linear video player into a non-linear video player that supports (i) presentation of branching video content to a user and (ii) user interactivity with the branching video content to cause traversal of different paths within the branching video content, wherein the transforming comprises; transmitting, by the server, a controller component to the linear video player, separate from and external to software program components that compose the linear video player, to interact with the linear video player through a standard interface of the linear video player that provides for communication of external components with the linear video player, wherein the standard interface comprises an application programming interface (API); providing an interface layer, distinct from a user interface of the linear video player, over the video content displayed by the linear video player; receiving, by the controller component and from the linear video player via the standard interface, during playback of a video content segment in the dynamic playlist by the linear video player, an indication of a user interaction with the playing video content segment, the indication comprising a decision to traverse a particular branch in the video tree, wherein the indication of the user interaction is received programmatically via the API; and modifying the dynamic playlist based on one or more of the video content segments in the particular branch to traverse. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
Specification