olcRTC supports four wire transports (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/openlibrecommunity/olcrtc/llms.txt
Use this file to discover all available pages before exploring further.
datachannel, vp8channel, seichannel, videochannel) and three signaling providers (jitsi, telemost, wbstream). Not every combination is stable — some providers strip or block certain media types, and others require special account privileges for data routing. The matrix below summarises the current state from the E2E test suite.
Compatibility Matrix
| Transport | telemost | wbstream | jitsi |
|---|---|---|---|
datachannel | ✗ | ◑ | ✓ |
vp8channel | ✓ | ✓ | ◑ |
seichannel | ✗ | ✓ | ◑ |
videochannel | ✓ | ✓ | ◑ |
| Symbol | Meaning |
|---|---|
✓ | Works — passes E2E tests |
✗ | Does not work / not supported — fails E2E tests |
◑ | Unstable — may work, result flaps between CI runs |
Provider Details
- Jitsi
- Telemost
- WbStream
datachannel — ✓ StableDatachannel on Jitsi is implemented on top of the colibri-ws bridge channel. Data is sent as an
EndpointMessage{raw} broadcast. This works on any self-hosted or public Jitsi Meet instance without authentication (e.g. https://meet.jit.si/...). Check which instance is reachable in your network by opening it in a browser before configuring.vp8channel, seichannel, videochannel — ◑ UnstableVideo transports expose a sendable VideoTrack through the pion PeerConnection after the Jingle session-accept, but Jicofo requires additional protocol steps (LastN, ReceiverVideoConstraints, source-add) to actually route video between participants. This is why all three video-based transports are marked unstable on Jitsi.Required YAML Fields
Regardless of provider or transport, these fields are always required:| YAML Field | What to Enter |
|---|---|
mode | srv on the server, cnc on the client, gen to generate a room ID |
auth.provider | jitsi, telemost, wbstream, or none |
net.transport | datachannel, vp8channel, seichannel, or videochannel |
room.id | Room ID or URL (must match on server and client) |
crypto.key or crypto.key_file | Encryption key — 64 hex chars (32 bytes). Generate: openssl rand -hex 32 |
data | Always set to data |
net.dns | DNS resolver, e.g. 8.8.8.8:53 |
Speed Ranking
Transports differ significantly in throughput. From fastest to slowest:datachannel
Fastest. Direct SCTP over WebRTC data channel. No encoding overhead.
vp8channel
Fast. Data tunnelled inside VP8 video frames.
seichannel
Moderate. Data in SEI NAL units inside H.264. ACK-based reliability adds latency.
videochannel
Slowest. Requires ffmpeg for encode/decode. Most broadly compatible.