Viinex 2.0 provides the most essential functionality for video management. With Viinex, you can have all of that features right in your application.
Viinex 2.0 is capable of acquiring video from IP cameras and IP encoders supporting RTSP+RTP protocols and H.264 video format. Viinex supports "Basic" and "Digest" RTSP authentication methods. For RTP, the UDP unicast, UDP multicast, and TCP (RTP over RTSP, interleaved mode) implementations are available. Viinex 2.0 can be set up to work with an RTSP video source with a known URL, - that is, it can be also some synthetic video source, such as VLC streaming server. For video cameras, it is possible to specify RTSP URL or to let Viinex find it out automatically via ONVIF protocol.
Viinex 2.0 stores video data acquired from cameras in a folder on a filesystem mounted at the server where Viinex is running. This can be a local storage device, or a remote folder (NAS), or a local folder on a remote storage like iSCSI SAN.
Viinex 2.0 automatically maintains the restrictions set for video storage, which can determine maximum video archive size in terms of disk space or maximum video archive depth in terms of time. Given the restrictions set, older video records are overwritten by newer ones, like with any other video management system.
Video data is stored in containers of standardized MP4 format, which can be viewed by means of traditional widely available tools like Windows Media Player, QuickTime, etc. Directory structure where video data is written is very transparent, so it is possible for a user to inspect stored video data and even manipulate it (make excerpts from, or merge fragments) if required - by simply copying files and folders.
Streaming of live or archive video data to clients is performed using HLS protocol. HLS stands for HTTP Live Streaming, which means that HTTP is the transport protocol for video delivery. As a consequence, this approach works well on Internet, even in presence of NAT, restrictive firewalls, and so on.
Viinex 2.0 also implements RTSP server for streaming video to traditional RTSP clients. It supports RTP over UDP unicast, multicast and TCP, implements digest authentication, which allows using Viinex as a convenient RTSP proxy. Of course, Viinex 2.0 RTSP client is compatible with Viinex 2.0 RTSP server, enabling an option to get the live video stream from one Viinex instance to other Viinex instances, who, in their turn, can stream the same data over RTSP or over HLS. This makes it possible with Viinex 2.0 to scale the streaming of data from a single video camera to an unlimited number of remote clients.
Exporting video fragment with Viinex 2.0 is as easy as downloading a file using a web link. Client code determines a time interval which should be exported and issues a HTTP request. The exported media is returned in HTTP response.
Viinex 2.0 supports MP4 and MPEG TS containers as exported output formats; that is, downloaded file can be played on standard media players built into OSes, even 10+ years old (like Windows 7). There is no need to install third-party players, codec packs or whatever, in order to play video exported by Viinex.
External control over video recording
For applications using Viinex 2.0, an API is exposed to control over when the video recording should start and stop. For convenience, one API call is used to start/stop recording on a pre-configured group of cameras (the group may consist of one camera). Of course, pre-recording buffers are supported, and post-recording timeout is supported as well.
Events acquisition and rules for video recording
Viinex 2.0 supports subscription mechanism which allows obtaining events from video cameras supporting ONVIF specification. This makes possible to do two things: a) to get these events in embedding applications via web sockets interface, right in real time, and b) to set up the rules for automatically triggering the video recording on and off, when an alarm events occur. As with external control over video recording, the rules are aware of groups of cameras, which makes the setup really easy for basic scenarios.
License plate recognition
A license plate recognition engine is built into Viinex 2.0 and, as other features, is available via HTTP RPC. To perform the license plate number recognition, the client's code sends an image as an HTTP request and gets the recognition result in the body of the HTTP response. Such scheme requires that the client software knows when the car license plate is within the camera's field of view. This is usually the case when the client software is intended for the automation of checkpoints.
An important feature of the LPR engine built into Viinex 2.0 is that it is not bound to a single camera: the client software may use one instance of the engine to do license plate number recognition from many cameras.
LPR engine offered with Viinex 2.0 has no adjustments required for a specific camera position. It makes the deployment and usage of this LPR engine very simple. Everything that has to be done to perform a license plate number recognition on a checkpoint is to acquire a JPEG image and feed it as is to Viinex 2.0 LPR engine, - without any additional parameters.