WHAT IS CLAIMED IS:
1. A method for providing data to a plurality of clients (110, 130, 140, 150) the
method comprising:
each of the plurality of clients (110, 130, 140, 150) registers with a video conference server (120) and establishes at least one capability associated with the at least one of the plurality of clients (110, 130, 140, 150), the capability comprising at least the available data encoding and decoding capabilities of the client;
receiving (440), at the video conference server (120), a plurality of data streams (310, 320, 330) from at least one of the plurality of clients (110, 130, 140, 150);
analyzing (430), at the video conference server (120), at least one capability associated with at least one of the plurality of clients (110, 130, 140, 150);
choosing (450), at the video conference server (120), at least one of the plurality of data streams (310, 320, 330) to send to the at least one of the plurality of clients (110, 130, 140, 150) based on the analyzed at least one capability comprising choosing at least one received stream to be send to each client based on the determined encoding capabilities each client is capable of decoding;
sending (460), from the video conference server (120), the chosen at least one of the plurality of data streams (310, 320, 330) to the at least one of the plurality of clients (110, 130, 140, 150); and
periodically re-evaluating each client’s encoding and decoding capabilities and dynamically altering what encoding capabilities are requested for video streams for each client.
2. The method as claimed in Claim 1, wherein analyzing (430) at least one capability associated with the at least one of the plurality of clients (110, 130, 140, 150) comprises analyzing a bandwidth of at least one communication medium associated with at least one of the plurality of clients (110, 130, 140, 150).
3. The method as claimed in Claim 2, wherein the at least one communication medium associated with at least one of the plurality of clients (110, 130, 140, 150) comprises at least one of the following: an intranet and the Internet (160).
4. The method as claimed in Claim 1, wherein analyzing (430) the at least one capability associated with the at least one of the plurality of clients (110, 130, 140, 150) comprises analyzing a data processing capability associated with at least one of the plurality of clients (110, 130, 140, 150).
5. The method as claimed in Claim 1, wherein analyzing (430) the at least one capability associated with the at least one of the plurality of clients (110, 130, 140, 150) comprises determining (510) at least one video decoding capability.
6. The method as claimed in Claim 1, wherein at least one first client of the plurality of clients (110, 130, 140, 150) is associated with a plurality of data streams (310, 320, 330) and wherein at least one first data stream of the plurality of data streams (310, 320, 330) comprises a higher resolution version of at least one second data stream of the plurality of data streams (310, 320, 330).
7. The method as claimed in Claim 6, wherein analyzing (430) the at least one capability associated with the at least one of the plurality of clients (110, 130, 140, 150) comprises determining (540) whether at least one second client of the plurality of clients (110, 130, 140, 150) is capable of decoding the at least one first data stream.
8. The method as claimed in Claim 6, wherein analyzing (430) the at least one capability associated with the at least one of the plurality of clients (110, 130, 140, 150) comprises determining (550) whether at least one second client of the plurality of clients (110, 130, 140, 150) has sufficient bandwidth to receive the at least one first data stream.
.
9. A system (600) for providing rate matching in a video conference, the system
comprising:
a memory storage;
a network connection device; and
a processing unit (602) coupled to the memory storage, wherein the processing
unit is operative to:
register (420)at least one first video conference client and at least one second video conference client operatively connected to the system via the network connection device, wherein being operative to register the at least one first video conference client and the at least one second video conference client comprises being operative to establish (430) at least one capability for the at least one first video conference client and the at least one second video conference client, wherein the at least one capability comprises at least one of: an available bandwidth, a maximum encoding resolution, and a maximum decoding resolution and the capability comprising at least the available data encoding and decoding capabilities of the client;
receive (440)a plurality of video streams (310, 320, 330) from the at least one first video conference client, wherein the plurality of video streams (310, 320, 330) comprise at least one first video stream and at least one second video stream wherein the at least one first video stream comprises a higher resolution video stream than the at least one second video stream;
determine (450), based on the established at least one capability for the at least one second video conference client, whether the at least one second video conference client can receive the at least one first video stream wherein being operative to determine that the at least one second video conference client can receive the at least one first video stream comprises being operative to determine at least one of: whether the at least one second video conference client can decode the at least one first video stream and whether the at least one second video conference client has sufficient bandwidth of a communication medium available to receive the at least one first video stream without dropping at least one B-frame from the at least one first video stream comprising choosing at least one received stream to be sent to each of the client based on the determined encoding capabilities each client is capable of decoding;
in response to determining that the at least one second video conference client can receive the at least one first video stream, send (460) the at least one first video stream to the at least one second video conference client without decoding the at least one first video stream by the system; and
periodically re-evaluate each client’s encoding and decoding
capabilities and dynamically alter what encoding capabilities are requested for
video streams for each client.
10. The system as claimed in Claim 9, wherein the at least one communication
medium associated is at least one of the following: an intranet and the Internet (160).