Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 07:36
· 120 commits to main since this release

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 (formerly qumo 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/moq 0.16.2, typescript 6, vite 8, @types/node 26, solid-js 1.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.
  • --role flag โ€” qumo relay --role hub|edge replaces the ROLE env var (breaking).
  • Security hardening โ€” /api/pull validates 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