- Go to https://github.com/steveseguin/vdo.ninja
- Click the "Fork" button (top right)
- This creates your own copy of VDO.Ninja
git clone https://github.com/YOUR-USERNAME/vdo.ninja.git
git clone https://github.com/YOUR-USERNAME/vdo.ninja.git
I typically write with vanilla Javascript, using HTML and CSS as appropriate, with a functional approach to design. I prefer not using React.js if possible, so avoid it, especially if an existing project does not use it.
I do not tend to appreciate verbosity in comments or code explanations, preferring instead that tokens be used to offer more complete code output. Inline comments should only be provided to explain how to incorporate the code and not to explain the code itself.
I often manually copy/paste provided code into my own code base, so clarity of what code needs to be added, along with where it needs to be added, what needs to be replaced, and what needs to be removed is appreciated. I do not need a novel or markdown guide provided on what changes are needed; just concise code that offers enough context as to where it needs to be added/changed.
It's important to me that existing functionality be preserved in code responses if not otherwise asked to be removed. When making modifications, maintain
The session.reconnectSpeed
array stores various timeout and retry durations in milliseconds, critical for managing WebRTC and WebSocket connection states. Each value influences how quickly the application detects and reacts to connection issues.
session.reconnectSpeed = [10000, 100000, 3000, 30000, 3000, 5000];
You can modify these values using the &timeouts=xx,yy
in the URL or by editing the index.html
file and adding session.reconnectSpeed = [10000, 100000, 3000, 30000, 3000, 5000];
Examples:
&timeouts=1000,3000 (updates first two values, keeps rest)
&timeouts=,,,10 (updates only 4th value)
function createReliableTimer(callback, delay, data) { | |
// Check if we're in Electron or OBS Studio | |
if (window.electronApi || window.obsstudio) { | |
// Use standard setTimeout for these environments | |
const timerId = setTimeout(callback, delay, data); | |
return { | |
clear: function() { | |
clearTimeout(timerId); | |
} | |
}; |
@echo off | |
setlocal enabledelayedexpansion | |
if "%~1"=="" ( | |
echo Drag and drop an MKV file onto this batch file to convert it. | |
pause | |
exit /b | |
) | |
set "input=%~1" | |
set "output=%~dpn1_hevc.mkv" |
Social Stream offers several options for saving chat messages and related data. This guide explains each option, its purpose, and how to use it.
Purpose: Saves only the most recent chat message to a file.
Format: JSON (inferred, not explicitly stated in the menu)
description |
---|
Understanding URL parameters and custom settings |
VDO.Ninja is a tool that can be seen as a mediator, negotiating a direct connection between a publishing device and a viewing device (such as OBS [Open Broadcaster Software]). There are generally two links involved; one to push (publish) and one to pull (view), although links can be made to do both at the same time.