Files
sunnypilot/openpilot/tools/camerastream
github-actions[bot] 3e87c0fd46 sunnypilot v2026.003.000
version: sunnypilot v2026.003.000 (staging)
date: 2026-09-03T14:24:40
master commit: 132b31f4cf
2026-09-03 14:24:40 +00:00
..
2026-09-03 14:24:40 +00:00
2026-09-03 14:24:40 +00:00
2026-09-03 14:24:40 +00:00

Camera stream

compressed_vipc.py connects to a remote device running openpilot, decodes the video streams, and republishes them over VisionIPC.

Usage

On the device

SSH into the device and run following in separate terminals:

cd /data/openpilot && ./openpilot/cereal/messaging/bridge

cd /data/openpilot/system/loggerd && ./encoderd

cd /data/openpilot/system/camerad && ./camerad

Note that both the device and your PC must be on the same openpilot commit.

Alternatively paste this as a single command:

(
  cd /data/openpilot
  ./openpilot/cereal/messaging/bridge &

  cd /data/openpilot/system/camerad/
  ./camerad &

  cd /data/openpilot/system/loggerd/
  ./encoderd &

  wait
) ; trap 'kill $(jobs -p)' SIGINT

Ctrl+C will stop all three processes.

On the PC

Decode the stream with compressed_vipc.py:

cd ~/openpilot/tools/camerastream && ./compressed_vipc.py <ip>

To actually display the stream, run watch3 in separate terminal:

cd ~/openpilot/selfdrive/ui/ && ./watch3.py

compressed_vipc.py usage

$ python3 compressed_vipc.py -h
usage: compressed_vipc.py [-h] [--cams CAMS] [--server SERVER] [--silent] addr

Decode video streams and broadcast on VisionIPC

positional arguments:
  addr             Address of comma three

options:
  -h, --help       show this help message and exit
  --cams CAMS      Cameras to decode
  --server SERVER  choose vipc server name
  --silent         Suppress debug output

Example:

cd ~/openpilot/tools/camerastream && ./compressed_vipc.py comma-ffffffff --cams 0
cd ~/openpilot/selfdrive/ui/ && ./watch3.py