v22 👑

Long overdue, but full of riches

https://vdo.ninja/v22/

This release was long overdue, but with the previous release being so successful, it gave me the opportunity to rework and expand some core logic, and also branch off with some new related product offerings based on VDO.Ninja.

If you have problems with version 22, version 21 can be accessed here: https://vdo.ninja/v21/

Featured new apps and tools 🔥

  • Versus.cam - Optimized for E-Sports and high-bandwidth video stream monitoring https://versus.cam/

  • Mixer app - No longer just a proof of concept, the mixer app can be used to create custom layouts for VDO.Ninja, and even remotely change your OBS scenes to sync with your VDO.Ninja layouts. https://vdo.ninja/mixer

  • Comms.cam - A simple mobile-friendly audio-centric group chat designed for producing https://comms.cam

  • Check app - Similar to the speedtest tool, the check app offers a way to share results of network performance and browser specifications obtained thru a quick test. It can be used to catch any red flags with guests ahead of a show when tight on time. https://vdo.ninja/check

All new parameters can be found here: https://docs.vdo.ninja/advanced-settings/new-parameters-in-version-22

  • Directors can now toggle between the control center view and a preview guest-mode

  • Bitfocus Companion has a plugin for VDO.Ninja to remotely control it via the improved API

  • Room clock and global countdown timer available to the director to enable dynamically

  • Screen sharing while in a group room has been improved with better layouts and clarity

  • Last-selected audio and video devices, and some settings, will be preselected on next visit

  • Directors and co-directors stay in sync now, with respect to most button changes

  • The Android app version (on Google Play store) supports publishing to rooms now

  • Added &effects=7 (or &effects=zoom), which will provide a manual digital zoom option in the effects menu, compatible even with devices that would otherwise not support zooming.

  • Added the ability for VDO.Ninja to Remotely Control OBS Studio while streaming/directing. See the parameter &controlobs

  • Updated the local audio controls to have an improved NOISE GATE option

List of some other changes 📃

Due to the vast number of changes in this update, this is an incomplete list of changes. A timeline of all changes can be found here though: https://docs.vdo.ninja/updates/updates-vdo.ninja#august-31

  • You can use &sync with the &buffer command to now lock audio exactly in sync with the video when buffering; before &sync auto-enabled when using &buffer, but no more.

  • &sync will speed up and slow down audio to keep it in sync now, rather than skipping chunks of audio. This will reduce clicking, but can introduce pitch shift distortion.

  • Fixed an issue with iPhones where changing the camera caused your own preview video to go small.

  • &screensharebitrate now works outside of group rooms, even with basic push/view links.

  • Added the "mic delay" option as a slider to the director's control; it's available by default, with up to 500-ms of delay ready. If you make use of it, it will "enable" the &micdelay web audio node remotely if not yet on, which might cause a clicking sound. Hoping that this though can help with problematic guests who might be out of sync. This is not the same as &buffer or &sync delay, which are a view-side parameters.

  • &micdelay, if used on a basic push link, will show the mic delay as a slider now also. So you can adjust it as needed. I don't show the slider by default unless using the URL parameter, as I don't think its a commonly used feature.

  • Added an option called &hidehome, which hides the VDO.Ninja homepage and many links that lead to it. You can also enable at a code level with session.hidehome=true;, which is useful if doing a self-deployment, where you don't want anyone to stumble onto the site and start using it. You'll still be able to join push links and create rooms via URL parameters, but that's about it.

  • Added the &clock parameter, which shows the current time in the lower right; this can be applied to pretty much all link types. The director has a button that lets them enable the clock for everyone in the room (via the director's room settings button).

  • Added new sender-side parameters that can customize how you want VDO.Ninja to balance resolution vs frame rate, specifically when bitrate or CPU is insufficient to offer both at the same time.

  • &grid command can be customized with a custom image now, allowing for an overaly on the guest's video preview.

  • Chunked mode should work with audio-only or video-only tracks now (see &chunked).

  • Bugs with &screensharetype=3 have been resolved.

  • &aspectratio now works with screen shares, so you can force crop an incoming screen share to be a certain aspect ratio.

  • When the director talks to you in solo-talk mode, the other guests in the room now drop to 25% volume. This way the guest the director is talking to can hear the director more clearly (by request).

  • Added https://updates.vdo.ninja/, which will mirror the updates from this discord 📑│updates channel, which should be helpful for those not using Discord to see development progress. (updated via our custom-made Discord Bot, available on GitHub).

  • Fixed a bug where if the director is highlighted, any newly loaded scenes would be blank.

  • The &webp mode has been modified a bit. Main change is that you now enable it by add &webp to the sender's URL, and &codec=webp to the viewer's URL (otherwise, it falls back to normal video mode). No need for &broadcast anymore. (as a reminder, this mode sends the video as a series of low-quality images, rather than a more efficient video stream).

  • Added the ability to "tap to focus" when a camera supports focusing.

  • Added an option (&postimage) to post a snapshot of your local camera to a HTTPS/POST URL (blob/jpeg).

  • The &website function now lets you start/stop and change website sources; no longer is it just one site and that's it. (only the director previously could change websites constantly).

  • Tweaked the mic meter (3x more intense) and added a visual meter to the settings menu; should help judging if you're mic is active easier.

  • The WSS API (wss://api.vdo.ninja) has been expanded to include hang up events for publishers, along with viewer-side events for incoming connections/streams. These efforts will lead to a richer Streamdeck integration. (Bitfocus Companion supported)

  • Add &background, which accepts a URL-encoded image URL to make as the app's default background.

  • Been playing around a new flag called &flagship, which will optimize the mobile experience for more capable smartphones; essentially, streaming higher quality video to other guests versus the normal mobile-performance mode.

  • Option to randomly generate a room name has been added to the room-creation page.

  • Video/audio stats for Firefox have been improved; resolution, framerate, codec, bitrate.

  • Using the &api remote API option, you now can get STATE values as the reply to a GET/POST/WSS request. So if you do https://api.vdo.ninja/c6sWHN9zzX/group/null/1, with &api=c6sWHN9zzX added to the director's URL, you will toggle the director in and out of GROUP 1.

  • Fixed an issue where if you did right-click -> record of a inbound-video, and then hung up without stopping the recording, the recording wouldn't stop and finalize.

  • &sensor now also includes speed and altitude data (on production).

  • Improved logic for determining best turn server to use, if needed. Many new servers added as well.

  • Added new viewer-side parameters that can be used in place of &scale; &viewheight=180&viewwidth=320, (aka &vw/&vh) which effectively does the same thing as &scale, but instead you pass a resolution.

  • Added options to host your own default background images for the virtual background effect; &imagelist=xxxx can be used to pass a list of images via the URL. Code to generate the list properly can be found here: https://jsfiddle.net/steveseguin/w7z28kgb/ (images must be cross origin enabled).

Above is just a snippet of all the changes; please visit the following link for a list of all changes, as a chronological time-line of updates: https://docs.vdo.ninja/updates/updates-vdo.ninja#august-31

A big Thank You 💖

​I'd like to thank JK14, leb, SilverServerT, and the many others for helping out with the community on Discord with user support during development of version 22. JK14 also made significant contributions towards organizing and updating the documentation, while leb rewrote our beloved Discord Ninja bot to be better than ever, so many thanks there. We also had a Sam MacKinnon revamp the IFrame sandbox page, which looks and works great.

Thank you to everyone who has reported bugs as well.

I'd also like to thank everyone else who made a contribution to the project, not least the sponsors and donors; your generosity is sincerely valued.

~ steve seguin

Last updated