# US 12,010,161 B1 · Browser-based video production

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

- Number: US 12,010,161 B1
- Document ID: US12010161B1
- Status: Granted
- Kind: B1
- Application number: 17/843,276
- Filed: 2022-06-17
- Granted: 2024-06-11
- Earliest claimed: 2021-12-22
- Assignees: StreamYard, Inc.
- Applicants: StreamYard, Inc.
- Inventors: Jan Hesters
- Web page: https://patentgrep.com/patent/US12010161B1

## CPC

- H04L 65/80: Responding to QoS
- G11B 27/031: Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B 27/34: Indicating arrangements {(indicating means incorporated in magazine or cassette G11B23/046 and G11B23/0875; indicating measured values in general G01D)}
- H04L 65/1089: by adding media; by removing media
- H04L 65/613: for the control of the source by the destination (control signals issued by the client directed to the server or network components specially adapted for selective content distribution H04N21/637)
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- H04L 65/756: adapting media to device capabilities
- H04L 65/765: {intermediate}
- H04N 5/265: Mixing
- H04N 5/278: Subtitling
- H04N 5/77: between a recording apparatus and a television camera
- H04N 9/8227: {the additional signal being at least another television signal}
- H04N 21/27: Server based end-user applications
- H04N 21/47205: {for manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally}
- H04N 21/854: Content authoring
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- 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, methods, and computer-readable media are provided for producing and mixing a video stream based on a predetermined video layout template and a set of selectable video streaming parameters. A plurality of individual video streams is received from a respective plurality of participant users and mixed into a mixed video stream on a mixing server which is distributed to a plurality of viewing users. An authoring server allows an authoring user to configure various video streaming parameters which instruct the mixing and display of the mixed video stream.

## Claims

### Claim 1

A method for updating a video stream layout, the method comprising:
receiving a plurality of individual video streams associated with a respective plurality of participant users;
generating a respective plurality of video windows corresponding to the plurality of individual video streams to be displayed in a user interface based on a predefined video template during a video communication session between the respective plurality of participant users,
wherein the predefined video template comprises a Hypertext Markup Language (HTML) layout defining a sizing and positioning of the respective plurality of video windows within the user interface;
receiving a user interaction from a participant user of the respective plurality of participant users during the video communication session; and
responsive to the user interaction from the participant user, updating the HTML layout during the video communication session with a change to the respective plurality of video windows within the user interface based on the user interaction from the participant user.

### Claim 2 (depends on 1)

The method of claim 1, wherein the change to the respective plurality of video windows comprises a video size adjustment.

### Claim 3 (depends on 1)

The method of claim 1, wherein the change to the respective plurality of video windows comprises a video position adjustment.

### Claim 4 (depends on 1)

The method of claim 1, wherein the change to the respective plurality of video windows comprises adding an additional individual video stream to the plurality of individual video streams.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving one or more user selections within an authoring user interface; and
generating the predefined video template based at least in part on the one or more user selections.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
mixing the plurality of individual video streams into a mixed video stream using a mixing server, the mixing server including a headless browser for accessing a web page; and
providing the plurality of individual video streams to a plurality of viewing users via one or more edge servers.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
generating one or more animated interface elements to be displayed in the user interface based on the predefined video template during the video communication session.

### Claim 8

One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method for updating a video stream layout, the method comprising:
receiving a plurality of individual video streams associated with a respective plurality of participant users;
generating a respective plurality of video windows corresponding to the plurality of individual video streams to be displayed in a user interface based on a predefined video template during a video communication session between the respective plurality of participant users,
wherein the predefined video template comprises a Hypertext Markup Language (HTML) layout defining a sizing and positioning of the respective plurality of video windows within the user interface;
receiving a user interaction from a participant user of the respective plurality of participant users during the video communication session; and
responsive to the user interaction from the participant user, updating the HTML layout during the video communication session with a change to the respective plurality of video windows within the user interface based on the user interaction from the participant user.

### Claim 9 (depends on 8)

The one or more non-transitory computer-readable media of claim 8, the method further comprising:
mixing the plurality of individual video streams into a mixed video stream using a mixing server, the mixing server including a headless browser for accessing a web page.

### Claim 10 (depends on 9)

The one or more non-transitory computer-readable media of claim 9, the method further comprising:
receiving one or more user selections within an authoring user interface; and
generating the predefined video template based at least in part on the one or more user selections.

### Claim 11 (depends on 10)

The one or more non-transitory computer-readable media of claim 10, the method further comprising:
rendering, using the headless browser, one or more of the plurality of individual video streams on the web page; and
recording the plurality of individual video streams and the mixed video stream.

### Claim 12 (depends on 11)

The one or more non-transitory computer-readable media of claim 11, the method further comprising:
providing the mixed video stream including the plurality of individual video streams to a plurality of viewing users via one or more edge servers.

### Claim 13 (depends on 8)

The one or more non-transitory computer-readable media of claim 8, wherein the change to the respective plurality of video windows comprises removing an individual video stream from the plurality of individual video streams.

### Claim 14 (depends on 8)

The one or more non-transitory computer-readable media of claim 8, the method further comprising:
generating one or more animated interface elements to be displayed in the user interface based on the predefined video template during the video communication session.

### Claim 15

A method for updating a video stream layout, the method comprising:
receiving a plurality of individual video streams associated with a respective plurality of participant users;
mixing the plurality of individual video streams into a mixed video stream using a mixing server, the mixing server including a headless browser for accessing a web page;
providing the mixed video stream including the plurality of individual video streams to a plurality of viewing users via one or more edge servers;
generating a respective plurality of video windows corresponding to the plurality of individual video streams to be displayed in a user interface based on a predefined video template during a video communication session between the respective plurality of participant users,
wherein the predefined video template comprises a Hypertext Markup Language (HTML) layout defining a sizing and positioning of the respective plurality of video windows within the user interface;
receiving a user interaction from a participant user of the respective plurality of participant users during the video communication session; and
responsive to the user interaction from the participant user, updating the HTML layout during the video communication session with a change to the respective plurality of video windows within the user interface based on the user interaction from the participant user.

### Claim 16 (depends on 15)

The method of claim 15, wherein the user interaction from the participant user comprises the participant user joining the video communication session.

### Claim 17 (depends on 16)

The method of claim 16, wherein the change to the respective plurality of video windows comprises adding a respective individual video stream corresponding to the participant user.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
recording the mixed video stream and the plurality of individual video streams; and
storing a recording of the mixed video stream and the plurality of individual video streams in a data store.

### Claim 19 (depends on 15)

The method of claim 15, wherein the user interaction from the participant user comprises the participant user speaking during the video communication session.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
determining that the participant user is active based on the participant user speaking during the video communication session; and
responsive to determining that the participant user is active, increasing a size of a video window of the respective plurality of video windows corresponding to the participant user within the user interface.
