Files

WebRTC Streamer

ROS 2 node that subscribes to a camera image topic, encodes frames as VP8 via GStreamer, and streams them to browsers over WebRTC.

A single encode pass is shared across all connected clients.


Architecture

/camera/image_raw → webrtc_streamer → WebSocket :8443 → Browser
  (ROS 2 topic)      (VP8 encode)      (signaling)

Subscribed topics

Topic Type Description
IMAGE_TOPIC sensor_msgs/Image Camera frames to encode and stream

Environment variables

Variable Default Description
IMAGE_TOPIC /camera/image_raw ROS 2 topic to subscribe to
PORT 8443 WebSocket signaling port
BITRATE 2000000 VP8 target bitrate in bps

Connecting a browser

Open client.html (located in this directory) in any browser that can reach the host. Enter the server hostname or IP and click Connect.

The client connects to ws://<host>:8443 for WebRTC signaling. No TURN server is required for LAN use.