For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

Diagram showing that the push source link can set outgoing defaults and caps while the view or OBS link requests incoming bitrate
The source can set defaults and caps, but the view or OBS link usually requests the incoming bitrate.

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?