Skip to content

viinex/vnxvideo

Repository files navigation

vnxvideo

vnxvideo is a shared library which contains the low-level C++ components of Viinex video management SDK. They can be of use on their own in some cases. Additionally, vnxvideo public headers are required to implement video sources plugins and/or video analytics modules for Viinex.

Folders

Headers intended for public use reside in include/vnxvideo.

src folder contains the implementation of vnxvideo library.

vnxview contains the implementation of a simple utility for viewing a raw video stream published by a Viinex component via the "local transport" feature (that is, video renderer with property "shared": true).

vnxvideotest is just a playground to experiment with various components implemented in vnxvideo.

Building

Dependencies

In order to build vnxvideo library, the following dependencies are required:

boost >= 1.41

OpenH264 >= 2.0.0 (https://www.openh264.org/)

Intel OneAPI (IPP 2019, OneAPI 2022) (https://software.intel.com/en-us/intel-ipp)

FFmpeg >= 6 (https://ffmpeg.org/download.html)

On Windows, DirectShow examples base classes library are also necessary (available at https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/multimedia/directshow/baseclasses or https://github.com/viinex/ambase). This project should be built in advance.

Windows

Make sure the dependencies are installed and/or built. Run the vnxvideo.sln solution with Microsoft Visual Studio 2015. Adjust the path to dependencies in the "Dependencies.props" property sheet. For that, in Visual Studio select Property manager -> vnxvideo project -> double click "Dependencies" property sheet -> go to User Macros tab and edit the variables IPP_HOME, FFMPEG_HOME, OPENH264_HOME, AMBASE_HOME according to locations of respective software on your local system. Boost should be restored using NuGet.

After that you should be able to build Release and Debug configurations of vnxvideo project for x86 platform.

Linux

Install boost-dev and libopenh264-dev packages on your system from stock distribution repository. Install intel-oneapi-ipp-devel. For that, Intel package repository needs to be added to sources.list:

wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | tee /etc/apt/sources.list.d/oneAPI.list
apt-get update
apt-get install -y intel-oneapi-ipp-devel

FFmpeg needs to be built from source at least on Debian 12 (because vnxvideo depends on FFmpeg >=6 whereas Debian 12 shipts with an older version). Set the variables IPP_HOME and OPENH264_HOME (FFMPEG_HOME may also be set a custom build in a non-system-wide location is preferred).

After that you should be able to build the libvnxvideo.so library using the GNU make command.

About

Low-level C++ components of Viinex video management SDK

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors