# US 2020/0404382 A1 · Systems and methods for nonlinear video playback using linear real-time video players

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0404382 A1
- Document ID: US20200404382A1
- Status: Published application
- Kind: A1
- Application number: 16/752,193
- Filed: 2020-01-24
- Published: 2020-12-24
- Earliest claimed: 2015-04-30
- Assignees: JBF Interlude 2009 LTD
- Applicants: JBF Interlude 2009 LTD
- Inventors: Jonathan Bloch; Tal Zubalsky; Yuval Hofshy; Barak Feldman
- Web page: https://patentgrep.com/patent/US20200404382A1

## CPC

- H04N 21/2225: Local VOD servers
- H04N 21/47217: {for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks (specific graphical features in visual interfaces H04N21/4312)}
- H04L 65/1069: Session establishment or de-establishment
- H04L 65/61: for supporting one-way streaming services, e.g. Internet radio
- H04L 65/612: for unicast
- H04N 21/232: Content retrieval operation {locally} within server, e.g. reading video streams from disk arrays {(storage management G06F3/0604; details of querying and searching of video data from a database G06F16/739)}
- H04N 21/2387: Stream processing in response to a playback request from an end-user, e.g. for trick-play
- H04N 21/26258: {for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list (retrieval of multimedia data based on playlists G06F16/40)}
- H04N 21/632: {using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices (broadcast-related systems characterised by transmission among terminal devices H04H60/80; distributed application using peer-to-peer [P2P] networks H04L67/104)}
- H04N 21/6587: Control parameters, e.g. trick play commands, viewpoint selection
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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.

## Claims

### Claim at position 1

1-22. (canceled)

### Claim 23

A computer-implemented method comprising:
transforming a linear video player executing on a client device into a non-linear video player, wherein the linear video player does not natively support features of (i) presenting branching video content to a user and (ii) receiving user interactions with the branching video content to cause traversal of different paths within the branching video content, and wherein the non-linear video player supports the features, and
wherein the transforming comprises receiving, from a server, by the linear video player executing on the client device, a controller component configured to communicate with the linear video player through an application programming interface of the linear video player;
receiving, by the controller component, during playback of a video segment within a video presentation by the linear video player, a user interaction with the video presentation; and
causing the linear video player, based on the user interaction, to emulate the features of the non-linear video player by programmatically directing operation of the linear player, by the controller component, through the application programming interface.

### Claim 24 (depends on 23)

The method of claim 23, further comprising:
receiving, from the server, a dynamic playlist, by the linear video player executing on the client device, the dynamic playlist comprising one or more references to video segments within a branching video tree to be played by the linear video player; and
in response to the user interaction, modifying the dynamic playlist.

### Claim 25 (depends on 24)

The method of claim 24, wherein the dynamic playlist is modified based on a current playback location of the video segment when the user interaction is received.

### Claim 26 (depends on 24)

The method of claim 24, wherein modifying the dynamic playlist comprises adding a reference to a video segment to the dynamic playlist and/or removing a reference to a video segment from the dynamic playlist.

### Claim 27 (depends on 24)

The method of claim 24, wherein modifying the dynamic playlist comprises creating a new dynamic playlist starting from a requested point in time.

### Claim 28 (depends on 24)

The method of claim 24, wherein the dynamic playlist is modified substantially immediately following the receiving of the user interaction.

### Claim 29 (depends on 24)

The method of claim 24, wherein the dynamic playlist is a first dynamic playlist, the method further comprising receiving, from the server, a second dynamic playlist, by a second linear video player executing on a second client device.

### Claim 30 (depends on 29)

The method of claim 29, further comprising modifying the second dynamic playlist independently of the first dynamic playlist, the modifying being based on user interactions with video segments played by the second linear video player.

### Claim 31 (depends on 23)

The method of claim 23, further comprising directing the linear video player to display a graphical overlay on the video segment.

### Claim 32 (depends on 31)

The method of claim 31, further comprising directing the linear video player to modify the graphical overlay based on the user interaction.

### Claim 33

A system comprising:
a processor; and
a memory for storing computer-executable instructions that, when executed by the processor, program the processor to perform operations comprising:
transforming a linear video player executing on a client device into a non-linear video player, wherein the linear video player does not natively support features of (i) presenting branching video content to a user and (ii) receiving user interactions with the branching video content to cause traversal of different paths within the branching video content, and wherein the non-linear video player supports the features, and
wherein the transforming comprises receiving, from a server, by the linear video player executing on the client device, a controller component configured to communicate with the linear video player through an application programming interface of the linear video player;
receiving, by the controller component, during playback of a video segment within a video presentation by the linear video player, a user interaction with the video presentation; and
causing the linear video player, based on the user interaction, to emulate the features of the non-linear video player by programmatically directing operation of the linear player, by the controller component, through the application programming interface.

### Claim 34 (depends on 33)

The system of claim 33, wherein the operations further comprise:
receiving, from the server, a dynamic playlist, by the linear video player executing on the client device, the dynamic playlist comprising one or more references to video segments within a branching video tree to be played by the linear video player; and
in response to the user interaction, modifying the dynamic playlist.

### Claim 35 (depends on 34)

The system of claim 34, wherein the dynamic playlist is modified based on a current playback location of the video segment when the user interaction is received.

### Claim 36 (depends on 34)

The system of claim 34, wherein modifying the dynamic playlist comprises adding a reference to a video segment to the dynamic playlist and/or removing a reference to a video segment from the dynamic playlist.

### Claim 37 (depends on 34)

The system of claim 34, wherein modifying the dynamic playlist comprises creating a new dynamic playlist starting from a requested point in time.

### Claim 38 (depends on 34)

The system of claim 34, wherein the dynamic playlist is modified substantially immediately following the receiving of the user interaction.

### Claim 39 (depends on 34)

The system of claim 34, wherein the dynamic playlist is a first dynamic playlist, wherein the operations further comprise receiving, from the server, a second dynamic playlist, by a second linear video player executing on a second client device.

### Claim 40 (depends on 39)

The system of claim 39, wherein the operations further comprise modifying the second dynamic playlist independently of the first dynamic playlist, the modifying being based on user interactions with video segments played by the second linear video player.

### Claim 41 (depends on 33)

The system of claim 33, wherein the operations further comprise directing the linear video player to display a graphical overlay on the video segment.

### Claim 42 (depends on 41)

The system of claim 41, wherein the operations further comprise directing the linear video player to modify the graphical overlay based on the user interaction.
