Media transport adapters
Last updated Oct 6, 2026 Media transport adapters connect WebRTC tracks to services that exchange media over another transport. The WebSocket adapter supports audio ingest, audio egress, and video egress as JPEG frames.
An external service can process or generate audio without implementing a WebRTC peer. Your backend creates the adapter and manages its lifetime.
WebSocket adapter
The WebSocket adapter is generally available. Each adapter carries one track in one direction. Choose the path your service needs:
| Your service | Direction | Media |
|---|---|---|
| Generates audio | WebSocket → SFU → WebRTC | PCM audio published as a WebRTC audio track |
| Transcribes or processes audio | WebRTC → SFU → WebSocket | Audio delivered as PCM |
| Inspects frames or generates previews | WebRTC → SFU → WebSocket | Video delivered as JPEG frames |
WebRTC endpoint
Media tracks
CloudflareRealtime SFU
WebSocket adapters
Binary media packets
Your WebSocket service
WebRTC endpointMedia tracks ↔Realtime SFU
Realtime SFUMedia ↔WebSocket adapters
WebSocket adaptersBinary media packets ↔Your WebSocket service
Use separate adapter instances for bidirectional audio. Video ingest over the WebSocket adapter is not supported.
Learn with an example
The AI audio guide shows speech generation and transcription through separate adapter paths. For video, the WebRTC-to-JPEG example ↗︎ receives frames in a Durable Object and distributes them to viewers.
Both examples are experimental and require application authentication and authorization before public use. Their repository guides describe setup and integration limitations.
Was this helpful?
YesNo
On this page
{"@context":"https://schema.org","@type":"WebPage","@id":"https://developers.cloudflare.com/realtime/sfu/features/media-transport-adapters/#page","headline":"Media transport adapters","description":"Bridge Realtime SFU tracks and external media services using WebSocket audio and JPEG frame delivery.","url":"https://developers.cloudflare.com/realtime/sfu/features/media-transport-adapters/","inLanguage":"en","image":"https://developers.cloudflare.com/realtime/sfu/features/media-transport-adapters/og.png?v=d0bd7f1a594fd65b","dateModified":"2026-10-06","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
description: Create and close WebSocket adapters for PCM audio and JPEG video, with endpoint authentication, reconnect, and error handling. title: WebSocket adapter image: https://developers.cloudflare.com/realtime/sfu/features/media-transport-adapters/websocket-adapter/og.png?v=dff11c94581d8806
Documentation Index
Fetch the complete documentation index at: https://developers.cloudflare.com/realtime/llms.txt
Use this file to discover all available pages before exploring further.
Docs