blob: 92ed1a937d23de077455511c760bb08645aeccd7 [file] [log] [blame] [view]
# Matter Camera Controller Example
This example application demonstrates the CHIP Camera Controller running on a
Linux platform and explains how to build and run the Camera Controller Example
on Linux.
In a typical setup, the Camera Controller app manages a CameraDevice app running
on a Raspberry Pi. The CameraDevice captures and encodes the video feed before
streaming it through a WebRTC track, while the CameraController receives this
video stream and displays it, creating a complete end-to-end camera solution.
---
- [Building the Example Application](#building-the-example-application)
---
## Building the Example Application
Building and Running the Camera Example (Linux)
1. Install buildtime and runtime dependencies
```
sudo apt update
sudo apt install \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-libav \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev
```
2. Build the cameracontroller binary
```
# Initialise the CHIP build environment
source scripts/activate.sh
cd examples/camera-controller/
# Compile the Linux x86‑64 camera‑controller target
./scripts/build/build_examples.py \
--target linux-x64-camera-controller \
build
```
The resulting executable is placed in:
```
out/linux-x64-camera-controller/chip-camera-controller.
```
3. Build the app binary
```
# Initialise the CHIP build environment
source scripts/activate.sh
cd examples/camera-app/
# Compile the Linux x86‑64 camera‑app target
./scripts/build/build_examples.py \
--target linux-x64-camera \
build
```
The resulting executable is placed in:
```
out/linux-x64-camera/chip-camera-app.
```
4. Start the camera accessory Open a new terminal and run:
```
./out/linux-x64-camera-app/chip-camera-app --camera-deferred-offer
```
5. Launch the camera controller In a second terminal:
```
./out/linux-x64-camera-controller/chip-camera-controller
```
6. Commission the camera device At the controller prompt, pair over the local
network using the default setup PIN 20202021 and an arbitrary nodeID 1:
```
pairing onnetwork 1 20202021
```
Wait until commissioning succeeds.
7. Start a liveview stream Still in the controller shell, request a live view
from the camera you just paired:
```
liveview start 1
```
You should see the GStreamer pipeline start and a video window appear,
confirming that the camera stream is active.