Video bitrate for push/view links

How to control video bitrates for basic push/view links

The default settings

The default video bitrate for simple push/view links is 2500-kbps.

https://vdo.ninja/?push=streamid https://vdo.ninja/?view=streamid By default, both outgoing and incoming video bitrates are set at 2500-kbps. This default setting and parameters are different if using Rooms and explained in detail here.

There are five parameters we will take a look at:

  1. &videobitrate (&vb) -> view side

On the source side (&push)

&outboundvideobitrate (&ovb) Sets the sender-side default target bitrate for outgoing streams.

https://vdo.ninja/?push=streamid&ovb=4000 https://vdo.ninja/?view=streamid The push link sets the outgoing default target to 4000-kbps. The view link doesn't need an additional parameter unless you want to override the default.

https://vdo.ninja/?push=streamid&ovb=4000 https://vdo.ninja/?view=streamid&vb=2000 In this case the viewer requests 2000-kbps, which overrides the push-side default target (unless capped by a max).

Depending on browser/negotiation, &ovb can be enforced via SDP munging and may also cap the maximum bitrate.

&maxvideobitrate (&mvb) &mvb sets a software-enforced cap per stream out. Viewer requests (&vb) and sender defaults (&ovb) cannot exceed it.

https://vdo.ninja/?push=streamid&mvb=1000 https://vdo.ninja/?view=streamid Every view link will be capped to 1000-kbps, even if it requests a higher bitrate.

&limittotalbitrate (&ltb) Limits the total outbound video bitrate to a defined value.

https://vdo.ninja/?push=streamid&ltb=5000 https://vdo.ninja/?view=streamid The incoming video bitrate will still default to around 2500-kbps but permits the viewer to increase it on their end with &ltb telling the push link to not get higher than 5000-kbps total outgoing bitrate.

On the viewer side (&view)

&videobitrate (&vb) The view link is setting the target video bitrate per incoming stream.

https://vdo.ninja/?push=streamid https://vdo.ninja/?view=streamid&vb=2000 The view link is setting the bitrate per incoming stream (in this case 2000-kbps). So if you have a view link with three incoming video feeds: &view=stream1,stream2,stream3 - every source is pushing 2000-kbps as &vb=2000 and the view link has a combined bitrate of 6000-kbps.

Depending on browser/negotiation, &vb can be enforced via SDP munging and may also cap the maximum bitrate.

&totalscenebitrate (&tsb) This is similar to &vb but it sets the target and maximum bitrate for all incoming streams combined.

https://vdo.ninja/?push=streamid https://vdo.ninja/?view=streamid&tsb=3000 So if you have a view link with three incoming video feeds: &view=stream1,stream2,stream3 - every source is pushing 1000-kbps as &tsb=3000.

Mixing the parameters

As doing some testing there were these results:

All three push parameters cap the maximum. If you set one of these values, the outgoing video bitrate will never be higher than that limit.

&tsb always limits the bitrate on the viewer side (total across streams). &vb sets the viewer target per stream, but it can be capped by sender-side limits or SDP munging.

  • &vb overrides the default target from &ovb

  • &mvb is a software max cap, regardless of &vb or &ovb

  • &tsb caps the total incoming bitrate across all streams

Video Bitrate ParametersVideo bitrate in rooms

Last updated

Was this helpful?