moqAdmoqad.dev Sandbox

moqstudio

Fire a break, then publish the cue

Studio's fireScte writes a database row today. Point it at moqAd, then publish the returned cue on the ads track. This repo does not change Studio.

Call POST /v1/breaks with the studio key.

{
  "channelId": "ch_demo",
  "type": "cue-out",
  "eventId": 42,
  "durationMs": 30000,
  "placementId": "plc_ms_stream_midroll",
  "seq": 4,
  "source": "manual",
  "splice": { "group": 1842, "wallMs": 1762800000000, "pts": 1620000 },
  "decide": true,
  "context": { "eventId": 42, "mode": "live", "program": "demo/program.hang", "nowMs": 1762800000000, "breakIndex": 0, "placementId": "plc_ms_stream_midroll", "programInfo": { "codec": "h264", "audioCodec": "aac", "width": 1920, "height": 1080, "frameRate": 30 }, "viewer": { "sessionId": "ses_studio", "country": "US" }, "content": { "kind": "live" } }
}

The response includes cue and, when asked, decision. Publish cue as the next object on @moq/json track ads in <base>/ads.hang. Do not splice media in the relay. The player switches at splice.group. eventId is a number, and scte35 is filled in so it matches the JSON.

A cue-in or cancel uses the same call with "type": "cue-in" or "cancel" and the same breakId.

moqAd is a product of BitPrairie LLC. Sandbox payments only. Choosing an ad uses the prices, dates, and limits on the campaign. It does not use SI (Super Intelligence).