I am trying to develop a Video Calling/Conferencing application using WebRTC and node.js. Right now there is no facility to control bandwidth during during video call. Is there any way to control/reduce bandwidth. (like I want make whole my web application to work on 150 kbps while video conferencing).
Any suggestions are highly appreciated. Thanks in advance.
Not sure if this helps, but you can limit the video resolution from getUserMedia with constraints: see demo at simpl.info/getusermedia/constraints/.
You should also be able to use bandwidth constraints on the stream (see this demo), but it doesn't appear to be working, even in the latest canary (29.0.1529.3).
There's some discussion of the SDP-based approach on the discuss-webrtc mailing list, which links to WebRTC bug 1846.
Try this demo. You can inject bandwidth attributes (
b=AS
) in the session descriptions:b=AS
is already present in sdp fordata m-line
; its default value is50
.Updated at Sept 23, 2015
Here is a library that provides full control over both audio/video tracks' bitrates:
Here is the library code. Its quite big but it works!
Here is how to set advance opus bitrate parameters:
WebRTC is for peer to peer communication, you cannot control bandwidth in video call.
In google chrome there are these properties on a video element:
These are useful to know how fast the client can decode the video. As the video plays you would keep track of the delta amount of these bytes which gives you bytes/s the client is processing the video.(SO thread)
you should use Network Information API to know bandwidth ( it is still under implementation).