Synchronization and Mixing of Audio and Video Streams in Network-Based Video Conferencing Call Systems
First Claim
Patent Images
1. A computer-implemented method for mixing audio streams from N senders, N at least two, the method comprising:
- receiving the N audio streams over a network, the audio streams divided into audio chunks;
buffering the audio chunks;
opening a mix;
cycling through the N senders, for each sender on each cycle;
if the sender is not yet in the mix, adding the sender'"'"'s audio chunk to the mix if the missing audio chunk is available from the buffer; and
closing the mix if either audio chunks from all N senders are in the mix or if a predetermined early close condition is met.
2 Assignments
0 Petitions
Accused Products
Abstract
In one aspect, audio streams are added to a mix until the mix is either complete (i.e., all audio streams have been added) or the mix is closed early (i.e., before the mix is complete). In another aspect, audio and video streams are synchronized by playing back the audio stream and then synchronizing display of the video frames to the playback of the audio stream.
69 Citations
22 Claims
-
1. A computer-implemented method for mixing audio streams from N senders, N at least two, the method comprising:
-
receiving the N audio streams over a network, the audio streams divided into audio chunks; buffering the audio chunks; opening a mix; cycling through the N senders, for each sender on each cycle; if the sender is not yet in the mix, adding the sender'"'"'s audio chunk to the mix if the missing audio chunk is available from the buffer; and closing the mix if either audio chunks from all N senders are in the mix or if a predetermined early close condition is met. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method for mixing audio streams from N senders, N at least two, the method comprising:
-
opening a mix; receiving the N audio streams over a network, the audio streams divided into audio chunks; as each sender'"'"'s audio chunk is received; if the sender is not yet in the mix and the received audio chunk is the correct audio chunk for the mix, adding the sender'"'"'s audio chunk to the mix; otherwise, buffering the sender'"'"'s audio chunk for a future mix; and closing the mix if either audio chunks from all N senders are in the mix or if a predetermined early close condition is met. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A computer-implemented method for synchronizing an audio stream and a video stream, the method comprising:
-
playing the audio stream as a series of audio chunks; determining if a current frame of the video stream should occur during the playing of a current audio chunk; if the current frame should occur during a time period calculated for the current audio chunk, then displaying the current frame and moving to a next frame; if the current frame should occur after said time period, then waiting; and if the current frame should have occurred before said time period, then discarding the current frame and moving to a next frame. - View Dependent Claims (18, 19)
-
-
20. A computer-implemented method for producing a video conference display for a receiver participant, the method comprising:
-
receiving over a network two or more audio streams and one or more video streams from two or more sender participants, the audio streams divided into audio chunks and the video stream(s) divided into video frames; generating and playing a composite audio stream of the received audio streams, said generating and playing comprising repeating the steps of; opening a mix; adding sender'"'"'s audio chunks to the mix; closing the mix if either audio chunks from all senders are in the mix or if a predetermined early close condition is met; and playing the mix; and repeatedly determining if a current frame of the video stream should occur during the playing of a current mix; if the current frame should occur during a time period calculated for the current mix, then displaying the current frame and moving to a next frame; if the current frame should occur after said time period, then waiting; and if the current frame should have occurred before said time period, then discarding the current frame and moving to a next frame. - View Dependent Claims (21, 22)
-
Specification