IP Library Granted Patent US 11,838,572
Granted Patent B2
US 11,838,572 · App. 17/854,764 · Granted Dec 5, 2023

Streaming video trunking

Inventors: Charley Robinson (Denver, CO); Gustavo García (Madrid, ES); Badri Rajasekar (Walnut Creek, CA)
Assignee: RingCentral, Inc.
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,838,572
App. No.
17/854,764
Granted
Dec 5, 2023
Kind
B2
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 (69)

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;

a plurality of presenting client devices, each presenting client device connected to an origin video server of the plurality of origin video servers,

wherein each origin video server of the plurality of origin video servers comprises at least one first non-transitory computer-readable memory storing first computer-executable instructions that, when executed by at least one origin video server processor, carry out actions comprising:

receiving, from a connected presenting client device, a video stream; and

responsive to receiving the video stream:

relaying the video stream to the plurality of presenting client devices via the interconnected mesh network; and

transmitting the video stream to at least one edge video server of a plurality of edge video servers;

the plurality of edge video servers, each edge video server connected to at least one origin video server of the plurality of origin video servers;

a plurality of participant client devices, each participant client device connected to an edge video server of the plurality of edge video servers,

wherein each edge video server of the plurality of edge video servers comprises at least one non-transitory computer-readable memory storing computer-executable instructions that, when executed by at least one edge video server processor, carry out actions comprising:

receiving the video stream from the at least one origin video server; and

responsive to receiving the video stream, broadcasting the video stream to the plurality of participant client devices,

wherein at least one participant client device of the plurality of participant client devices comprises at least one second non-transitory computer-readable memory storing second computer-executable instructions that, when executed by at least one processor of the at least one participant client device, carry out actions comprising:

receiving the video stream from the edge video server; and

displaying the video stream on a display of the at least one participant client device; and

at least one load balancing server configured to assign a client device to the origin video server or to the edge video server based on the required transmission latency associated with the client device,

wherein the at least one load balancing server does not assign the client device to the origin video server or to the edge video server when the origin video server or the edge video server is scheduled for a software upgrade.

2. The system of claim 1 , wherein the interconnected mesh network is a partially connected mesh network having each origin video server indirectly connected to every other origin video server.

3. The system of claim 2 , wherein the interconnected mesh network is configured to dynamically establish direct connections between the plurality of origin video servers to minimize latency between the plurality of presenting client devices.

4. The system of claim 1 , wherein the at least one edge video server processor further carries out actions comprising: rendering a production video stream by mixing the video stream with at least one video streaming asset.

5. The system of claim 4 ,

wherein the system further comprises a content delivery network connected to the at least one edge video server,

wherein the content delivery network is configured to provide cached access to the production video stream for the plurality of participant client devices.

6. The system of claim 5 , wherein the content delivery network is a real time content delivery network.

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

assigning, by a load balancing server, a plurality of client devices to one of a plurality of origin video servers or one of a plurality of edge video servers based on the required transmission latency associated with each of the plurality of client devices,

wherein the plurality of client devices comprises a plurality of presenting client devices and a plurality of participant client devices,

wherein the load balancing server does not assign the plurality of client devices to origin video servers or edge video servers scheduled for a software upgrade;

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

wherein each presenting client device of the plurality of presenting client devices is connected to an origin video server of the plurality of origin video servers based on geographical proximity to the origin video server;

relaying the video stream to the plurality of presenting client devices through an interconnected mesh network formed by at least a subset of the plurality of origin video servers;

transmitting the video stream from the first origin video server to at least one edge video server of the plurality of edge video servers;

receiving the video stream at the at least one edge video server; and

broadcasting, from the at least one edge video server, the video stream to at least one participant client device of the plurality of participant client devices,

wherein the at least one participant client device is connected to an edge video server of the plurality of edge video servers based on geographical proximity to the edge video server.

8. The method of claim 7 , further comprising: rendering, by at least one of the plurality of origin video servers or at least one of the plurality of edge video servers, a production composite video stream by mixing the video stream with one or more streaming video assets.

9. The method of claim 7 , further comprising:

wherein the at least one participant client device is a view-only participant of the video stream.

10. The method of claim 7 , further comprising:

receiving a request from a participant client device to transmit data for the video stream; and

responsive to receiving the request, re-assigning the participant client device to one of the plurality of origin video servers to improve a latency for the participant client device.

11. The method of claim 7 , further comprising aggregating the plurality of presenting client devices and the plurality of participant client devices onto a minimum set of origin video servers and edge video servers.

12. The method of claim 11 , further comprising:

responsive to a number of the plurality of presenting client devices connected to the first origin video server in a geographic region reaching a first threshold number, deploying an additional origin video server in the geographic region; and

responsive to a number of the plurality of participant client devices connected to the edge video server in the geographic region reaching a second threshold number, deploying an additional edge video server in the geographic region.

13. The method of claim 7 , further comprising:

receiving an additional video stream from an additional presenting client device of the plurality of presenting client devices; and

transmitting the additional video stream to the plurality of presenting client devices via the interconnected mesh network.

14. 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 of a plurality of origin video servers, a first video stream from a first presenting client device of a plurality of presenting client devices,

wherein the plurality of origin video servers is arranged in an interconnected mesh network;

relaying the first video stream to the plurality of presenting client devices through the interconnected mesh network;

transmitting, from the first origin video server to at least one edge video server of a plurality of edge video servers, the first video stream;

broadcasting, from the at least one edge video server, the first video stream to at least one participant client device of a plurality of participant client devices;

receiving, at a second origin video server of the plurality of origin video servers, a second video stream from a second presenting client device;

relaying the second video stream to the plurality of presenting client devices through the interconnected mesh network;

receiving a request from a participant client device to transmit data for the first video stream; and

responsive to receiving the request, re-assigning the participant client device to one of the plurality of origin video servers.

15. The one or more non-transitory computer-readable media of claim 14 , wherein the interconnected mesh network is self-configuring to dynamically establish connections among the plurality of origin video servers based on real time control statistics.

16. The one or more non-transitory computer-readable media of claim 14 , further comprising:

responsive to detecting a latency associated with a presenting client device connected to an initial origin video server exceeding a threshold latency value, connecting the presenting client device to a new origin video server.

17. The one or more non-transitory computer-readable media of claim 16 , wherein the new origin video server is located in a geographic location distinct from a geographic region of the initial origin video server.

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

transmitting the first video stream from the at least one edge video server to one or more content delivery networks; and

instructing the one or more content delivery networks to respond to requests for the first video stream.

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

assigning, by a load balancing server, a plurality of client devices to one of the plurality of origin video servers or one of the plurality of edge video servers based on the required transmission latency associated with each of the plurality of client devices.

20. The one or more non-transitory computer-readable media of claim 19 , wherein the load balancing server does not assign the plurality of client devices to an origin video server or an edge video server scheduled for a software upgrade.

Assignments (6)
SECURITY INTEREST Recorded Feb 29, 2024
From: RINGCENTRAL, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 066600/0393 →
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 Jun 30, 2022
From: ROBINSON, CHARLEY; GARCÍA, GUSTAVO; RAJASEKAR, BADRI
To: HOPIN LTD
Reel/Frame 060372/0636 →
Continuity (2)
Continuation 17557909 · Dec 21, 2021
Related Publication 20230199239A1 · Jun 22, 2023