> For the complete documentation index, see [llms.txt](https://docs.vdo.ninja/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vdo.ninja/guides/how-do-i-control-bitrate-quality.md).

# How to control bitrate/quality

<figure><img src="/files/zsfGcLcg3HioPwBzbEae" alt="Infographic explaining how Chrome WebRTC adapts video quality by changing bitrate, resolution, and frame rate as network conditions change"><figcaption><p>WebRTC automatically ramps quality up and down. URL parameters can set targets or limits, but the browser still reacts to the live network.</p></figcaption></figure>

## Video Bitrate

The bitrate controls are accessible via a URL parameter that can be added to the VIEW link.

Something like [https://vdo.ninja/?view=yyyyy\&bitrate=10000 ](https://vdo.ninja/?view=yyyyy\&bitrate=10000)will let the viewer request set a 10-mbps bitrate; up to around 20000-kbps is reasonable, but higher is possible in situations. The value is in kilobits per second and the default bitrate is 2500-kbps.

The viewer sets the bitrate generally, although you can set maximum allowed bitrates as the publisher of a stream. See the advanced settings in the wiki for more help here; there are many options available.

When in a group room, the guests will generally get a very low-quality preview of the stream. This can be changed with the [`&totalroombitrate`](/advanced-settings/video-bitrate-parameters/and-totalscenebitrate/totalroombitrate.md) parameter or via the room's director settings menu. The higher the room bitrate however, the more CPU and Network load will be placed on those in the room.

When dealing with a group scene link, you can use [`&bitrate`](/advanced-settings/video-bitrate-parameters/bitrate.md) as normal, or `&totalbitrate`. There are many [other ways to control bitrates](#more-details), in both rooms and push links, with these being the standard options.

## Resolution

When `&quality` is omitted, VDO.Ninja selects an initial camera tier from the device type, available CPU cores, reported memory, and whether the guest is joining a room. The [`&quality`](/advanced-settings/video-parameters/and-quality.md) parameter overrides that choice with a non-strict resolution preset: `&quality=0` targets 1920x1080, `&quality=1` targets 1280x720, and `&quality=2` targets 640x360. The actual frame rate remains device- and browser-dependent unless a frame-rate parameter is also used.

You can manually set the video resolution via the URL, using `&width=1920&height=1080`, and this might be helpful when dealing with non-standard aspect-ratios.

{% hint style="info" %}
If using the OBS Virtual Camera as a source, be sure to activate it in OBS before trying to access it with VDO.Ninja with non-standard resolutions set.
{% endhint %}

The resolution can also be set on the viewer-side via the `&scale=100` parameter. This scales down the resolution, as a percentage, based on the original camera capture resolution.

By default, VDO.Ninja will try to optimize and scale down the incoming resolution to fit the viewer's window size, but sometimes you might want to disable this. Adding `&scale=100` to the view link can achieve that, as it forces 100% scale, or no scaling in other words.

VDO.Ninja may still scale the video down however, although only if the connection between the two peers is having network issues, if the sender's encoder is having issues, or if the set bitrate is too low to sustain the higher resolution.

## Audio

You can improve audio quality in the same way, by increasing the [`&audiobitrate`](/advanced-settings/audio-parameters/audiobitrate.md), but you can get better results by just disabling noise and echo cancellation instead.

[`&proaudio`](/advanced-settings/audio-parameters/stereo.md) is flag that presets many audio options, which can be added to both the sender's and viewer's link to enable stereo audio with no audio processing and a very high audio bitrate set. You may need to be using headphones, especially if in a group room, if using [`&proaudio`](/advanced-settings/audio-parameters/stereo.md) or if disabling the echo cancellation features.

## More Details

{% content-ref url="/pages/wJQGxl0KrTeLughBKsSK" %}
[Video bitrate for push/view links](/guides/video-bitrate-for-push-view-links.md)
{% endcontent-ref %}

{% content-ref url="/pages/cmIArVZ1ZIIeKoPAl7As" %}
[Video bitrate in rooms](/guides/video-bitrate-in-rooms.md)
{% endcontent-ref %}

{% content-ref url="/pages/NmRgCa47zHu4aeeDEwDJ" %}
[Audio Filters & Bitrate](/guides/audio-filters.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.vdo.ninja/guides/how-do-i-control-bitrate-quality.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
