IP Library Granted Patent US 10,567,448
Granted Patent B2
US 10,567,448 · App. 15/943,313 · Granted Feb 18, 2020

Participation queue system and method for online video conferencing

Inventors: Ari Bader-Natal (Pacifica, CA); Brian Fields (San Francisco, CA); Matthew Michael Regan (Seattle, WA); Jonathan Scott Katzman (San Francisco, CA); Stephen Kosslyn (San Francisco, CA); Brandon Tilley (San Francisco, CA); Gene Hallman (San Francisco, CA)
Assignee: Minerva Project, Inc.
H04L65/1096H04L12/1813H04L12/1822H04L65/1069H04L65/1093H04L65/403H04N7/147H04N7/15H04N7/157H04L12/1827
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 10,567,448
App. No.
15/943,313
Granted
Feb 18, 2020
Kind
B2
Abstract

A virtual conferencing system is described for implementing a speaker queue. For example, one embodiment of the virtual conferencing system comprises: a plurality of clients, each of the clients comprising state management logic to maintain a current state of a virtual conference; a virtual conferencing service to establish audio and/or video connections between the plurality of clients during the virtual conference, the virtual conferencing service further including a state synchronization service communicatively coupled to the state management logic on each client to ensure that the current state of the virtual conference is consistent on each client; wherein the current state on each client includes a speaker queue comprising an ordered set of participants to be designated as current speakers during the virtual conference, wherein participants are added to the speaker queue in response to input provided by the participants indicating a desire to be a current speaker, wherein one or more participants towards the top of the speaker queue are designated to be current speakers, wherein participants are initially added to the bottom of the speaker queue and are moved towards the top of the speaker queue as other participants are removed from the top of the speaker queue; a virtual conferencing graphical user interface (GUI) to display a video stream of one or more current speakers within one or more current speaker regions, the virtual conferencing GUI further providing a visual representation of the speaker queue to each of the participants, the visual representation comprising an ordered representation of each of the participants in the speaker queue.

Claims (40)

1. A virtual conferencing system comprising:

a plurality of clients, each client comprising:

one or more audio/video (A/V) capturing devices to capture audio and video of a participant at the client during the participant's participation in a virtual conference; and

A/V compression and decompression logic to compress the captured audio and video of the participant to generate an A/V stream, wherein the A/V compression and decompression logic encodes the captured audio and video of the participant at a relatively higher resolution and/or frame rate when the participant is a current speaker;

a virtual conferencing service to establish A/V connections between the plurality of clients during the virtual conference, the virtual conferencing service further including a multimedia stream distribution service communicatively coupled to a virtual conferencing app/browser on each client through a web socket connection, the multimedia stream distribution service comprising:

a stream forwarding logic to manage receipt and distribution of A/V streams for each client, wherein the stream forwarding logic is to receive a first A/V stream from a first client of the plurality of clients and forwards the first A/V stream to one or more other clients of the plurality of clients;

a multimedia storage service configured to receive and record all A/V streams for all participants on a storage device; and

a dynamic state synchronization service of the virtual conference service to synchronize a speaker queue across the plurality of clients, wherein the speaker queue is associated with a default speaker and the default speaker is to gain access to a current speaker position in the virtual conference when the speaker queue is empty.

2. The virtual conferencing system of claim 1 , wherein the one or more A/V capturing devices comprise video camera to capture video of the participant and microphone to capture audio of the participant.

3. The virtual conferencing system of claim 1 , wherein each client further comprises:

a display on which a graphic user interface (GUI) is rendered to display video from the A/V stream; and

speakers to play audio from the A/V stream.

4. The virtual conferencing system of claim 3 , wherein the A/V stream is streamed to the stream forwarding logic by the virtual conferencing app/browser of the client.

5. The virtual conferencing system of claim 4 , wherein the A/V compression and decompression logic adjusts compression rate for the captured audio and video of the participant depending on a size of a video image of the participant shown within the GUI.

6. The virtual conferencing system of claim 5 , wherein the A/V compression and decompression logic encodes the captured audio and video of the participant at a relatively lower resolution and/or frame rate to provide an acceptable quality for displaying video within the GUI when the participant is not the current speaker.

7. The virtual conferencing system of claim 6 , wherein the size of the video image of the participant shown within the GUI is determined by the virtual conferencing app/browser by reading local state data stored on the client.

8. The virtual conferencing system of claim 7 , wherein the virtual conferencing app/browser specifies a desired bitrate to the A/V compression and decompression logic, the A/V compression and decompression logic then adjusts an encoding resolution and/or frame rate accordingly.

9. The virtual conferencing system of claim 8 , wherein the virtual conferencing app/browser performs dynamic bitrate adaptation based on an available bitrate to the client and requirements for each of a plurality of video regions within the GUI.

10. The virtual conferencing system of claim 1 , wherein the stream forwarding logic distributes A/V stream using a publish/subscribe mechanism where each client subscribes to A/V feed of all other clients and the stream forwarding logic forwards received incoming audio/video feeds to all subscribing clients.

11. The virtual conferencing system of claim 1 , wherein the multimedia storage service is configured to receive from one or more of the plurality of clients a set of audio and/or video clips of the virtual conference that are stored locally on the client.

12. A method comprising:

establishing, by a virtual conferencing service, audio/video (A/V) connections between a plurality of clients and the virtual conferencing service, each client comprising one or more A/V capturing devices to capture audio and video of a participant at the client during the participant's participation in a virtual conference, the virtual conferencing service including a multimedia stream distribution service communicatively coupled to a virtual conferencing app/browser on each client through a web socket connection;

compressing, by a A/V compression and decompression logic of the client, the captured audio and video of the participant to generate an A/V stream, wherein the captured audio and video of the participant is encoded at a relatively higher resolution and/or frame rate when the participant is a current speaker;

receiving a first A/V stream from a first client of the plurality of clients;

forwarding the first A/V stream to one or more other clients of the plurality of clients;

receiving and recording all audio/video streams for all participants on a storage device; and

synchronizing a speaker queue across the plurality of clients, wherein the speaker queue is associated with a default speaker and the default speaker is to gain access to a current speaker position in the virtual conference when the speaker queue is empty.

13. The method of claim 12 , further comprising using video camera to capture video of the participant and using microphone to capture audio of the participant.

14. The method of claim 12 , further comprising:

displaying video from the A/V stream in a graphic user interface (GUI) rendered in a display of the client; and

playing audio from the A/V stream in one or more speakers of the client.

15. The method of claim 14 , further comprising:

streaming the A/V stream to the stream forwarding logic by the virtual conferencing app/browser of the client.

16. The method of claim 15 , further comprising adjusting compression rate for the captured audio and video of the participant based on a size of a video image of the participant shown within the GUI.

17. The method of claim 16 , wherein the captured audio and video of the participant is encoded at a relatively lower resolution and/or frame rate to provide an acceptable quality for displaying video within the GUI when the participant is not the current speaker.

18. The method of claim 17 , further comprising reading local state data stored on the client to determine the size of the video image of the participant shown within the GUI.

19. The method of claim 18 , adjusting an encoding resolution and/or frame rate based on a desired bitrate specified by the virtual conferencing app/browser of the client.

20. The method of claim 19 , performing dynamic bitrate adaptation based on an available bitrate to the client and requirements for each of a plurality of video regions within the GUI.

21. The method of claim 12 , distributing A/V stream using a publish/subscribe mechanism, where each client subscribes to A/V feed of all other clients and the stream forwarding logic forwards received incoming audio/video feeds to all subscribing clients.

22. The method of claim 12 , receiving from each of the plurality of clients a set of audio and/or video clips of the virtual conference that are stored locally on each of the clients.

Continuity (5)
Continuation 15376506 · Dec 12, 2016
Continuation 14675708 · Mar 31, 2015
Provisional Application 61982805 · Apr 22, 2014
Provisional Application 61982807 · Apr 22, 2014
Related Publication 20180227337A1 · Aug 9, 2018
Cited By (7)
US 12,212,425 US 12,244,966 US 12,316,689 US 12,381,928 US 12,483,615 US 12,555,548 US 12,580,783