Installing the Meerkat SDK on a PC

The following procedure provides step-by-step instructions for installing the SDK on both Linux and Windows based machines:

Linux Installation

  1. Open the command prompt and enter the following command: sudo dpkg -i <filename>.
  2. Follow the instructions on-screen.
  3. The SDK is installed in /usr/local/<project_name>.

Windows Installation

Unzip the files into the project directory.

Meerkat SDK Folder Structure

The Meerkat SDK contains the following directories:

  • doc: includes pictures of the Meerkat engine modules and HTML files available for configuration
  • include: Engine header files
  • lib:
    • SDK lib files (on Windows)
    • Compiled libraries [.so file extensions] (on Linux)
  • bin: SDK dll files (on Windows)

Setting Up the Docker Container

  1. Import the Docker container using the following command: docker load -i <project_name>.tar.gz
  2. Run the Meerkat container using the following command:
    docker run \
    --rm \
    --network host \
    --gpus all \
    -v /var/sightx/.docker_output:/root \
    -d \
    <project_name>:<version_tag>
    • After a few seconds, the Docker container initializes.

Configuring a Demo Before Implementation

The following procedure provides instructions for testing Meerkat before implementation in your configuration.

Configuring Video Source

Supported video sources are as follows:

  • GeniCam source
  • GStreamer source

Configuring a GeniCam source

Edit the following part of the demo.cpp file according to requirements.

  • setUrl – URL of GeniCam stream
  • DeviceAccess – Setting access to device, for multicast, set to ReadOnly
  • Width – Stream width in pixels
  • Height – Stream width in pixels
  • PixelFormat – Pixel data format

Code example:
// start new stream
StartStreamConfiguration startConfiguration;
startConfiguration.getGcSource().setUrl(""); // set device URL
startConfiguration.getGcSource().setDeviceAccessMode
(DeviceAccess::Control); // set to ReadOnly for multicast
setParam(startConfiguration.getGcSource(), "Width","768");
setParam(startConfiguration.getGcSource(), "Height","577");
setParam(startConfiguration.getGcSource(), "PixelFormat", "RGB8Packed"); // Alternative: "BGR8"

Edit sGstSourceUrl in the demo.cpp file to the RTSP stream address.

Configuring Video Output

The stream output is using Gstreamer and the RTSP protocol.

Edit the RTSP server port and IP as desired

sGstSourceUrl Section in demo.cpp file example:
// stream URL, in this case through local RTSP server
std::string sGstSourceUrl = "rtsp://127.0.0.1:8554/input_stream";
// start new stream
StartStreamConfiguration startConfiguration;
startStreamConfiguration.getGstSource().setUrl(sGstSourceUrl);
// set URL

Stream Output URL Example:
// stream output URL, in this case through local RTSP server
std::string sGstSinkUrl = "rtsp://127.0.0.1:8554/output_stream";
startStreamConfiguration.getGstSink().setUrl(sGstSourceUrl);
// set URL

Running the Demo

  1. Compile the demo.cpp file.
  2. Run the discoverServers function in the demo.
  3. The demo performs engine discovery.
  4. The demo returns the following output:

my-computer@127.0.0.1:50051

mic-730ai@192.168.16.25:50051

  1. Select your Meerkat engine instance according to the hostname.
  2. Run the command startStream.
    • Meerkat engine starts.
    • After 20 seconds, Meerkat engine shuts down.
    • Meerkat is ready for implementation.

demo.cpp Code example:
std::vector<sightx::sdk::ServerInfo> vMeerkats = sdk::discoverServers();
for(sightx::sdk::ServerInfo meerkatInfo : vMeerkats)
{
std::cout << meerkatInfo.HostName.toString() << "@"
<< meerkatInfo.IP.toString() << ":" << meerkatInfo.Port
<< std::endl;
}