A microservice for video management
Viinex is a software development kit (SDK) for adding video surveillance and video management features to customer's application. Viinex implements functionality for acquiring video data from external devices (IP cameras and encoders), storing video in a video archive, re-streaming video to clients in live mode as well as on demand. It also allows your application to decide when the video from external sources should be recorded, and takes care of low-level aspects of video management including buffering for of pre-recording, precise handling of groups of pictures and keyframes within video stream for exact positioning withing video archive, accurate accounting for presentation timestamps, etc.
Conformance to standards
In its interaction with applications, particularly in media interchange, Viinex sticks to ISO-standardized protocols and media formats. Dealing with H.264 video codec, Viinex provides access to recorded video in such formats as MP4, MPEG TS, and in form of raw H.264 stream, which is convenient for a number of video processing applications. Internally, Viinex stores and manages video archive as a sequence of MP4 files named and arranged across subfolders, according to the video origin and timestamps, in a transparent and obvious manner. This allows, in case of necessity, for a user to operate on video archive by standard means, such as Windows built-in media player (for example if media containing video archive is detached from the computer where the client software was installed and brought to another standard PC with no additional software).
When it comes to streaming video to the client, Viinex 2.0 implements HLS specification, making video playback possible on most of popular browsers, including Apple Safari on iOS and Microsoft Edge. Browsers supporting Media Streaming Extenstions - Google Chrome and Mozilla Firefox - handle HLS streams via JS-based players, - the frontend application developers may choose the most appropriate one.
Viinex also supports WebRTC for live video streaming. This allows a peer-to-peer connection between a Viinex instance and client's browser to be used to deliver video content to the client in real time, with the latency below 300 milliseconds, -- which is totally appropriate for live surveillance and PTZ applications.
Viinex is inherently embeddable, and contains no end-user interface. Being a microservice, it is totally separated from customer's application address space; there's no need for linking your code with client libraries. All interaction with Viinex is performed via HTTP REST-like programming interface. Web clients, like single-page web applications, are of the main priority for Viinex, however HTTP API can be easily reached from wide range of programming languages, from C/C++ to shell scripts.
Read more on Viinex:
For detailed information on using Viinex, please refer to the documentation.