Methods and systems for interfacing heterogeneous endpoints and web-based media sources in a video conference
First Claim
1. A method for processing audio/video (A/V) streams of a video conference at one or more servers, the method comprising:
- for each of a plurality of user endpoints of the video conference;
receiving an A/V stream, the A/V stream encoded in a format that is proprietary to a media provider of the A/V stream; and
transcoding the A/V stream by (i) decoding the A/V stream using a client application from the media provider, the client application executing at a virtual machine instantiated on the one or more servers, and (ii) encoding the decoded A/V stream into a format that is compatible with a media mixer,wherein each of the virtual machines instantiated on the one or more servers only executes a single client application, andwherein load prediction is employed to minimize a number of virtual machines that are instantiated on the one or more servers at any time instance, the load prediction comprising;
predicting a first number of client applications that will be needed at a first time instance to decode the A/V streams received at the one or more servers;
before the first time instance, (i) deploying the first number of virtual machines on the one or more servers, and (ii) installing the first number of client applications, one on each of the deployed virtual machines;
at the first time instance, determining whether an additional number of client applications are needed to decode the A/V streams, the additional number of client applications in excess of the first number of client applications; and
if an additional number of client applications are needed, (i) deploying a corresponding number of additional virtual machines on the one or more servers, and (ii) installing the additional number of client applications, one on each of the additional virtual machines.
5 Assignments
0 Petitions
Accused Products
Abstract
Described herein are methods and systems for interfacing heterogeneous endpoints and web-based media sources in a video conference. Interfacing heterogeneous endpoints can be challenging due to audio/video (A/V) streams being encoded in a format that is proprietary to a media provider of the A/V stream (e.g., format that is proprietary to Skype). To address such a challenge, a client application from the media provider may be installed at a virtual machine, and may be used to decode A/V streams that are encoded in a format proprietary to the media provider. Further, to display content from a web-based media source (e.g., YouTube) in a video conference, a browser may be installed at a virtual machine, and may be used to virtually render a media signal from the web-based media source, such virtually rendered media signal subsequently being captured and presented in a video conference.
-
Citations
10 Claims
-
1. A method for processing audio/video (A/V) streams of a video conference at one or more servers, the method comprising:
-
for each of a plurality of user endpoints of the video conference; receiving an A/V stream, the A/V stream encoded in a format that is proprietary to a media provider of the A/V stream; and transcoding the A/V stream by (i) decoding the A/V stream using a client application from the media provider, the client application executing at a virtual machine instantiated on the one or more servers, and (ii) encoding the decoded A/V stream into a format that is compatible with a media mixer, wherein each of the virtual machines instantiated on the one or more servers only executes a single client application, and wherein load prediction is employed to minimize a number of virtual machines that are instantiated on the one or more servers at any time instance, the load prediction comprising; predicting a first number of client applications that will be needed at a first time instance to decode the A/V streams received at the one or more servers; before the first time instance, (i) deploying the first number of virtual machines on the one or more servers, and (ii) installing the first number of client applications, one on each of the deployed virtual machines; at the first time instance, determining whether an additional number of client applications are needed to decode the A/V streams, the additional number of client applications in excess of the first number of client applications; and if an additional number of client applications are needed, (i) deploying a corresponding number of additional virtual machines on the one or more servers, and (ii) installing the additional number of client applications, one on each of the additional virtual machines. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for processing audio/video (A/V) streams of a video conference at one or more servers, the method comprising:
-
for each of a plurality of user endpoints of the video conference; receiving an A/V stream; determining whether the A/V stream is in a format that is compatible with a media mixer; if the A/V stream is in a format compatible with the media mixer, not transcoding the A/V stream; otherwise, if the A/V stream is not in a format compatible with the media mixer, transcoding the A/V stream, the transcoding comprising; determining a media provider associated with the A/V stream; determining whether an application software development kit (SDK) from the media provider is available at the one or more servers; if the application SDK from the media provider is available, decoding the A/V stream using the application SDK from the media provider, otherwise, if the application SDK from the media provider is not available, decoding the A/V stream using a client application from the media provider, the client application executing at a virtual machine instantiated on the one or more servers; and encoding the decoded A/V stream into a format compatible with the media mixer, wherein each of the virtual machines instantiated on the one or more servers only executes a single client application; composing, at the media mixer, a plurality of ones of the transcoded A/V streams and the not transcoded A/V streams into one composite A/V stream; and encoding the composite A/V stream into a format that is compatible with one of the user endpoints, wherein load prediction is employed to minimize a number of virtual machines that are instantiated on the one or more servers at any time instance, the load prediction comprising; predicting a first number of client applications that will be needed at a first time instance to decode the A/V streams received at the one or more servers; before the first time instance, (i) deploying the first number of virtual machines on the one or more servers, and (ii) installing the first number of client applications, one on each of the deployed virtual machines; at the first time instance, determining whether an additional number of client applications are needed to decode the A/V streams, the additional number of client applications in excess of the first number of client applications; and if an additional number of client applications are needed, (i) deploying a corresponding number of additional virtual machines on the one or more servers, and (ii) installing the additional number of client applications, one on each of the additional virtual machines.
-
-
10. A method for incorporating one or more web-based media sources into a video conference, the method comprising:
-
for each of the one or more web-based media sources; receiving a media signal from the web-based media source; virtually rendering the media signal using a browser executing on a virtual machine instantiated on one or more servers; capturing one or more of an audio stream, a video stream and an image associated with the virtually rendered media signal; and encoding one or more of the captured audio stream, the captured video stream and the captured image into a format compatible with a media mixer, wherein each of the virtual machines instantiated on the one or more servers only executes a single browser; composing, at the media mixer, one or more of the encoded audio streams, the encoded video stream and the encoded images with one or more audio and video (A/V) streams associated with user endpoints of the video conference to form a composite A/V stream; and encoding the composite A/V stream into a format that is compatible with one of the user endpoints, wherein load prediction is employed to minimize a number of virtual machines that are instantiated on the one or more servers at any time instance, the load prediction comprising; predicting a first number of browsers that will be needed at a first time instance to virtually render the media signals received at the one or more servers; before the first time instance, (i) deploying the first number of virtual machines on the one or more servers, and (ii) installing the first number of browsers, one on each of the deployed virtual machines; at the first time instance, determining whether an additional number of browsers are needed to decode the A/V streams, the additional number of browsers in excess of the first number of browsers; and if an additional number of browsers is needed, (i) deploying a corresponding number of additional virtual machines on the one or more servers, and (ii) installing the additional number of browsers, one on each of the additional virtual machines.
-
Specification