EDIS Interactive Puebla, MX · --:--:--
EDIS Interactive · Engineering report

Carrying real MPEG-TS over MoQ

The broadcast bridge starts with the feed that already exists, not the feed a browser wishes it had.
Broadcast · MoQ · MPEG-TS · SCTE-35 · QUIC
A coiled SDI and coax cable labelled MPEG2TS, representing the bridge between installed broadcast systems and Media over QUIC.

Media over QUIC can deliver live media with low latency and massive fan-out. The conversation around it is full of ad-insertion decks and coming-soon beta programs. The unglamorous part, taking a real MPEG-TS feed (its MPEG-2 video, AC-3 audio and SCTE-35 cues) onto MoQ without losing the bytes that matter, is the part nobody demos. It is also the part that decides whether MoQ ever reaches the millions of dollars of broadcast plant already in the field. At EDIS Interactive, we're building it, testing it, and upstreaming it. This report is the model behind it: broadcast-aware today, future-proof by design.

In brief

A broadcast plant and a browser do not need the same representation. The bridge works when MoQ preserves that choice instead of forcing one side to impersonate the other.

  1. A real MPEG-TS service may carry MPEG-2 video, AC-3 audio, SCTE-35 cues and ancillary data, not only the web-friendly H.264/AAC subset.
  2. WebCodecs is a decoder constraint, not a transport constraint. Unsupported codecs can still be carried for broadcast egress while additional renditions serve the browser.
  3. The useful abstraction is one track per component, with fidelity chosen independently for each track.
  4. Verbatim carriage and transcoding are complementary. Preserve the source where exactness matters, add a new rendition where compatibility matters.
  5. SCTE-35 is our first implemented non-AV proof of this model: the complete section and its arrival timing are preserved verbatim, letting applications interpret it.
The bottom line: carry verbatim where it matters, transcode where it helps, and let each consumer take what it understands. MoQ does not need to replace the broadcast plant; it needs a faithful bridge to it. This is not slideware. The base bridge and SCTE-35 ingest are merged upstream; egress is in review. Code you can read.

1Start with the installed base

MoQ is designed1 for live media distribution over QUIC2. Its relay layer does not need to understand codecs, ad markers or television standards. That is a strength: the network can fan out media without becoming a media appliance.

The application layer still has to meet the source. In broadcast, that source is often MPEG-TS delivered over IP, ASI or SDI-connected infrastructure. It has PAT and PMT tables, independent elementary PIDs, timing, cue messages and ancillary services accumulated across decades of standards and equipment.

PR #1587 established the upstream MPEG-TS import/export bridge for H.264, H.265 and AAC. That is the modern, web-friendly case. The next question is whether the same architecture can carry the feeds operators actually have, without requiring a plant-wide codec migration first.

the gap · real broadcast only gets partly mapped
MoQ H.264 · H.265 · AAC supported legacy components dropped MPEG-TS · whole stream MPEG-2 · AC-3 · SCTE-35 · CC · others BROADCAST PLANT TS GEAR incomplete service WEB needs transcode
Fig. 1. The bridge exists for H.264, H.265 and AAC, but a legacy MPEG-2 + AC-3 service with SCTE-35 and ancillary data is only partially represented. Broadcast egress gets an incomplete service, while the browser still needs compatible renditions.
Legacy support is not optional A live plant is millions of dollars of installed equipment, much of it still emitting MPEG-2 and AC-3, and no operator will forklift-upgrade it just to try the newest transport on the block. A new protocol earns its place by meeting the installed base where it is, the widest range possible, legacy included. Supporting legacy is not nostalgia; it is MoQ's on-ramp to the broadcast industry.

2What a real feed contains

We inspected a live MPEG/IP multicast service coming from a Kyrion with a Sencore MRD. It was not an exotic archive. It was an ordinary television feed:

Sencore MRD analysis of a broadcast MPEG transport stream containing MPEG-2 video, two AC-3 audio services and SCTE-35 signaling.
A measured broadcast service: MPEG-2 MP@HL video, two AC-3 audio services and SCTE-35 signaling in an approximately 11 Mbps transport stream. Operator and multicast details are redacted.
ComponentObserved formatWhy it matters
VideoMPEG-2 MP@HL, 1080i, 29.97 fpsCommon installed-base codec, not decoded by WebCodecs
AudioTwo AC-3 services at 48 kHzStandard broadcast audio, not decoded by WebCodecs
Cue signalingSCTE-35 private sectionsControls ad opportunities and must preserve pre-roll
TransportMPEG/IP multicast, single programThe operational handoff already used by the plant

An importer that recognizes only H.264, H.265 and AAC cannot represent most of this service. The network is not the limitation. The missing piece is an application mapping for each component.

MPEG-TS does not imply MPEG-2 video Many transport streams already carry H.264 or H.265, and those are the straightforward case: the existing bridge can carry them without transcoding. We focus on MPEG-2 A/V and AC-3 because they are the harder installed-base case. Not every broadcaster can replace equipment, enable newer codecs, or absorb the required licensing costs. The wider the range of existing services MoQ can ingest, the more useful it becomes to the industry.

3WebCodecs changes playback, not transport

A browser player normally decodes MoQ media with WebCodecs3. WebCodecs commonly exposes H.264, VP8, VP9, AV1, Opus and AAC; H.265 support remains platform-dependent. It does not provide a general MPEG-2 or AC-3 decoder.

SourceBrowser playbackBroadcast egress
H.264 / AACDecode directlyRemux directly
MPEG-2 videoPublish an H.264/AV1 renditionPreserve or remux the source
AC-3 audioPublish an Opus/AAC renditionPreserve or remux the source
SCTE-35Application interprets the cue if neededPreserve the complete section

The wrong conclusion is that MoQ therefore cannot carry legacy broadcast. MoQ transports bytes and timing; WebCodecs only determines what one class of consumer can render. The implication is blunt: if the downstream consumer is a browser, the legacy codecs must be transcoded, and MoQ carries the already-transcoded renditions; if the consumer is broadcast gear, you have more options, including touching nothing at all. A broadcast receiver can subscribe to the original rendition while a browser subscribes to a transcoded one.

The consumer decides the representation Keep the source rendition for equipment that understands it. Add a compatible rendition for equipment that does not. The relay can distribute both without knowing what either contains.

4One model, fidelity per track

The system becomes simpler when MPEG-TS is treated as a collection of timed components rather than one indivisible file. In the per-track path, each selected component becomes a MoQ track and gets the treatment appropriate to its downstream consumer.

TrackTarget treatmentResult
MPEG-2 videoCarry verbatim, optionally add H.264Preserves broadcast fidelity; a compatible rendition enables web playback
AC-3 audioCarry verbatim, optionally add OpusPreserves the original service; a compatible rendition enables web audio
SCTE-35Carry each complete section verbatimExact signaling available for remux and interpretation
SMPTE 2038 / VANCCarry each timed PES payload verbatimCaptions, AFD and other ANC data survive the path

This is not a generic untyped data bucket inside the base media catalog. The base catalog remains focused on video and audio. The merged catalog API lets applications extend the root to describe their own tracks; PR #1617 defined the SCTE-35 section that uses it, while the track payload retains the source bytes required for faithful egress.

That separation is useful beyond broadcast. The MoQ layer provides delivery. The application defines what a track means. A relay does not need SCTE-35 logic any more than it needs to understand a video codec.

5Three useful paths through the same system

Demux and transcode

Split the transport into tracks and create web-compatible renditions where necessary. This gives browsers low-latency playback and lets them select only the tracks they can decode.

Demux and remux

Split the transport for MoQ delivery, preserve selected tracks verbatim, then reconstruct MPEG-TS at the destination. This supports SDI or decoder output while retaining per-track routing and fan-out inside the network.

target model · demux / MoQ / remux
MoQ MPEG-TS MPEG-2 · 2× AC-3 · SCTE-35 demux MPEG-2 AC-3 SCTE-35 transcode bypass · verbatim remux to TS H.264 Opus renditions for web BROADCAST PLANT TS GEAR remux · verbatim WEB WebCodecs
Fig. 3. Paths A/B, target model: the transport stream is demultiplexed into MPEG-2, AC-3 and SCTE-35. The originals bypass straight back into a remuxed transport stream for broadcast gear (untouched), while transcoded renditions (H.264 from MPEG-2, Opus from AC-3) are split off for the browser. Each consumer takes only what it can use.

Opaque whole-TS passthrough

Opaque whole-TS passthrough is technically achievable with the current MoQ primitives. Carry the complete transport stream as one opaque track. This is the maximum-fidelity fallback and the least useful representation for a browser. It remains valuable when the only requirement is transporting an existing service unchanged.

fallback model · whole-TS verbatim
MoQ opaque · bytes never interpreted MPEG-TS · whole stream MPEG-2 · AC-3 · SCTE-35 · CC · everything can't decode raw TS BROADCAST PLANT TS GEAR byte-identical WEB no usable stream
Fig. 4. Path C, opaque fallback model: the whole transport stream rides through MoQ in one opaque pipe and exits byte-identical for broadcast gear. A web subscriber gets the bytes but cannot decode raw MPEG-TS, so nothing usable reaches it: maximum fidelity, zero web flexibility.
PropertyPer-track bridgeWhole-TS passthrough
Browser playbackYes, with compatible renditionsNo native TS decode
Track selection / ABRYesNo
Broadcast egressYes, by remuxYes, directly
Exact source preservationSelected per trackWhole stream
Implementation effortMapping per component typeMinimal interpretation

These are not competing architectures. Whole-TS passthrough is the limit case where every component stays inside one opaque track. The per-track bridge gives up some simplicity in exchange for routing, adaptation and multiple consumer types.

6What exists today

The upstream work now has three distinct layers:

CapabilityStatus in June 2026
MPEG-TS H.264/H.265/AAC import and exportMerged upstream in PR #1587 (@kixelated)
Application-defined catalog sectionsMerged upstream through PRs #1655 and #1658 (@kixelated)
Verbatim SCTE-35 ingestMerged upstream in PRs #1667 and #1617 (@arielmol)
SCTE-35 export back to MPEG-TSIn review upstream in PR #1685 (@arielmol); byte-exact round-trip on synthetic and real captures (Ateme Kyrion CM5500)
MPEG-2 / AC-3 native mapping and transcodingProduct work, not claimed as merged upstream
A deliberate boundary The transport and reassembly work is proven. The public catalog representation changed during upstream review, and that was useful: it produced a general extension mechanism instead of placing one broadcast-specific schema inside the base media catalog.

7Why SCTE-35 comes next

SCTE-354 is small in bandwidth and large in operational consequence. It identifies splice opportunities, arrives ahead of the intended splice point, and often has to survive a complete import, network and remux path before a downstream device acts on it.

The safe foundation is the complete splice_info_section. A structured event can always be parsed from those bytes. The exact original section cannot always be reconstructed from a simplified event model. Carrying the section verbatim therefore preserves both present-day MPEG-TS round trips and future structured consumers.

That implementation exposed the questions that generic media demos rarely encounter: SCTE-35 uses private sections rather than PES, its PID is identified through CUEI signaling, sections cross TS packet boundaries, continuity loss requires resynchronization, and the frame timestamp represents arrival on the program timeline rather than the splice time encoded inside the cue.

8Does this scale? Yes

A fair question: SCTE-35 is one data type, but a real transport stream carries far more (closed captions, teletext, subtitles, AFD, timecode, KLV metadata, interactive carousels). Does the per-track verbatim model reach all of it? It does, because broadcast data sorts into three buckets by how it travels, and the bucket decides the effort. The first two are the verbatim pattern we already built; the third rides along verbatim for broadcast gear too, and needs extra work only to render it in a browser.

BucketHow it travelsWhat rides hereEffort
1 · PES, own PIDPES packets on a dedicated PIDSMPTE 2038 (generic ANC: CC, AFD, SCTE-104, timecode), DVB subtitles, DVB teletext, KLV/MISB, ID3, ARIBLowest. The TS reader already parses PES; route it to a verbatim data track instead of a codec importer
2 · Sections, own PIDprivate sections, like SCTE-35SCTE-27 subtitles, DSM-CC carousels (HbbTV / interactive)Low. Reuse the SCTE-35 section reassembler
3 · In-band, inside the videoSEI (H.264/H.265) or picture user_data (MPEG-2)CEA-608/708 captions, AFD, bar data, timecodeFree for gear. Rides verbatim, and a caption-aware transcode keeps it in the SEI. Only a browser, which can't read in-band SEI, needs it extracted to a separate track

If we extend it, in priority order:

  1. SMPTE 2038: highest value for the lowest effort. It is PES-based (reuses the existing path), carried verbatim, and in a single PID it hauls CC, AFD, SCTE-104 and timecode opaquely for remux to TS. The architecture applies directly: reuse the PES reader, route to a verbatim data track. The best next brick.
  2. CEA-608/708 captions: ubiquitous and FCC-mandatory. For a broadcaster they cost nothing: they ride verbatim, and a caption-aware transcode (e.g. ffmpeg a53cc) keeps them in the new SEI; only a naive transcoder drops them. The one place they need lifting into a separate timed-text track is the browser, because WebCodecs can't read in-band SEI. That extraction is a nice-to-have web feature, not a transport requirement.
  3. Everything else (SCTE-27, DSM-CC, DVB subtitles/teletext, KLV, ID3): more of the same per-track verbatim pattern, cheap, added on demand by market or vertical rather than speculatively.
The point: it is the same pattern, laid again The model never changes. Everything with its own PID (buckets 1 and 2) is an instance of the verbatim pattern SCTE-35 already proved, and the existing PES path plus the section reassembler already cover it. In-band data (captions) rides along verbatim for broadcast gear too; the only thing that ever needs more is rendering those captions in a browser, since WebCodecs can't read the SEI, and that is a nice-to-have web feature, not a transport requirement. SCTE-35 is the first brick; SMPTE 2038, captions, teletext and KLV are the same brick laid again. Not new architecture, just the pattern repeating.

9Where this goes, and why it beats a slide

The path forward is incremental, and it is driven by one question: who consumes downstream?

  • Today: broadcast-first, our priority at EDIS Interactive. The base bridge is merged; SCTE-35 ingest is merged upstream (PR #1617); egress is in review in PR #1685. A real TS already maps onto MoQ tracks.
  • When the content is already web-friendly (H.264 + AAC), bound for TS gear. The easy case, and exactly what PR #1587 already does: the codecs need no transcode, so one set of renditions serves a browser and modern TS gear alike. A web-compatible feed headed to TS gear behaves just like a web client, with the remux to TS as the only extra step.
  • When the egress is the web. Add MPEG-2/AC-3 demux plus an on-the-fly transcoder (H.264/Opus). This is new work, but the rendition model already accommodates it, and the ffmpeg-next encode library is already a workspace dependency (it backs another tool, moq-boy), so the building block is on hand.
  • When the egress is TS gear. Demux + remux extended to MPEG-2/AC-3 (per-track egress in PR #1685, byte-exact round-trip validated on synthetic and real captures) if you also want web renditions in parallel; or opaque whole-TS passthrough (a separate PR; byte-identical by design, not yet implemented) for broadcast-only egress.

A note on the landscape. The ad-insertion conversation is real and welcome: at the IETF MoQ interim (Boulder, February 2026), Synamedia and Akamai demonstrated SGAI signaling over MoQ5, modeling SCTE-35 as structured events on a dedicated Event Timeline track. That is the ad-decisioning layer, presented as ongoing work. We work one layer down: faithfully carrying real transport streams onto MoQ. Their work addresses how ad cues are represented and consumed; ours preserves the broadcast source those applications depend on. Our focus is staying compatible with the mechanisms the industry already runs on.

And the stakes here are MoQ's, not only ours. A protocol that ingests only what a modern web encoder emits leaves the existing broadcast plant (and the millions of dollars already sunk into it) on the far side of a wall no operator will pay to climb. Meeting the widest range, legacy included, is how MoQ earns the broadcast industry, and that is exactly what we are building.

The same pattern can be extended further. Dreaming beyond what is built today: GStreamer bindings could let existing plant pipelines hand off to MoQ with minor retooling; a WebAssembly decoder in the browser could open MPEG-2 and AC-3 without a server-side transcoder, since the original track is already on the wire and a WASM player would subscribe to it like any other consumer. Transcoding becomes a requirement only when a legacy consumer cannot handle the source, not the toll every path pays. None of it is a fixed roadmap, and that is the point.

In one line

There is no single "MoQ broadcast" architecture, but there is one per-track fidelity model (demux, transcode, remux, opaque, chosen per track) that carries real MPEG-TS (MPEG-2, AC-3, SCTE-35) onto MoQ with bit-exactness where it counts and web flexibility where it helps. The base bridge is merged; SCTE-35 ingest is merged; egress is in review in PR #1685; the rest is designed, not promised. At EDIS Interactive we support the broadcast industry first (meeting the installed base where it is, not forcing it to upgrade) and we are laying the tools the future will need, in code you can read now.

Glossary

MoQ
Media over QUIC, a live media delivery architecture built on QUIC and WebTransport.
MPEG-TS
MPEG transport stream, the packetized container widely used for television contribution and distribution.
Rendition
An alternative representation of the same media, such as the original MPEG-2 video and a derived H.264 version.
SCTE-35
Digital program insertion cue signaling carried as private sections in MPEG-TS.
SMPTE 2038
A standard way to carry ancillary data (captions, AFD, SCTE-104, timecode) as PES packets on their own PID.
SGAI / SSAI / CSAI
Server-guided, server-side and client-side ad insertion: the ad-decisioning layer above transport.
Transmux
Change the container or transport representation without re-encoding the codec bitstream.
Transcode
Decode and re-encode media into another codec or quality.

References

  1. Luke Curley, "MoQ: Not Another Tech Demo", a talk on Media over QUIC, YouTube. youtube.com/watch?v=BluV8WBGnHY.
  2. IETF Media over QUIC Working Group, charter and active drafts. datatracker.ietf.org/group/moq.
  3. WebCodecs API and codec registry, browser media decode interfaces and codec identifiers. w3.org/TR/webcodecs.
  4. ANSI/SCTE 35, Digital Program Insertion Cueing Message. scte.org/standards.
  5. SGAI over MoQ (SCTE-35 Event Timeline), G. Simon (Synamedia) and W. Law (Akamai), IETF MoQ interim, Boulder, February 2026; as covered by Red5, "Ad Insertion for Media over QUIC" (presented as ongoing work). red5.net/blog/ad-insertion-for-media-over-quic.

Engineering report for technical reference. Upstream status is current as of June 11, 2026 and may change. Measurements describe one observed broadcast service and are illustrative, not normative. Codec, container and standards names are used for identification.