CamGrabber installation on Raspberry Pi

CamGrabber runs on Raspberry Pi as a headless daemon, and all setup is done through a configuration file. Packages are published to the CityScreen APT repository for Raspberry Pi OS.

Installing the package

Add the CityScreen repository for Raspberry Pi OS and install the package:

echo "deb [trusted=yes] https://packages.cityscreen.cloud/repository/buster-releases buster main" | sudo tee /etc/apt/sources.list.d/cityscreen.list
sudo apt-get update
sudo apt-get install cityscreen-camgrabber -y

Configuration file

Without a GUI, CamGrabber reads its settings from an INI file:

~/.config/CityScreen/cityscreen-camgrabber.conf

A minimal configuration looks like this:

[General]
delay=0
frames="[{\"camUrl\":\"rtsp://192.168.1.20/stream1\",\"camUser\":\"viewer\",\"camPass\":\"secret\",\"enabled\":true,\"frameId\":1234}]"
guiMode=0
playerUrl=127.0.0.1
serverUrl=https://global.cityscreen.cloud/
Key Meaning

playerUrl

Address of the CS Player this grabber works with. 127.0.0.1 when the player runs on the same device.

serverUrl

CS Play server address.

frames

JSON array of per-frame camera bindings: camUrl (stream address), camUser / camPass (stream credentials), enabled, frameId. Frame IDs come from the player — see Camera Settings.

delay

Capture delay in milliseconds before the photo capture is taken.

guiMode

0 for headless operation (Raspberry Pi), 1 for the desktop GUI.

grabberId and the token entry

Identity and authorization token issued by the server when the grabber is activated. Filled in automatically after the first successful authorization.

After editing the configuration, restart the daemon for the changes to take effect.

Next step

The connection and authorization flow is the same as on desktop — see Connecting to Player and Server.