Commit 764df8a
feat(moq-rtc): add WebRTC (WHIP/WHEP) gateway
Port the moq-rtc gateway from the dev branch. It bridges WebRTC and MoQ,
speaking WHIP (publish) and WHEP (subscribe) in either HTTP role, so it can
accept incoming peers (OBS, browsers) or dial out to a remote WebRTC server.
All four paths work; ingest covers H.264/VP8/VP9/Opus and egress adds
H.265/AV1, using str0m for ICE/DTLS/SRTP and a shared single-UDP-port mux.
Adapted to main's current APIs: `Broadcast`/`Track` model, infallible
`OriginConsumer::request_broadcast` + `OriginProducer::dynamic` (#1913),
`BroadcastConsumer::subscribe_track`, `publish_broadcast` lifetime tied to the
producer, moq-mux's in-place H.264 `Import` (avc3 mode), and moq-native's
`with_publish`/`with_consume` client builder.
Wires the crate into the workspace and documents it (doc/bin/rtc.md, index,
sidebar, crate map).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 21fb1da commit 764df8a
27 files changed
Lines changed: 3365 additions & 7 deletions
File tree
- doc
- .vitepress
- bin
- rs
- moq-rtc
- bin
- src
- client
- codec
- server
- tests
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| 45 | + | |
44 | 46 | | |
45 | 47 | | |
46 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
| 140 | + | |
140 | 141 | | |
141 | 142 | | |
142 | 143 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
32 | 38 | | |
33 | 39 | | |
34 | 40 | | |
| |||
0 commit comments