# US 11,315,601 B1 · Instant video stitching and associated methods and systems

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

- Number: US 11,315,601 B1
- Document ID: US11315601B1
- Status: Granted
- Kind: B1
- Application number: 17/544,466
- Filed: 2021-12-07
- Granted: 2022-04-26
- Earliest claimed: 2021-02-11
- Assignees: Loom, Inc.
- Applicants: Loom, Inc.
- Inventors: Vinay Hiremath; Bruno Henrique da Silva
- Web page: https://patentgrep.com/patent/US11315601B1

## CPC

- G11B 27/031: Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B 27/11: by using information not detectable on the record carrier
- G11B 27/34: Indicating arrangements {(indicating means incorporated in magazine or cassette G11B23/046 and G11B23/0875; indicating measured values in general G01D)}
- 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/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N 21/854: Content authoring
- H04N 21/8547: involving timestamps for synchronizing content
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Systems and methods for stitching together two video files are disclosed. In one embodiment, the method first receives a first video file and a second video file. Each video file includes a plurality of labeled video segments and a playlist. Each playlist includes a plurality of segment labels providing a segment playback order. Each labeled video segment includes a plurality of frames and a corresponding plurality of timestamps. After receiving the two video files, the method receives a stitch request including the playlists of the two video files. Finally, the method executes the stitch request by time shifting the labeled video segments of the second video and generating a modified playlist. Also disclosed is a method for trimming a video file, which may be utilized to trim the video files before stitching them together.

## Claims

### Claim 1

A computer-implemented method for video editing, the computer-implemented method executable by a hardware processor, the method comprising:
receiving a first video file, the first video file comprising a first plurality of labeled video segments and a first playlist, the first playlist comprising a first plurality of segment labels providing an order for playing the first plurality of labeled video segments;
receiving a second video file, the second video file comprising a second plurality of labeled video segments and a second playlist, the second playlist comprising a second plurality of segment labels providing an order for playing the second plurality of labeled video segments, wherein each labeled video segment of the first plurality of labeled video segments and of the second plurality of labeled video segments comprises a plurality of frames and a corresponding plurality of timestamps;
receiving a stitch request, the stitch request comprising the first playlist and the second playlist;
receiving a segment request from a user device; and
executing the stitch request, just-in-time, in response to receiving the segment request, by generating a modified playlist by appending the second playlist to the end of the first playlist.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the segment request comprises a request for one of the first plurality of labeled video segments of the first video file.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the segment request comprises a request for one of the second plurality of labeled video segments of the second video file.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein executing the stitch request further comprises time shifting each of the second plurality of labeled video segments.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein time shifting a given labeled video segment of the second plurality of labeled video segments comprises shifting a plurality of timestamps corresponding to a plurality of frames of the given labeled video segment by a duration of the first video.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein generating the modified playlist further comprises:
identifying a redundant segment label of the second playlist; and
renaming the redundant segment label of the second playlist.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, wherein the redundant segment label of the second playlist is identical to a segment label of the first playlist.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein executing the stitch request further comprises:
storing the modified playlist on a server; and
transmitting the modified playlist to the user device for playback.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the stitch request is coded in a data interchange format.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the stitch request is a JavaScript Object Notation (JSON) file.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1, wherein executing the stitch request further comprises storing the stitch request in a video editing database.

### Claim 12 (depends on 1)

The computer-implemented method of claim 1, wherein executing the stitch request further comprises storing the stitch request at a client-side cache.

### Claim 13 (depends on 1)

The computer-implemented method of claim 1, wherein the stitch request is received from a mobile device.

### Claim 14

A non-transitory storage medium storing program code for video editing, the program code executable by a hardware processor, the program code when executed by the hardware processor causing the hardware processor to: receive a first video file, the first video file comprising a first plurality of labeled video segments and a first playlist, the first playlist comprising a first plurality of segment labels providing an order for playing the first plurality of labeled video segments; receive a second video file, the second video file comprising a second plurality of labeled video segments and a second playlist, the second playlist comprising a second plurality of segment labels providing an order for playing the second plurality of labeled video segments, wherein each labeled video segment of the first plurality of labeled video segments and of the second plurality of labeled video segments comprises a plurality of frames and a corresponding plurality of timestamps; receive a stitch request, the stitch request comprising the first playlist and the second playlist; receive a segment request from a user device; and execute, just-in-time, the stitch request in response to receiving the segment request, by generating a modified playlist by appending the second playlist to the end of the first playlist.

### Claim 15 (depends on 14)

The non-transitory storage medium of claim 14, wherein the segment request comprises a request for one of the first plurality of labeled video segments of the first video file.

### Claim 16 (depends on 14)

The non-transitory storage medium of claim 14, wherein the segment request comprises a request for one of the second plurality of labeled video segments of the second video file.

### Claim 17 (depends on 14)

The non-transitory storage medium of claim 14, wherein the program code to execute the stitch request further comprises program code to time shift each of the second plurality of labeled video segments.

### Claim 18 (depends on 17)

The non-transitory storage medium of claim 17, wherein the program code to time shift a given labeled video segment of the second plurality of labeled video segments comprises program code to shift a plurality of timestamps corresponding to a plurality of frames of the given labeled video segment by a duration of the first video.

### Claim 19 (depends on 14)

The non-transitory storage medium of claim 14, wherein the program code to generate the modified playlist further comprises program code to:
identify a redundant segment label of the second playlist; and
rename the redundant segment label of the second playlist.

### Claim 20 (depends on 19)

The non-transitory storage medium of claim 19, wherein the redundant segment label of the second playlist is identical to a segment label of the first playlist.
