Point of sale

Diverse equipment for IP video surveillance

Viinex allows the use of virtually any IP video cameras or encoders with your software. This is provided by implementation of ONVIF and RTSP standards in Viinex, and by the fact that it is currently almost impossible to find an IP video camera which ignores that standards. Moreover, Viinex company cares about its product’s interoperability with diverse equipment, and provides support for new or previously untested camera models if this is required in your project.

Video playback

Video playback is made really simple with Viinex. Whether it is a live video, or a video fragment from the archive, - to play it, user interface has only to navigate the <video> element (or a JS player of your choice) to a specific URL. No need for re-inventing anything – Viinex serves video streams in de-facto standard HLS format. Video from Viinex can be played on any kind of device – whether it is a desktop with a browser, or an iPhone, or iPad, or an Android device, - and HLS is designed for real life Internet: NAT, proxies, restrictive firewalls were initially taken into account by protocol designers. The only network protocol that is required for video delivery with HLS is HTTP. Last, but not least: user experience is smooth with video streams served by Viinex. Video playback starts instantly, and seek function works responsively and accurately.


Subtitles are important feature for POS application of a video management system. Viinex operates on encoded H.264 video, and does not decode it in order to embed subtitles into the picture. Neither does it store the subtitles along with video in a media container, because such storage method prevents applications from effective search over the text data. That is, client software and user interface implementors have to store subtitles in a separate storage (for instance a RDBMS), and extract and render them using some specific API. On the other hand, Viinex carefully and precisely preserves the timing information coming with video acquired from IP cameras. This makes subtitles rendering quite easy. Indeed, all POS events like cash box opening, check cancellation, position cancellation, X- or Z-reports, are bound to their respective timestamps. When a video fragment is about to be shown to the end user, a corresponding set of events should be loaded to the UI from where the events are stored. Having this data ready, the user interface can subscribe to onTimeUpdate HTML5 event of a DOM element which plays the video, query its currentTime property, and render the subtitles matching the last rendered video frame’s presentation timestamp - right over the video, or in a separate HTML element, -depending on end user’s preferences.

Flexible deployment

Viinex can be deployed in a few different schemes. This can be a single instance performing all the video management on the same PC where the main POS-related logic lives. This can be a “blind” NVR-like box in addition to the PC where the POS-related software is deployed. This can be also a blind box performing the same video management functions, but, in addition, cooperating with an instance or a cluster of Viinex instances in the central “cloud”.

Private cloud

The data that POS application operates on is by definition sensitive. It is common that such operation should be performed in trusted datacentre. Viinex can be licensed for deployment in “private cloud” environment. Viinex has several dimensions to scale, if the application is large. It does not introduce restrictions, bottlenecks or single points of failure when instances of Viinex are running on multiple nodes of a single cluster.


Viinex pays attention to security. It has a well-documented “perimeter” – a single open HTTP port per each instance. There are no additional open ports or binary protocols. All API calls to Viinex are subject to authentication. Viinex does not itself implement TLS, but can be wrapped by a reverse proxy implementing TLS on the frontend of a whole application.