github steveseguin/vdo.ninja v28.4
Version 28.4 - CSS fixes, minor new features, xss patch

pre-release6 days ago

🧾 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; add knocktone for 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//whep and 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.
  • 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 href inconsistencies 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.

Don't miss a new vdo.ninja release

NewReleases is sending notifications on new releases.