ONVIF Device Reference Design - Environment Setup

From RidgeRun Developer Wiki





Previous: Getting Started Index Next: Getting Started/Evaluating the Project





These steps aim to guide you through the installation and building process for the ONVIF Reference Design Project.

Dependencies

  • Install Meson
pip install meson

Sometimes it doesn't work correctly when installing it, run this command to see if it installed correctly.

meson --version
  • Install Ninja
pip install ninja
  • Install Pre-commit
pip3 install pre-commit
  • Install Doxygen
sudo apt-get install doxygen
  • Install LibOnvif

Please follow the steps in How to compile and install ONVIF device server guide page.

  • Install GSTD

Follow the steps in Building and Installing the GStreamer Daemon guide.

  • Install RTSPsink

Follow the steps in GstRtspSink - Building the plug-in guide.

  • Install Oatpp
git clone https://github.com/oatpp/oatpp.git
cd oatpp/
mkdir build && cd build
cmake ..
make install
  • Install Oatpp-openssl
git clone https://github.com/oatpp/oatpp-openssl
cd  oatpp-openssl
cmake .
sudo make install

Build ONVIF reference design

  • Create a build directory within the project directory
mkdir build
  • Build the application
meson build
cd build
  • Build the project and install
cd build
ninja
sudo ninja install
  • To check the correct functionality, go to the src directory and run:
cd rr/src/
./onvif-server-reference-design-version

Common Issues

Server stops without any message

If the server doesn't start and exits instantly, one of the possible reasons is that the server's OpenSSL certificates are not working. The only way to solve this is to create new CA certificates and compare them to the ones delivered with this project.

The server doesn't start and ends with a message of missing configuration

This means that the user configuration file doesn't exist. This configuration file needs to exists for the server to start, to verify if it exists run the following command

ls /usr/share/onvif_settings/
#expected output
configurations.json  UserSettings.txt

If it exists and continues to fail, it may mean that it doesn't have right or write permissions.



Previous: Getting Started Index Next: Getting Started/Evaluating the Project