TEST

Prepare your Raspberry Pi

Connect to your Raspberry Pi through SSH or open its terminal.

First, check its IP address and architecture:

hostname -I
uname -m
ip -br addr

Write down the Pi’s LAN IP address. It should ideally be on the 192.168.0.x network, where your EZVIZ camera and NVR are connected.

Check connectivity to the camera:

ping -c 4 192.168.0.114

Then install the build dependencies:

sudo apt update
sudo apt install -y \
  git cmake build-essential \
  gsoap libgsoap-dev \
  libssl-dev pkg-config \
  ffmpeg

3. Download and build the ONVIF bridge

Run:

cd ~
git clone https://github.com/KoynovStas/onvif_srvd.git
cd onvif_srvd

Configure the build:

cmake -S . -B build \
  -DUSE_SYSTEM_GSOAP=1 \
  -DWSSE_ON=1

Build:

cmake --build build -j2

The project supports these CMake options, although building against Raspberry Pi OS’s packaged gSOAP version may require adjustments. GitHub

Find the executable:

find build -type f -name onvif_srvd

If compilation succeeds, the next step is to configure the service to advertise your EZVIZ RTSP URL.

4. Test the bridge manually

First, identify the Pi’s active network interface:

ip route get 192.168.0.114

Look for dev eth0 or dev wlan0.

For example, if the Pi uses eth0, run:

cd ~/onvif_srvd
./build/onvif_srvd --help

Confirm the executable path and available options. Then try:

./build/onvif_srvd \
  --ifs eth0 \
  --scope onvif://www.onvif.org/name/EZVIZ-Bridge \
  --scope onvif://www.onvif.org/Profile/S \
  --name EZVIZ-Bridge \
  --width 1920 \
  --height 1080 \
  --url "rtsp://admin:YOUR_CODE@192.168.0.114:554/ch1/main" \
  --type H264

Replace YOUR_CODE with the camera password that works in VLC. Replace eth0 with wlan0 if the Pi uses Wi-Fi. The --type value and dimensions must match what your build supports and the camera actually streams.

The command exposes the EZVIZ RTSP address through the virtual ONVIF service; it does not transcode the video.

Security: Avoid sharing the command output if it contains your camera password. Use only on your trusted LAN.

5. Verify using ONVIF Device Manager

Leave the bridge running.

On your Windows PC:

  1. Open ONVIF Device Manager.
  2. Look for a device named EZVIZ-Bridge.
  3. If discovered, select it.
  4. Open Identification and Live Video.
  5. Verify that the EZVIZ video appears.

If the bridge is discovered but video fails, we need to inspect its advertised RTSP URL and codec.

6. Add the bridge to your CP PLUS NVR

Only after ODM succeeds:

  1. Open Camera → Add IP Cam → Manual Add.
  2. Select Channel 3.
  3. Select Manufacturer Onvif and Protocol Onvif.
  4. Enter your Raspberry Pi IP address, not 192.168.0.114.
  5. Enter the ONVIF service port reported by ODM.
  6. Enter the bridge’s configured credentials, if required.
  7. Click Connect, then OK.
  8. Check Channel 3 in Device Status.

If it connects and shows video, we can create a systemd service so the bridge starts automatically whenever the Pi boots.

7. Verify your installation before continuing

The project describes itself as a minimal ONVIF implementation, so discovery, authentication, and NVR compatibility are not guaranteed. GitHub

Run these commands and share the output, excluding any passwords:

uname -m
ip -br addr
cd ~/onvif_srvd
find build -type f -name onvif_srvd

Then run:

./build/onvif_srvd --help

Send me the output or screenshot. I’ll check the supported arguments and help you launch the bridge correctly before we enable automatic startup.

Comments are closed