You’ll notice that we added &videobitrate=6000 to the viewer’s side and not the publishing side. The viewer gets to control the bitrate; every viewer can set their own custom video bitrate in fact. (For some games, a bitrate of 20000-kbps may be needed, but normally that's overkill though, and can actually increase frame loss if it is higher than your connection can handle.)
You can also play with different video codecs; &codec=av1 is a viewer side option and tends to offer better colors and quality than the default vp8 or h264 codecs, but av1 will use a up a lot more CPU.
Another viewer side option is &scale=100, which will disable dynamic fit-to-window scaling optimizations. This is especially valuable if wanting to downlscale 4K to 1080p video, as otherwise VDO.Ninja would limit the resolution to the size of the OBS Browser source window. It can also help when there is more than one video on screen, but do note that disabling the auto-scale optimizations to achieve better quality will increase the CPU and network load for all parties.
Sometimes adding some sharpness to the video as a digital video effect in OBS can help improve video quality, especially for video containing fine-text, like a screen share or video overlay. By default text might look a bit soft with VDO.Ninja, and sharpening can resolve it.
Sender side options
On the publishing side, the default target resolution is already 1280x720 @ 60-fps, but we can set this higher by adding &quality=0 to the push link. This will have the publisher’s side try to make available a 1920x1080 video stream, if their camera or video device supports it. If not, it will fall back to 1280x720p. https://vdo.ninja/?push=streamid&quality=0
For 1080p60 gaming, you’ll want to set the video bitrate to 12000-kbps or higher, as lower bitrates might cause the frame rate to be quite low otherwise. Otherwise, for talking head-type videos, the default video bitrate is often going to be adequate.
Higher resolution streams, especially 1080p60, requires a LOT of CPU power. Having 4-CPU cores is generally recommend for 1080p60 video streams, and 6 to 8 cores are recommended if you are intending to game at the same time.
Up to 4K or beyond is possible as well, but you'll need to manually specify the capture resolution with &width and &height instead, and it will require significantly more CPU and network bandwidth than even 1080p. You can also gently ask for a specific frame rate with &maxframerate=60, which is sometimes needed with certain iPhones to force 60-fps at 1080p.
As VDO.Ninja dynamically also adjusts video resolution and bitrate to match the available Internet connection bandwidth availability, sometimes 1280x720 video resolutions won’t be maintainable. You can run the https://vdo.ninja/speedtest to see if you are able to hit at least 2000-kbps, which is about what is needed for smooth 720p video.
Using Ethernet instead of Wi-Fi will also help to ensure the quality and frame loss at these higher resolutions is obtainable. At higher resolutions, frame rates are more likely to be unstable and the resolution might be throttled to something lower. Packet loss will impact the quality of a video stream quite a bit, and in rare cases, you may need to use &relay or &meshcast mode to assist in overcoming network throttling or routing issues.
Group Room Settings
When in a group room, specifically as a guest or director sharing video with another guest, the video will be limited to 500-kbps by default.
The director can increase the total room bitrate using a slider under the room settings menu; the button for is found in the director's lower menu bar.
You can also use &totalroombitrate=4000 to set a higher room bitrate via the URL, as well as experiment with other bitrate options or trying out &meshcast. Setting the room bitrate too high though can cause everyone in the room to have problems, specifically with overloaded CPUs or network bandwidth saturation. 500-kbps is the default for a reason.