August 17th 2020

Welcome to the release of Version 10.

There was a silent version 9 release, which contained mostly bug fixes. Version 10 is a bit more substantial, with several user requested features as the main focus.

As always, please report bugs. If you run into new issues, you can still find the previous version of the app up at https://obs.ninja/v9/

Change log:

Added text messaging CHAT.

-Pretty basic, but meet the needs of many

-red notification bubble implies you have a new message

-basic security/protections added to chat (no links can be sent, etc)

-HTML5 emojis are supported (https://www.w3schools.com/charsets/ref_emoji.asp)

-mobile compatible

-Built to be private and secure -- messages are peer to peer (no server)

Added the ability to Change the audio and video device while live streaming, including the option to screen share

-This was a time-consuming feature to add; please report any bugs you might encounter!

-Press the GEAR icon to bring out the settings menu. Click anywhere outside the menu to close it.

Added additional code to try to fix the OBS Vp8 pixel smearing problem

-Every 3 seconds it checks if there was moderate packet loss, if the codec is vp8, and if OBS is in use.

-If all true, and OBS didn't correct the packet loss, it acts on its own to trick the sender of video to send a keyframe.

-The point of this is to solve the RAINBOW PUKE problem.

-You can disable it with &obsfix=off or whatever.

-Please Report FEEDBACK and ISSUES with this new feature

Added a button that lets you FORCE a keyframe to all your connected viewers.

-If you are doing a live stream, you can use this to "kick" the stream if you start having problems.

-It will lower the video quality for a split second, but if the video is stuck or all smeared, this might help get it back to normal

-You can access this button via the Debug / Stats window on your local video preview (see below).

Improved the Debug Stats window to show things in kbps and to highlight the important stats better

- you can access it via CRTL + LEFT click on the video playback window

- made some UI/UX improvements to the way it can be closed

Added an "auto start" URL parameter that has a user auto-join the video, bypassing the camera/microphone selection page. &autostart, &autojoin, &aj

-Unless otherwise defined, it will use the default audio and video device as inputs/outputs.

-It won't auto start if an error occurs

-The user will still need to press an intial button, which is required to get needed "user gesture" permissions

Added the URL parameter &videodevice that hides the option to select a video device on join.

-if set to 0, it disables video for the guest. They can see video, but can't publish it

-if set to 1, it just hides the video selector; it will use the System Default video device intead.

-if added with no value, it is assumed to be equal to 1 (default camera)

- &vd, &vdevice are aliases

Also added the same function for audio, so &audiodevice hides the option to select audio inputs AND audio outputs.

-I also hide audio output as the goal is to make things less confusion, not more.

-you can still change audio/video via the settings icon once in the app

-you can use "&device" to represent both audio and video together.

Highlight specific videos in the group room

-Expanded &novideo and &noaudio so that streams listed as values are excepted

- https://obs.ninja?room=xxxx&novideo=MainVideo123,other123 --- in this case, MainVideo123 and other123 are both allowed to show video, but all other videos cannot.

- You can use this to have ONE video stream selected for everyone in a group chat, such as the output of OBS. This can help reduce the load on those in the group room, by only needing to pull and push one video stream.

Added the feature request to have bitrates per video be something you can set via the URL.

-so, ?view=aaa,bbb,ccc&videobitrate=100,250,2000

- the first bitrate listed in the list becomes the default bitrate for all non-specified videos

Created a closed captioning (speech to text) translation tool added (https://obs.ninja/speechin)

Created an Invite URL Obfuscator tool with custom URL (https://invite.cam)

Improved the OBS Dock interface; now supports non VDO.Ninja domains

Created a speed test app, https://obs.ninja/speedtest that measure packet loss, transfer bandwidth, and more.

-Useful for analyzing performance and connection issues.

-Just reload if issues occur

πŸ€– Created an IFRAME and DUAL sample page app and an VDO.NINJA API.

I'll go more into this another time, but you can now use VDO.Ninja in an abstracted way via an API messaging layer.-I created the IFRAME sample pages as examples of how to code it.

-You can use it to create custom Control interfaces or custom video layouts

-the speed test uses this API to function; two IFrames + interface, all together.

-IFrames can be embedded into third party website and access data or control using custom interfaces

- https://obs.ninja/iframe (see the code here for reference of how it works)

Prototyped an app that lets you screen share and share your Webcam at the same time.

- Based on the above IFRAME sample code.

- https://obs.ninja/dual

- needs a lot more work, so keep an eye out for it. (It's just a prototype currently)

Made several UI/UX improvements to VDO.Ninja, including a better looking camera selection interface. (margins, paddings, colors, improved)

(Thank you Chris 😎 for the continual feedback on this front)

Support for 60fps @ 1080p with OBS Virtualcam has been tweaked/improved. This is a great way to screen capture a game, versus Chrome's built in screen capture tool.

You can now wait to &view an upcoming stream that gets added to a group room while not part of the room. (passwords are still needed mind you)

If using a password, the Stream ID will be salted so it cannot be found without the password. This was already the case for Room names.

- passwords also encrypt the important parts of the data stream, as to make it impossible to make a peer connection if not correct

Went two months without server downtime or others major issue this summer. 🀯

-Recently tho had to renew SSL certificates, apply system/security maintanence, etc.

The Backup server updated and consolidated into a single dedicated server box. https://backup.obs.ninja

- Also, added better messaging if you get the port 443 error. I also include a link to the Backup server in the message; failsafes ftw!

Video Player and Mirroring logic / UI improved

- When a video is mirrored, it now longer mirrors the video control bar also.

- Default Preview Video Mirroring is disabled for OBS VC, NDI tools, and rear cameras on mobile devices. It's on for others by default.

- Non-essential control bar elements have been deleted, such as the clock timer.

- Video Control bar is no longer visible at all in OBS . Before it unlocked after 3 seconds, but that was still causing some issues it seems

Tool tip added to audio selection menu, which explains how to select more than one audio source for mixing

Added support for iOS 14 Beta, which had a bug that broke the app.

If an OLD iOS device tries to use VDO.Ninja, I give them an error messaging now explaining what iOS versions are supported (iOS 11 and up)

More cameras are supported by Firefox now

Added an error message for MS Internet Explorer users , along with a link to download Chrome

moved the "HELP" icon to the lower right, next to the language locales button.

Numerous css/animation fixes throughout the site.

Pressing the "stop screen sharing" button will let you select a different screen automatically.

-based on user feedback

The manual video bitrate code now has a minimum bitrate floor that is set to 40% of the max bitrate set. I am hoping this adds some added stability to live streams.

I've added shortcut keys for mute / video -- CTRL + m / b , respectively -- on macOS, Mute is Command + ALT + m

Custom TURN server settings via the URL now delete existing TURN servers as options

Spanish, Dutch, and German Added as supported languages (v9 release)

Improved the Electron App

-manually specify width/height on Windows via CLI; also the URL. See the github for it.

-Supports High DPI displays (better performance now)

-Notorized the app for easier installation

-Improved the github website documentation for it

Improved the VOLUME meter visualization

-disabled on iOS since it was causing issues there

-made it more sensitive, horizontal, etc.

Made some minor tweaks to audio and video bitrate functions; hoping to make the packet sizes more appropriate, etc.

if the server disconnects, during a live a stream, there won't be a popup error message.

-only if the initial connection fails will there be an error now

Added Multichannel 5.1 audio support


-add &stereo=4 to both view and push links to try out

When the video preview loads during device selection, the audio is now loaded afterwards and not together.

-speeds up loading of camera and avoids the camera failing if caused by a failed audio device. (and vice versa)

Lots of other minor changes, but that is the meat of it all.

πŸŒ‹ πŸŒ‹ πŸŒ‹

Last but not least, I wanted to say thank you to those who sought out ways to help support VDO.Ninja. I haven't asked for donations, but numerous individuals have done so regardless. It's extremely thoughtful and it has motivated me to work on VDO.Ninja more than I ever thought.

A list of everyone who has contributed via financial sponsorship can be found here: https://github.com/sponsors/steveseguin

There has also been numerous users who have spread the gospel of VDO.Ninja to their colleagues, live stream audience, and others. It's been really rewarding seeing the userbase grow and to be provided with such fantastic feedback. Feedback is at the heart of helping me improve the service, so it is worth its weight in gold to me.

πŸ™ πŸ™ πŸ™ πŸ™

Thank you, everyone.

-Steve Seguin

Last updated