IP Library Granted Patent US 11,412,278
Granted Patent B1
US 11,412,278 · App. 17/557,909 · Granted Aug 9, 2022

Streaming video trunking

Inventors: Charley Robinson (Denver, CO); Gustavo Garcia (Madrid, ES); Badri Rajasekar (Walnut Creek, CA)
Assignee: Hopin Ltd
H04N21/25841H04L67/12H04N21/2187H04N21/222H04N21/2393H04N21/2404
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,412,278
App. No.
17/557,909
Granted
Aug 9, 2022
Kind
B1
Abstract

Systems, methods, and media are disclosed for propagating video streams based on geographical proximity and required transmission latency. A first video stream is received from a first presenting client device at a first origin video server connected to at least one other origin video server forming a mesh network. The first video stream is relayed to at least a second origin video server from the first presenting client device. The first video stream is transmitted from the second origin video server to an edge video server. The first video stream is received from the second origin video server by one or more edge video servers. The first video stream is broadcast to a plurality of participant client devices. A second video stream is received from a second presenting client device. The second video stream is transmitted via the second origin video server to the plurality of participant client devices.

Claims (67)

1. A system for propagating one or more large-scale video streams based on network proximity and required transmission latency, the system comprising:

a plurality of origin video servers arranged in an interconnected mesh network;

one or more presenting client devices connected to an inbound routing origin video server in the plurality of origin video servers,

wherein each origin video server in the plurality of origin video servers comprises at least one origin video server processor coupled with at least one non-transitory memory storing computer executable instructions that when executed by the at least one origin video server processor cause the system to carry out actions comprising:

receiving, at a first origin video server in the plurality of origin video servers, at least one video stream from a first presenting client device in the one or more presenting client devices;

relaying to at least a second origin video server in the plurality of origin video servers, the at least one video stream from the one or more presenting client devices; and

transmitting, to a second presenting client device in the one or more presenting client devices, the at least one video stream from the one or more presenting client devices;

a plurality of edge video servers, each edge video server connected to at least one outbound-routing origin video server in the plurality of origin video servers,

a plurality of participant client devices, each participant client device in the plurality of participant client devices connected to at least one participant-serving edge video servers in the plurality of edge video servers,

wherein each edge video server in the plurality of edge video servers comprises at least one edge video server processor coupled with at least one non-transitory memory storing computer executable instructions that when executed by the at least one edge video server processor cause the system to carry out actions comprising:

receiving, from the at least one outbound-routing origin video server, the at least one video stream and one or more streaming video assets;

rendering a production composite video stream by mixing the at least one video stream with the one or more streaming video assets; and

transmitting the production composite video stream to at least one of the plurality of participant client devices,

wherein each participant client device in the plurality of participant client devices comprises at least one processor and at least one non-transitory memory storing computer executable instructions that when executed by the at least one processor cause the system to carry out actions comprising:

receiving a data stream corresponding to the production composite video stream; and

displaying the production composite video stream based on the data stream.

2. The system of claim 1 , wherein each origin video server in the interconnected mesh network is directly connected to every other origin video server.

3. The system of claim 1 , wherein the first origin video server is physically located in a first geographical location and the second origin video server is physically located in a second geographical location.

4. The system of claim 3 , wherein each edge video server is connected to at least one outbound-routing origin video server based in a common geographical location with the at least one outbound-routing origin video server.

5. The system of claim 1 , wherein one or more remote presenting client devices is connected to one or more of the edge video servers in a common remote geographical location.

6. The system of claim 1 , wherein the mesh network is configured to dynamically distribute connections among the plurality of origin video servers to prioritize low-latency connections between each node within the mesh network by assigning connected client devices based on geographic location.

7. The system of claim 6 , wherein the mesh network is configured to monitor server loading of the origin video servers and the edge video servers, and deploy at least one additional origin video server or edge video server based on the server loading.

8. A method of propagating one or more large-scale video streams based on geographical proximity and required transmission latency, the method comprising:

receiving, at a first origin video server in a plurality of origin video servers, a first video stream from a first presenting client device of one or more presenting client devices,

wherein each origin video server in the plurality of origin video servers is connected to at least one other origin video server in the plurality of origin video servers forming a mesh network;

relaying, to at least a second origin video server in the plurality of origin video servers, the first video stream from the first presenting client device;

transmitting, from the second origin video server to one or more edge video servers, the first video stream;

receiving, by the one or more edge video servers, from the second origin video server, the first video stream;

rendering, by the one or more edge video servers, a production composite video stream by mixing the first video stream with one or more streaming video assets;

broadcasting, from the one or more edge video servers, the production composite video stream to a plurality of participant client devices;

receiving a second video stream from a second presenting client device of the one or more presenting client devices; and

transmitting, via the second origin video server in the plurality of origin video servers, the second video stream to the plurality of participant client devices.

9. The method of claim 8 , wherein the second video stream is transmitted concurrently with the first video stream.

10. The method of claim 8 , further comprising:

dynamically configuring connections among the plurality of origin video servers to prioritize low-latency connections between each node within the mesh network by assigning connected client devices based on geographic location.

11. The method of claim 8 , wherein broadcasting the production composite video stream further comprises: transmitting the production composite video stream to one or more real time content delivery networks and instructing the one or more real time content delivery networks to respond to requests for the production composite video stream by the plurality of participant client devices.

12. The method of claim 11 , further comprising:

receiving, at the plurality of participant client devices, the production composite video stream; and

displaying the production composite video stream at a plurality of displays associated with the plurality of participant client devices.

13. The method of claim 8 , further comprising:

receiving, during the first video stream and from the plurality of participant client devices, an indication that at least one of the plurality of participant client devices intends to transmit the second video stream; and

initiating transmission of the second video stream.

14. The method of claim 13 , further comprising:

relaying, to at least the second origin video server in the plurality of origin video servers, the second video stream; and

transmitting, to the plurality of participant client devices, the second video stream.

15. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by a processor, perform a method of propagating a large-scale video stream based on geographical proximity and required transmission latency, the method comprising:

receiving, at a first origin video server in a plurality of origin video servers, a first video stream from a first presenting client device in a plurality of presenting client devices,

wherein each origin video server in the plurality of origin video servers forms a mesh network with at least one other origin video server in the plurality of origin video servers;

broadcasting, to at least a second origin video server in the plurality of origin video servers, the first video stream;

transmitting, to the plurality of presenting client devices, the first video stream;

receiving, at one or more edge video servers and from at least one outbound-routing origin video server, the first video stream;

rendering, by the one or more edge video servers, a production composite video stream by mixing the first video stream with one or more streaming video assets;

transmitting, from the one or more edge video servers, the production composite video stream to a plurality of participant client devices;

receiving a second video stream from a second presenting client device of the plurality of presenting client devices; and

transmitting, via the second origin video server in the plurality of origin video servers, the second video stream to the plurality of presenting client devices.

16. The one or more non-transitory computer-readable media of claim 15 , wherein transmitting the production composite video stream further comprises: transmitting the production composite video stream to one or more real time content delivery networks and instructing the one or more real time content delivery networks to respond to requests for the production composite video stream by the plurality of participant client devices.

17. The one or more non-transitory computer-readable media of claim 15 , wherein each edge video server is connected to at least one outbound-routing origin video server based in a common geographical location.

18. The one or more non-transitory computer-readable media of claim 15 , the method further comprising:

broadcasting, to at least the second origin video server the second video stream; and

transmitting, to a plurality of participant client devices, the second video stream.

19. The one or more non-transitory computer-readable media of claim 18 , the method further comprising:

dynamically configuring connections among the plurality of origin video servers to prioritize network geographical proximity between each node within the mesh network based on video stream quality at each client device;

determining that a candidate client device video quality would be improved by being connected to an alternate origin video server or edge video server in a different geographical location; and

switching the candidate client device to the alternate origin video server or edge video server.

20. The one or more non-transitory computer-readable media of claim 15 , the method further comprising:

detecting a failed origin video server or edge video server; and

switching a candidate client device that is connected to the failed origin video server or edge video server to an alternate origin video server or edge video server.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNEE STATE OF INCORPORATION PREVIOUSLY RECORDED AT REEL: 64878 FRAME: 183. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2023
From: HOPIN LTD
To: RINGCENTRAL FLORIDA, LLC
Reel/Frame 066408/0895 →
SECURITY INTEREST Recorded Nov 29, 2023
From: RINGCENTRAL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 065693/0745 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: RINGCENTRAL FLORIDA, LLC
To: RINGCENTRAL, INC.
Reel/Frame 064900/0329 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2023
From: HOPIN LTD
To: RINGCENTRAL FLORIDA, LLC
Reel/Frame 064878/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2021
From: ROBINSON, CHARLEY; GARCÍA, GUSTAVO; RAJASEKAR, BADRI
To: HOPIN LTD
Reel/Frame 058448/0789 →
Cited By (2)
US 12,513,018 US 12,519,908