Skip to content

Commit c0bfb22

Browse files
committed
making a mess of the documentation
1 parent 1168962 commit c0bfb22

File tree

20 files changed

+1524
-86
lines changed

20 files changed

+1524
-86
lines changed

.claude/settings.local.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(grep:*)",
5+
"Bash(git checkout:*)",
6+
"Bash(find:*)",
7+
"Bash(rg:*)"
8+
],
9+
"deny": []
10+
}
11+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# &bufferaudio
2+
3+
**Also known as:** `&audiobuffer`
4+
5+
#### **Description**
6+
7+
Sets a minimum audio buffer duration in milliseconds for incoming audio streams to improve playback stability.
8+
9+
#### **Viewer-Side Option**
10+
11+
This parameter controls the audio buffering for received streams, helping to smooth out network jitter.
12+
13+
#### **Usage**
14+
15+
* **`&bufferaudio=100`** - Sets 100ms audio buffer
16+
* **`&bufferaudio=250`** - Sets 250ms audio buffer
17+
* **`&bufferaudio=0`** - Minimal buffering (lowest latency)
18+
* **`&audiobuffer=200`** - Alias usage
19+
20+
#### **Examples**
21+
22+
```
23+
https://vdo.ninja/?view=streamID&bufferaudio=150
24+
https://vdo.ninja/?scene=1&room=roomname&bufferaudio=200
25+
https://vdo.ninja/?director&room=roomname&audiobuffer=100
26+
```
27+
28+
#### **Details**
29+
30+
* Value in milliseconds (ms)
31+
* Higher values increase stability but add latency
32+
* Lower values reduce latency but may cause glitches
33+
* Helps with poor network conditions
34+
* Only affects received audio, not sent audio
35+
36+
#### **Recommended Values**
37+
38+
* **0-50ms**: Ultra-low latency, stable networks only
39+
* **100-200ms**: Good balance for most situations
40+
* **250-500ms**: Poor network conditions
41+
* **500ms+**: Very unstable connections
42+
43+
#### **Trade-offs**
44+
45+
**Low Buffer (0-50ms):**
46+
- ✅ Minimal latency
47+
- ❌ May glitch on poor networks
48+
- ❌ Sensitive to jitter
49+
50+
**High Buffer (200ms+):**
51+
- ✅ Smooth playback
52+
- ✅ Handles network issues
53+
- ❌ Noticeable delay
54+
55+
#### **Use Cases**
56+
57+
* Music performances requiring sync
58+
* Interviews over unstable connections
59+
* International calls with high latency
60+
* Mobile connections with variable quality
61+
62+
#### **Notes**
63+
64+
* Independent from video buffering
65+
* Applies to all incoming audio streams
66+
* May affect lip-sync at high values
67+
* Consider network conditions when setting
68+
69+
#### **Related Parameters**
70+
71+
* [`&buffer`](../view-parameters/buffer.md) - Video buffer control
72+
* [`&buffer2`](../video-parameters/and-buffer2.md) - Alternative buffer method
73+
* [`&audiolatency`](../newly-added-parameters/and-audiolatency.md) - Audio latency control
74+
* [`&sync`](../view-parameters/sync.md) - Audio/video synchronization
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# &outboundsamplerate
2+
3+
**Also known as:** `&obsr`
4+
5+
#### **Description**
6+
7+
Sets the sample rate for outbound audio processing in the web audio pipeline.
8+
9+
#### **Sender-Side Option**
10+
11+
This parameter controls the sample rate used for audio resampling before transmission.
12+
13+
#### **Usage**
14+
15+
* **`&outboundsamplerate=48000`** - Sets sample rate to 48kHz (default in v24+)
16+
* **`&outboundsamplerate=44100`** - Sets sample rate to 44.1kHz
17+
* **`&outboundsamplerate=0`** - Disables resampling
18+
* **`&obsr=48000`** - Short alias for the parameter
19+
20+
#### **Examples**
21+
22+
```
23+
https://vdo.ninja/?push=streamID&outboundsamplerate=48000
24+
https://vdo.ninja/?push=streamID&obsr=44100
25+
https://vdo.ninja/?push=streamID&outboundsamplerate=0
26+
```
27+
28+
#### **Details**
29+
30+
* In VDO.Ninja v24+, audio is automatically resampled to 48kHz for web audio processing
31+
* This parameter allows override of the default resampling behavior
32+
* Audio is encoded to 48kHz by Opus regardless of this setting
33+
* Mainly useful for debugging or testing audio issues
34+
35+
#### **Platform Behavior**
36+
37+
* **Chrome/Chromium:** Resampling enabled by default (can be disabled)
38+
* **Firefox/Safari:** No default resampling (can be force-enabled)
39+
* **Mobile browsers:** No default resampling (can be force-enabled)
40+
41+
#### **Important Notes**
42+
43+
* High sample rates can crash the web audio pipeline
44+
* Avoid sample rates above 48kHz
45+
* Setting to 0 or omitting value disables resampling
46+
* Using `&noap` disables the entire web audio pipeline
47+
48+
#### **Technical Background**
49+
50+
* Resampling ensures consistent audio processing across different input devices
51+
* Helps prevent audio glitches with certain hardware configurations
52+
* Final transmission uses Opus codec at 48kHz regardless
53+
54+
#### **Related Parameters**
55+
56+
* [`&samplerate`](../view-parameters/and-samplerate.md) - Sets playback sample rate (viewer-side)
57+
* [`&noaudioprocessing`](../../general-settings/noaudioprocessing.md) - Disables audio processing
58+
* [`&audiocodec`](minptime-1.md) - Selects audio codec
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# &preferaudiocodec
2+
3+
#### **Description**
4+
5+
Sets the preferred audio codec for outgoing streams, allowing the sender to specify which audio codec they prefer to use.
6+
7+
#### **Sender-Side Option**
8+
9+
This parameter influences which audio codec is negotiated during the WebRTC connection setup.
10+
11+
#### **Usage**
12+
13+
* **`&preferaudiocodec=opus`** - Prefer Opus codec (default for most browsers)
14+
* **`&preferaudiocodec=red`** - Prefer RED (redundancy encoding) for packet loss resilience
15+
* **`&preferaudiocodec=g722`** - Prefer G.722 codec
16+
17+
#### **Examples**
18+
19+
```
20+
https://vdo.ninja/?push=streamID&preferaudiocodec=opus
21+
https://vdo.ninja/?push=streamID&preferaudiocodec=red
22+
https://vdo.ninja/?push=streamID&whipout=whipserver&preferaudiocodec=g722
23+
```
24+
25+
#### **Details**
26+
27+
* The parameter sets a preference, but the final codec is negotiated between peers
28+
* Both sender and receiver must support the codec for it to be used
29+
* Primarily intended for debugging or WHIP publishing scenarios
30+
* Codec names are case-insensitive (converted to lowercase)
31+
32+
#### **Available Codecs**
33+
34+
* **opus** - Default, high-quality codec with good compression
35+
* **red** - Redundancy encoding, better for poor network conditions
36+
* **g722** - Traditional telephony codec, wider compatibility
37+
38+
#### **Notes**
39+
40+
* Not all browsers support all codecs
41+
* Using RED codec may limit bitrate to 216 kbps
42+
* This is an advanced parameter mainly for debugging or specific use cases
43+
* WHIP servers may require specific codecs
44+
45+
#### **Related Parameters**
46+
47+
* [`&audiocodec`](../audio-parameters/minptime-1.md) - Forces a specific audio codec (viewer-side)
48+
* [`&audiobitrate`](../view-parameters/audiobitrate.md) - Sets the audio bitrate
49+
* [`&whipout`](../whip-parameters/and-whipout.md) - Publishes via WHIP protocol
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# &controlbarspace
2+
3+
**Also known as:** `&nocontrolbarspace` (to disable)
4+
5+
#### **Description**
6+
7+
Reserves dedicated space for the control bar to prevent video content from being obscured when controls appear.
8+
9+
#### **General Option**
10+
11+
This parameter ensures the control bar has its own space rather than overlaying on top of video content.
12+
13+
#### **Usage**
14+
15+
* **`&controlbarspace`** - Reserves space for control bar
16+
* **`&nocontrolbarspace`** - Disables reserved space (overlay mode)
17+
18+
#### **Examples**
19+
20+
```
21+
https://vdo.ninja/?push=streamID&controlbarspace
22+
https://vdo.ninja/?view=streamID&controlbarspace
23+
https://vdo.ninja/?room=roomname&nocontrolbarspace
24+
```
25+
26+
#### **Visual Behavior**
27+
28+
**With `&controlbarspace`:**
29+
- Video content is sized to leave room for controls
30+
- Controls don't cover any video content
31+
- Consistent layout whether controls are visible or hidden
32+
33+
**Without (or with `&nocontrolbarspace`):**
34+
- Controls overlay on top of video
35+
- Full video area when controls are hidden
36+
- May obscure bottom portion when controls appear
37+
38+
#### **Details**
39+
40+
* Affects layout calculations for video sizing
41+
* Useful for professional presentations
42+
* Prevents important content from being hidden
43+
* Trade-off between screen space and visibility
44+
45+
#### **Interaction with Other Parameters**
46+
47+
* Disabled by default when using [`&autohide`](../newly-added-parameters/and-autohide.md)
48+
* Works with all control bar configurations
49+
* Affects both sender and viewer interfaces
50+
51+
#### **Use Cases**
52+
53+
* Professional broadcasts
54+
* Educational content where controls are frequently used
55+
* Presentations with important bottom content
56+
* Kiosk displays with permanent controls
57+
58+
#### **Notes**
59+
60+
* Consider your content layout when choosing
61+
* More important for content with subtitles or lower thirds
62+
* Can affect overall video size calculations
63+
64+
#### **Related Parameters**
65+
66+
* [`&autohide`](../newly-added-parameters/and-autohide.md) - Auto-hides controls
67+
* [`&nocontrols`](and-nocontrols.md) - Removes all controls
68+
* [`&controlbar`](README.md) - Control bar options
69+
* [`&hidemenu`](../design-parameters/and-hidemenu.md) - Hides menu elements
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# &focus
2+
3+
#### **Description**
4+
5+
Manually sets the camera focus distance for devices that support manual focus control.
6+
7+
#### **Sender-Side Option**
8+
9+
This parameter overrides auto-focus and sets a specific focal distance for the camera.
10+
11+
#### **Usage**
12+
13+
* **`&focus=100`** - Sets focus distance to 100 units
14+
* **`&focus=0`** - Sets focus to closest distance (macro)
15+
* **`&focus=1000`** - Sets focus to far distance
16+
17+
#### **Examples**
18+
19+
```
20+
https://vdo.ninja/?push=streamID&focus=100
21+
https://vdo.ninja/?push=streamID&focus=500
22+
```
23+
24+
#### **Details**
25+
26+
* Only works on devices/browsers that support manual focus control
27+
* Most effective on mobile devices (smartphones/tablets)
28+
* Desktop webcams rarely support manual focus via browser APIs
29+
* Value represents arbitrary focus distance units (not standardized)
30+
* Disables auto-focus when set
31+
32+
#### **Device Support**
33+
34+
* **Supported:** Most modern smartphones (iOS/Android)
35+
* **Limited Support:** Some tablets
36+
* **Rarely Supported:** Desktop webcams
37+
* **Not Supported:** Virtual cameras, screen shares
38+
39+
#### **Notes**
40+
41+
* Useful for fixed-focus scenarios (e.g., document cameras, product demos)
42+
* Can prevent focus hunting during streams
43+
* May need experimentation to find optimal value for your setup
44+
* Focus capability depends on browser MediaStream API support
45+
46+
#### **Related Parameters**
47+
48+
* [`&autogain`](../audio-parameters/autogain.md) - Controls automatic gain (audio equivalent)
49+
* [`&brightness`](and-brightness.md) - Adjusts camera brightness
50+
* [`&contrast`](and-contrast.md) - Adjusts camera contrast
51+
* [`&zoom`](../video-parameters/and-zoom.md) - Controls camera zoom level
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# &scenelinkcodec
2+
3+
#### **Description**
4+
5+
Appends a codec parameter to scene invite links generated by the director, allowing codec preference to be set for all guests joining through those links.
6+
7+
#### **Director-Side Option**
8+
9+
This parameter is primarily designed for iframe API usage to control codec selection for scene participants.
10+
11+
#### **Usage**
12+
13+
* **`&scenelinkcodec=h264`** - Adds `&codec=h264` to scene links
14+
* **`&scenelinkcodec=vp8`** - Adds `&codec=vp8` to scene links
15+
* **`&scenelinkcodec=vp9`** - Adds `&codec=vp9` to scene links
16+
* **`&scenelinkcodec=av1`** - Adds `&codec=av1` to scene links
17+
18+
#### **Examples**
19+
20+
```
21+
https://vdo.ninja/?room=roomname&director&scenelinkcodec=h264
22+
https://vdo.ninja/?room=roomname&director&scenelinkcodec=vp9
23+
```
24+
25+
#### **Details**
26+
27+
* Automatically appends `&codec=` parameter to generated scene links
28+
* Affects all scene invite links created by the director
29+
* Codec name is automatically converted to lowercase
30+
* Intended primarily for iframe API implementations
31+
* Does not affect existing connections, only new invites
32+
33+
#### **Technical Implementation**
34+
35+
When set, the parameter:
36+
1. Stores the codec preference as `&codec=value`
37+
2. Appends this to any scene invite URLs generated
38+
3. Ensures consistent codec usage across all scene participants
39+
40+
#### **Use Cases**
41+
42+
* Forcing specific codec for compatibility reasons
43+
* Ensuring consistent codec across all participants
44+
* Automated scene management via iframe API
45+
* Testing different codecs across sessions
46+
47+
#### **Notes**
48+
49+
* This is a niche parameter mainly for advanced/API usage
50+
* The specified codec must be supported by participants' browsers
51+
* Final codec negotiation still depends on browser capabilities
52+
* Consider bandwidth and CPU implications of codec choice
53+
54+
#### **Related Parameters**
55+
56+
* [`&codec`](../view-parameters/codec.md) - Sets codec for individual connections
57+
* [`&scene`](../view-parameters/scene.md) - Specifies scene to view
58+
* [`&director`](../../viewers-settings/director.md) - Enables director mode
59+
* [`&preferaudiocodec`](../audio-parameters/and-preferaudiocodec.md) - Sets preferred audio codec

0 commit comments

Comments
 (0)