# Streaming

Real-time video processing over a persistent WebSocket connection. Unlike the REST endpoints, streaming endpoints do not return a `request_id` — frames are processed and returned as they arrive.
**When to use streaming over REST:**
- You need sub-second latency per frame (live feeds, interactive UIs).
- The source is a continuous stream rather than a finite file.
- You're integrating with a video pipeline that already speaks WebSocket.

**When to use REST instead:**
- You're processing a finite video file end-to-end.
- You need preserved audio, container/codec selection, or the full set of editing capabilities.
- You can tolerate seconds-to-minutes of processing time.

See [Streaming Background Removal](/streaming-rmbg) for the connection handshake, message schema, and lifecycle details.

