🧾 VDO.Ninja v28.4 — Release Notes (vs v28.0)
Date: October 2025
Author: Steve Seguin
What’s new since 28.0 (at a glance)
- Operational control & hardening: director/queue approvals, safer desktop wrapper behavior, legal footer, HTTPS/doc fixes.
- Stream routing upgrades: explicit WHIP/WHEP primary/screen routing, better MediaMTX URL construction, token “user-set” guards.
- A/V quality & control: mic panning, frame-grab audio, mirror/flip output flags, speaker-volume panel, new tones.
Highlights
🎛️ Director & Co-Director
- Held-guest approvals for co-directors, optional approval popup, plus force-hold modes (
&forcehold,&forceholdwithvideo). - Director view exposes approval controls automatically when applicable.
🔊 Audio / Video
- Mic panning (publisher-side):
&micpanning/&mpan(0–180) — downmix mono → pan to stereo. - Frame-grab audio:
&framegrabaudio(or&audio) to include/exclude audio with frame-grabs. - Program-feed transforms:
&mirroroutput,&flipoutput. - Speaker volume panel (vertical slider + % readout).
- New tones: keep
testtone; addknocktonefor attention/queue states.
🌐 WHIP/WHEP & MediaMTX
- Primary vs. Screen routing:
&whipprimaryonly,&whipscreenonly,&whipnoscreen. - Parallel flags for meshcast and mediamtx; cleaner MediaMTX URL construction (primary
/whip//whepand screen/_s). - WHEP share source:
&whepshare/&whepsrc+ optional&whepsharetoken. - Token hygiene: “user-set” guards to prevent later params from overwriting explicit tokens.
🖥️ Screen-share / Playback Controls
- Routing & disable options:
&noscreenshare,&screenp2p,&screenwheponly,&screenwhep=true|false. - Explicit allow-overrides for screen video/audio.
- Link hygiene: HTTPS and doc link fixes.
🚦 Chunking & Reconnection *
- Preset chunk profiles:
&chunkprofile=mobile|balanced|desktop(sets FEC/NACK/buffers/jitter/adapt thresholds).- All knobs still overrideable:
&chunkfec,&chunkbufferceil,&chunkadapt=bitrate|framerate|hybrid, etc.
- All knobs still overrideable:
- Faster reconnection recovery: Shorter ICE wait times and targeted restarts minimize visible dropouts.
- Smarter fallback: Flow-guards and cooldowns prevent the system from oscillating between P2P ↔ TURN.
⚙️ Platform-Specific
- Electron app: explicit drag region; interactive elements marked as no-drag (prevents accidental overlay capture).
- Safari/iOS recordings: automatic split segments (iOS ~5 min; desktop Safari ~10 min) to avoid memory-pressure crashes.
🔐 Security & Hardening
- Legal/compliance footer (Terms, Privacy, Abuse) — auto-hidden in embed/kiosk contexts.
- Token handling tightened across WHIP/WHEP/Cloudflare flows with “user-set” guards.
- Safer defaults in embed/mixer/viewer modes (hides credits/legal/controls to reduce surface area).
- Recording stability improvements (segmented recording) mitigate crash-style failure modes.
- **Cleaned up XSS issues in some of the example files
🐞 Minor Fixes & Polish
- Cleaned up
hrefinconsistencies and updated legacy Discord link. - CSS refinements (z-index, modal/alert polish, dark-theme hover states); small overflow/layout improvements.
Quick upgrade tips (examples)
- Enable mic panning (center = 90):
?micpanning=90 - Hold with video + co-director approvals + popup:
?forceholdwithvideo&approvepopup - Publish only screen via MediaMTX:
?mediamtx=example.com:8889&mediamtxscreenonly - Balanced chunk profile with custom ceiling:
?chunkprofile=balanced&chunkbufferceil=2000
Summary:
28.4 doesn’t reinvent 28.0’s feature set—it hardens it. You get tighter token hygiene, safer desktop behavior, clearer legal posture, better director workflows, richer A/V controls, and improved network reconnection. Net effect: more stable, more controllable, more production-friendly.