May 28th 2020

Version 8 has just released. This change log contains some updates for v7 as well, as v7 was mainly silent infrastructure improvements.

As always, please clear your browser cache in OBS and in your browser if there are problems. This version is not backwards compatible. If problems persist, the previous version can be found at https://obs.ninja/v7

The focus on Version 8 was on UI/UX improvements, bug fixes, and adding some simple feature request.

For reference and details, all the available advanced URL parameters can be found on the updated wiki page: https://github.com/steveseguin/obsninja/wiki/Advanced-Settings

Change Log

  • There are new shortened aliases for most the URL parameters. &view=abc can be typed as &v=abc now, for example. This was done to both allow for obfuscating the URL parameters for links given to guests, but also to allow for shorter links. See the Wiki for details.

  • There is a password feature now. It applies to both rooms and stream IDs. It's a bit crude at present, but if you add &password to the URL as a viewer, director, or pusher, your room and streams will be made inaccessible to anyone who does not also enter the exact same password. Passwords can be entered as the parameter value or you will asked via a popup message prompt.

  • The &secure feature was fixed and improved so that it can support many of the other newly added features. It is useful for one on one conversations that require extreme privacy precautions. It should be compatible with the password feature as well.

  • Added language translations were added thanks to user contributions. The translation system in general was improved and more tools are available to make updating and adding new translations easier. Portuguese and Italian were the newest additions.

  • &icefilter=tcp was added to let users filter out ICE candidates that are UDP-based. This is mainly for debugging and testing for those deploying their own TURN servers.

  • If a user on macOS tries to use VDO.Ninja inside OBS v25 or Streamlabs, they will get an error message with help information. By adding &streamlabs to the URL, that error page will be removed and macOS users using StreamLabs can still try to do so.

  • Although persistence links exist, as per user request I've created the &sticky parameter option that will let a user store their session parameters. The next time the user visit VDO.Ninja, they can auto-load those previous settings, including push and room IDs, from a saved cookie file.

  • If a user fails to connect to the TURN server, which seems to happen occasionally for users that require it, the system will now auto-retry. This mostly fixes an issue with Group chat where not all guests load for all other guests.

  • Audio echo cancellation can be manually and individually turned on or off now via &aec URL parameters. The same goes for auto audio gain (&autogain) and audio noise reduction (&denoise)

  • &webcam and &screenshare will hide either the screenshare option or the webcam option for guest, when appended to their invite links. It helps funnel them to the options you want.

  • &maxvideobitrate can be used by a stream publisher; it sets a hard limit for a viewer so they cannot request a video bitrate higher than that of specified. 2500-kbps is the default.

  • For those wishing to limit the number of viewers of their stream, there is also the &maxviewers now. If the max is hit, other view requests will be ignored. It takes about 10 to 20 seconds for a disconnected users's connection to fully drop, so if you are at max already, you may need to retry connecting 20 to 30-seconds later.

  • If you press CTRL (or Command) AND Left Click your own local video during a stream, you will be shown stats that say how many connections you have; both inbound and outbound streams.

  • If you press CTRL (command) and Left Click on a remote video you are viewing, you will see added stats now; bitrates, but also the type of video codec being used and packet loss data. High packet loss can result in rainbow puke looking video; using VP9 can help resolve that.

  • Fixed a bug with custom bitrates when used with the VP9 video codec. VP9 with custom bitrates will use up a lot of CPU power, but it tends to not suffer from rainbow puke.

  • You can specify the designed audio bitrate now, individually, using &audiobitrate. 60-kbps is the default for mono, while 256-kbps is the default for stereo. 1024-kbps is the coded hard limit.

  • &scale can be used as viewer of a stream; it will request the publisher send video at a scaled down resolution. If the publisher has their max resolution set to 1080p, and you as a viewer set &scale=50, you will only receive the video at a max resolution of 540p; 50% of what is available. This can help give the OBS-side viewer more remote control over resolution and frame rates.

  • &mirror and &flip are commands for the viewer that flips and mirrors the video playback.

  • &optimize, if used in OBS, will have videos that are not active scale down in resolution and bitrate to 600kbps or so. Instead of disabling the Browser Source when not active, you can use this to just reduce the bitrate and CPU load, and it will automatically recover to full bitrate/resolution within about a second of being active again. By default, this feature is off.

  • The TURN server can be forced off with &turn=off now

  • &sink and the electron app lets you specific output audio devices.

  • &channels=8 will tell VDO.Ninja how to upmix audio tracks. This is useful when used in conjunction with &channeloffset

  • &channeloffset=N lets you shift audio from channel 1 to channel N. This is useful for routing audio from Chrome or the electron capture app directly to a specific channel on a virtual audio capture device, like Voicemeeter on Windows.

  • The auto-mixer (for group scenes) works better now; about 30% more efficient with spacing videos out, although it is still optimized for 16:9 aspect ratio videos mainly.

  • Vertical video in the director's room is handled better

  • It's possible to record multiple videos in the director room at a time now; not just one. If you run out of RAM though, the system will crash, so this is still considered experimental.

  • You can start the recording of several videos in the director room at once by holding down CTRL (or command) when pressing "Record" on each video. Defaults bitrate to 2500-kbps per video in this case.

  • The faux FullScreen icon is improved; lots of changes related to that

  • You can now actually full screen videos natively

  • New icons are used; transparent and line-based is the new theme there.

  • A HANG UP button has been added to streaming page now. Press it and all the connections close and the page clears.

  • You can create faux chat rooms by using a combination of multiple view IDs and a push ID. I fixed some bugs related to this feature. https://obs.ninja/view=guest1,guest2,guest&push=guest4

  • Faux chat rooms now work with custom bitrates; normal group "rooms" though have a bitrate that cannot be set by guests themselves.

  • Guests can no longer pause videos.

  • Your own local video stream does not show the control bar anymore -- this prevents guests from unmuting themselves and creating feedback during live streams

  • Stats get updated ever 3 seconds, instead of 5; Buffer sync code also updates more often now. Videos that are not playing also will auto-play with checks every 3 seconds. (user interaction is still needed to trigger this in Chrome)

  • Got rid of the large glow around videos and replaced it with a thin border. This thin border can be used for the tally light feature. In OBS, if a video is toggled into visibility, the guest of that video will see a red border around their video. This indicates that they are visible in OBS and that they may be on-air. It is experimental and can be disabled with *obsoff

  • An error message is given to those with NDI Tools problems when selecting a camera; after 20 seconds it will fail with an error message. Uninstalling NDI tools or updating NDI tools or using Firefox are solutions for now.

  • Lots of UI/UX polish to numerous places, including rounded edges, easier to read fonts, softer colours, etc.

  • If a connection to the handshake server fails, it will retry in 15 seconds, but it will also give a warning that it failed. This error message is mainly to help alert users that they may be blocking the required port to access the service.

  • Created the https://obs.ninja/dock file that can be added to OBS to help auto-generate invite links for users. The drag-into-OBS function has been improved.

  • Removed the messages that a user is trying to use your stream ID; or at least I only show it once.

  • &cleanoutput is now set to hide a lot of error messages and text; useful if you want no error messages or text when doing a live stream in OBS.

  • Fixed an issue with iPhone 6s cameras

  • You cannot pause videos anymore; they will always auto-play if there is a user gesture. Auto play happens every 3 second or less, if event driven.

  • Overlay buttons are generally smaller; &cleanoutput will hide them also

  • State sync remains an issue with adding users to scenes from the Director's room, but you can now hold CTRL (or command) when pressing a button and it will re-issue the existing direction/command ; instead of toggling. This is useful if you wish to sync a scene without having to toggle a video in another scene also.

  • The group room video quality logic is now dependent on how many users are in the room. 1 guest is 300kbps each; while 4 guests is 120kbps each; and etc.

  • Managed to get NDI Tools to work in some more scenarios, but not all.

  • You can pass URLs via command line to the Electron Capture app; v1.0.2 via GitHub releases if you wish to try it.

  • videos load faster when requested and load faster after a disconnection event.

Whew ..., well, I'm sure there are lot more things I've forgotten to mention, but this is about 2 weeks worth of progress. I am heavily inspired by user feedback and requests, so please feel free to send your thoughts my way. You can also add issues or requests directly to the GitHub repo (as an issue); this is the best way to contribute bugs or requests, but I welcome them any way I can get them.

Please let me know if there are any issues or bugs with the new v8 release and I'll have them addressed asap. Thank you everyone; your support has been amazing.


Last updated