Canvas Streaming
Canvas Streaming lets a participant publish any view — an HTML5 canvas element, a graphics layer, a composited scene — as a live video stream into the room. All other participants subscribe to it exactly like any other video stream. The canvas stream can also be recorded and is the foundation for the Annotation feature.
Common use cases include sharing dynamic data visualisations, rendering presentation slides frame-by-frame, overlaying graphics on a live feed, or running a whiteboard that other participants can watch as a video track.
Canvas Streaming must be enabled at room creation time. Add the canvas: true
flag to the room settings object in your Create Room API payload:
{
"settings": {
"canvas": true
}
}
Rooms created without this flag will not support canvas publish operations.
Who Can Initiate Canvas Streaming
Canvas Streaming requires access to an HTML5 <canvas> element to capture
frames and encode them as a video stream. This means:
- Web SDK — Can both initiate and receive canvas streams. The canvas element lives in the browser DOM, so full publish + subscribe is supported.
- Android SDK, iOS SDK, React Native, Flutter, Cordova — Can receive and display a canvas stream published by a Web SDK participant. These platforms cannot initiate canvas streaming themselves.
If your session has a mix of web and mobile participants, a web client publishes the canvas stream and all mobile clients subscribe to it as a regular remote stream — no special handling required on the mobile side beyond subscribing.
Canvas Streaming methods, stream publication options, and subscriber event callbacks are documented in each SDK's In-Session Communication reference: