v0.4.0
Highlights
๐ฎ Playground โ one-command local demo
qumo playground starts a self-contained demo: an in-process relay + embedded web UI at http://127.0.0.1:8080. No cert setup, no Vite, no separate relay โ just one binary. Supports Webcam (camera/screen round-trip), RTMP push, RTSP push, and IP Camera (RTSP pull) scenarios from the browser.
๐น RTSP support (push + pull)
qumo rtsp-push(formerlyqumo rtsp) โ accept RTSP push streams from ffmpeg or encoders (ANNOUNCE/RECORD server) and republish as MoQT.qumo rtsp <url>โ pull RTSP directly from an IP camera (DESCRIBE/SETUP/PLAY), with Basic + Digest auth, TCP-interleaved transport, and automatic reconnect.
๐ง initData โ browser-decodable ingest
Ingested streams (RTSP/RTMP) now carry codec initialization data as Base64 initData in the MoQT catalog โ AVCC SPS/PPS for H.264 video, AudioSpecificConfig for AAC audio. This is the same shape the browser-publish path emits, so ingested streams decode directly in WebCodecs without server-side format conversion.
๐ฆ Dependencies
- gomoqt v0.16.1 โ MoQ protocol upgraded to moq-lite draft-04 (ALPN
moq-lite-04). Peers must be upgraded together; mixed deployments are not supported. - Frontend:
@qumo/moq0.16.2,typescript6,vite8,@types/node26,solid-js1.9.14. - Go indirects refreshed (
prometheus/common,prometheus/procfs,golang.org/x/net,golang.org/x/text,google.golang.org/protobuf, et al.).
Other
- Credential auth + metering โ optional JWT publisher authentication + per-session byte-usage reporting via
QUMO_CREDENTIAL_URL. --roleflag โqumo relay --role hub|edgereplaces theROLEenv var (breaking).- Security hardening โ
/api/pullvalidates RTSP URL scheme + broadcast path. - Breaking: SDN controller removed; cross-relay discovery is now native MoQT
ANNOUNCE_PLEASE.
Full changelog: https://github.com/qumo-dev/qumo/blob/main/CHANGELOG.md#v040---2026-07-08