Files
github-actions[bot] ed3a61840f sunnypilot v2026.08.02-4605
version: sunnypilot v2026.003.000 (dev)
date: 2026-08-02T04:29:20
master commit: 1a07e47228
2026-08-02 04:29:20 +00:00
..
2026-08-02 04:29:20 +00:00
2026-08-02 04:29:20 +00:00
2026-08-02 04:29:20 +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