Skip to content

chore: update moq-relay to 0.17.8 and moq-cli to 0.14.8 - #9

Open
pzanella wants to merge 2 commits into
fix/sgai-event-deliveryfrom
chore/upgrade-moq-binaries
Open

pzanella wants to merge 2 commits into
fix/sgai-event-deliveryfrom
chore/upgrade-moq-binaries

Conversation

@pzanella

Copy link
Copy Markdown
Owner

Depends on #8 (SGAI events: one group per ad-break cycle). Merge #8 first; this PR then moves to main.

What

  • moq-relay 0.14.5 → 0.17.8, moq-cli 0.10.0 → 0.14.8 (Containerfile, MOQ_RELAY_VERSION in CI).
  • @moq/net / @moq/msf stay at 0.3.5 / 0.2.2. They work with the new relay. Their update (new Origin API) is a separate PR.

Breaking changes handled

  • Relay config: [server] listen → [listen] bind, public = "" → public = "**".
  • Auth: the relay no longer checks JWTs. With --auth/--auth-key, run-stream.sh starts moq auth serve --key in the container and the relay asks it ([auth] url). moq token → moq auth, tokens grant '**'.
  • CLI: --client-connect → --connect.
  • fMP4: moq import fmp4 refuses frag_every_frame (repeated tfdt with audio and video). All pipelines use -frag_duration 1000.
  • Dashboard latency: moq import no longer keeps the source timestamps. It gives the first frame the time it arrived and publishes the mapping as the catalog's clock. The dashboard now uses clock.wall + pts, and the ingest tap sends startLagMs (how late the first frame reached moq import) so the figure still starts at the source.

Tests

Local, in Podman (arm64), with the new image:

  • base, --abr-ladder (5 renditions), SSAI (impression events), CSAI (CUEI descriptor, blackout, Break Start)
  • SGAI with the host publisher: 12/12 events received, Media Timeline entries, per-break ad broadcasts
  • auth: no token and wrong key → 401, viewer token can fetch, viewer token can't publish
  • dashboard in Chrome: live over WebTransport, end-to-end latency ~300–420 ms (base) and ~330 ms (CSAI)
  • --source with a public HLS stream

- Relay config: [listen] bind, public = "**".
- Auth: the relay asks moq auth serve, started next to it in the
  container. moq token is now moq auth, tokens grant '**'.
- moq --client-connect is now --connect.
- fMP4 pipelines use -frag_duration 1000: moq-cli 0.11+ refuses
  frag_every_frame, which repeats a fragment's tfdt.

@moq/net and @moq/msf stay at 0.3.5/0.2.2 for now.
moq-cli 0.14 no longer keeps the source timestamps: it gives the first
frame the time it arrived and publishes the mapping as the catalog's
clock. The old ingest clock compared source timestamps with them, so the
latency stayed at "Waiting for data".

The dashboard now uses clock.wall + pts. lib/ingest-clock.mjs sends
startLagMs, how late the first frame reached moq import compared with
the source pace, and the browser adds it back.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant