You are right that adapting bandwidth between peers is a problem.
The TURN server does not solve this problem, because all it does is provide a stable endpoint, usually for people with very strict NAT settings.
The solution to this problem is scalable video codecs. These video codecs are specifically designed to solve the problem of multi-channel video conferencing. H.264 / SVC is one such scalable codec and is currently used on Google+ Hangouts. VP8 also has temporal and spatial scalability and is used in WebRTC.
Scalable video codecs are designed so that parts of the stream, usually individual UDP packets, can be removed from the stream, while maintaining the ability to decode video with lower quality. At least three types of scalability are used:
- Temporary, in which the number of frames per second decreases.
- Spatial, where the number of pixels decreases.
- Quality at which color solutions are reduced.
If you implement a video conferencing server, you can go to the VP8 stream at a lower level than the WebRTC level, make the necessary changes to each video stream and solve the problem of adapting to bandwidth.
user239558
source share