Installation Linux
We have 2 methods for installing on Linux. In one instance, we lean heavily on pre-built binaries being packaged with SSP (recommended). In the second method we manually install all necessary dependencies.
These steps have been tested on Ubuntu 20.04
    1.
    Pre-built binaries (recommended)
      This will use the binaries we have already built for each platform and architecture
        If you want to see how the binaries were built you can check out 3rdparty/build_linux_dep.sh
    2.
    Installing Manually
      This will provide download instructions for each library
Problems?! (shocker)
Reach out on our discord and we will get you going!

Installing with Pre-Built Binaries (Recommended)

1.0 Install Pre-Requisites

1
sudo apt-get update
2
sudo apt-get install build-essential
3
sudo apt-get install cmake
4
sudo apt-get install libgtk2.0-dev
5
sudo apt-get install git
6
sudo apt-get install ffmpeg
7
sudo apt-get install libusb-1.0
Copied!

2.0 Install Azure Kinect SDK/Azure Kinect Body Tracking SDK (optional)

These steps are only required if you are interested in building with Azure Kinect and Body Tracking capabilities.
These are the steps I followed to install k4a-tools, libk4a and libk4abt on Ubuntu 20.04. The general steps are as outlined in https://docs.microsoft.com/en-us/azure/Kinect-dk/sensor-sdk-download, with a couple of hacks to make things work on 20.04. - use of 18.04 repo, even though OS is 20.04 - installed lower versions of tools and libraries (as latest versions of sensor and body tracker don't seem to be compatible on 20.04)
1
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
2
sudo apt-add-repository https://packages.microsoft.com/ubuntu/18.04/prod
3
curl -sSL https://packages.microsoft.com/config/ubuntu/18.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft-prod.list
4
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
5
sudo apt-get update
6
sudo apt install libk4a1.3-dev
7
sudo apt install libk4abt1.0-dev
8
sudo apt install k4a-tools=1.3.0=
Copied!
Verify sensor library by launching camera viewer (require sudo for hardware access)
1
sudo k4aviewer
Copied!

3.0 Build/Install Sensor Stream Pipe

1
git clone https://github.com/moetsi/Sensor-Stream-Pipe.git
2
cd Sensor-Stream-Pipe
3
mkdir build && cd build
4
cmake ..
5
make -j4
Copied!

4.0 Use it!

Now checkout Streaming a Video or Streaming a Dataset to see how you can stream local files with Sensor Stream Server to Sensor Stream Client.

Installing Manually

1.0 Install Pre-Requisites

To get our Sensor Stream Pipe up and running, you will require the following:
The following steps were tested on Ubuntu 18.04. Installing on other recent Linux distributions should be pretty similar, but please check the installation instructions for OpenCV and Kinect DK on your respective platform first. Installation instructions for Windows should be ready soon. If you encounter any problems or have any suggestions, please let us know by emailing [email protected] or post on our forum.

Dependencies

To get our Sensor Stream Pipe up and running, you will require the following:
    ​OpenCV 3.2.0 (tested on version available on Ubuntu 18.04 repo) is used for image processing.
    ​libav 3.4.6 (tested on version available on Ubuntu 18.04 repo) encodes, decodes and processes image frames.
    ​Cereal 1.2.2 (headers only) serializes data for network transmission.
    ​ZeroMQ and cppzmq (libzmq3 4.3.1, cppzmq 4.3.0) perform network and low-level I/O operations.
    ​spdlog 1.4.1 Logging library.
    ​yaml-cpp 0.6.0 reads server configuration files.
    ​Zdepth: compresses depth data.
    ​NvPipe (optional, but recommended if you have an NVidia GPU ) encodes and decodes frames. This is optional, but recommended for users with Nvidia GPUs.
    ​Azure Kinect SDK 1.3 (to support the Azure Kinect Body Tracking SDK), 1.4 otherwise (optional) accesses Kinect DK data.
    ​Azure Kinect Body Tracking SDK 1.0 (optional) SSP Body Tracking client.

Download and install repo libraries

OpenCV 3.2.0
1
sudo apt install libopencv-dev libopencv-core-dev uuid-dev
Copied!
Libav 3.4.6
1
sudo apt install libavformat-dev libavutil-dev libavcodec-dev libavfilter-dev
Copied!

Download and extract "out-of-repo" libraries

First, create a folder where local libs are to be installed:
1
mkdir ~/libs
2
mkdir ~/libs/srcOriginal
Copied!
Cereal 1.2.2
1
cd ~/libs/srcOriginal
2
wget https://codeload.github.com/USCiLab/cereal/tar.gz/v1.2.2
3
tar xf v1.2.2
4
cp -r cereal-1.2.2/include ~/libs
Copied!
ZeroMQ
If you want to take advantage of ZMQ pulling support to check for new frames, compile ZMQ and CPPZMQ with the draft API suppport. Also, you must set SSP_WITH_ZMQ_POLLING at SSP build time. Discussion available here​
libzmq3 4.3.1
1
cd ~/libs/srcOriginal
2
wget https://github.com/zeromq/libzmq/releases/download/v4.3.1/zeromq-4.3.1.tar.gz
3
tar xf zeromq-4.3.1.tar.gz
4
cd zeromq-4.3.1
5
mkdir build
6
cd build
7
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
8
make install -j4
Copied!
cppzmq 4.3.0
1
cd ~/libs/srcOriginal
2
wget https://github.com/zeromq/cppzmq/archive/v4.3.0.tar.gz
3
tar xf v4.3.0.tar.gz
4
cd cppzmq-4.3.0
5
cp *.hpp ~/libs/include
Copied!
yaml-cpp 0.6.0
1
cd ~/libs/srcOriginal
2
wget https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.6.0.tar.gz
3
tar xf yaml-cpp-0.6.0.tar.gz
4
cd yaml-cpp-yaml-cpp-0.6.0
5
mkdir build
6
cd build
7
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
8
make install
Copied!
Zdepth
1
cd ~/libs/srcOriginal
2
git clone https://github.com/catid/Zdepth.git
3
cd Zdepth
4
mkdir build
5
cd build
6
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
7
make install
8
cp libzdepth.a ~/libs/lib/
9
cp zstd/libzstd.a ~/libs/lib/
Copied!
spdlog
1
cd ~/libs/srcOriginal
2
wget https://github.com/gabime/spdlog/archive/v1.4.1.tar.gz
3
tar xf v1.4.1.tar.gz
4
cd spdlog-1.4.1 && mkdir build && cd build
5
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
6
make -j
7
make install
Copied!
NVPipe (optional, recommended for users with Nvidia GPU)
1
cd ~/libs/srcOriginal
2
git clone https://github.com/NVIDIA/NvPipe.git
3
cd NvPipe/
4
mkdir build && cd build
5
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
6
make
7
make install
Copied!
Azure Kinect SDK 1.3/4 (optional)
Note: to avoid getting a password prompt, run any command as sudo before starting this section of the tutorial
1) Add the Linux Software Repository for Microsoft Products.
1
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
2
sudo apt-add-repository https://packages.microsoft.com/ubuntu/18.04/prod
3
sudo apt-get update
Copied!
2) Install Azure Kinect SDK 1.3 (change 1.3 to 1.4 if you do not need body tracking)
1
sudo apt install libk4a1.3 libk4a1.3-dev
Copied!
3) To be able to use the Kinect as non-root, please run the following:
1
wget https://raw.githubusercontent.com/microsoft/Azure-Kinect-Sensor-SDK/develop/scripts/99-k4a.rules
2
sudo cp 99-k4a.rules /etc/udev/rules.d/
Copied!
4 a) If using 1.4, in the current package, the link to the canonical version of the depth lib is missing. You can create it by running the following command:
1
sudo ln -s /usr/lib/x86_64-linux-gnu/libk4a1.4/libdepthengine.so.2.0 /usr/lib/x86_64-linux-gnu/libdepthengine.so
Copied!
4 a) If using 1.3, the depth engine is missing from the package. Microsoft is aware of the problem, but it only corrected it in 1.4.
You can get the libdepthengine.so.2.0 file from the package at https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.4/libk4a1.4_1.4.1_amd64.deb. Open with Archive Manager (or equivalent), the file is in (data/./usr/lib/x86_64-linux-gnu/libk4a1.4/), and extract it to ~/libs/lib. You can then perform an equivalent command as above.
1
cd ~/libs/lib
2
ln -s libdepthengine.so.2.0 libdepthengine.so
Copied!
Azure Kinect Body Tracking SDK (optional)
Check instructions above to add the Linux Software Repository for Microsoft Products and then do:
1
sudo apt install libk4abt1.0-dev
Copied!
Building Sensor Stream Pipe
Download and build the project (the ssp_server, ssp_client and ssp_tester):
1
git clone [email protected]:moetsi/Sensor-Stream-Pipe.git
2
cd Sensor-Stream-Pipe
3
mkdir build
4
cd build
5
cmake .. -DSSP_WITH_KINECT_SUPPORT=OFF -DSSP_WITH_K4A_BODYTRACK=OFF -DSSP_WITH_NVPIPE_SUPPORT=OFF
6
make
Copied!
Now checkout Streaming a Video or Streaming a Dataset to see how you can stream local files with Sensor Stream Server to Sensor Stream Client.
Last modified 1mo ago