Viinex provides several features for working with video that can help you easily add various video sources into your application:
- IP cameras
- USB cameras (webcams)
- Third-party VMS (read the separate topic about it).
RTSP URL & ONVIF
Viinex supports receiving video from IP cameras and IP video sources that realize RTSP+RTP protocols and H.264 video codec. For accessing these devices Viinex supports Basic and Digest authentication methods outlined in RTSP specification. For RTP data transfer protocol Viinex offers its realizations over UDP Unicast, UDP Multicast and TCP (RTP over RTSP, interleaved mode). Viinex can be set up to work with an RTSP video source with an URL – for example, a synthetic video source like VLC stream server.
IP camera auto discovery
For working with video cameras, one can either manually input camera RTSP URL or let Viinex automatically find this URL via ONVIF protocol. Via API Viinex provides the integrating application with features of automatic discovery of ONVIF devices in the network, as well as accessing the device directly via HTTP POST (probe).
Viinex allows to control PTZ cameras via ONVIF specification using a simple control command in one line of HTTP request, being a proxy for ONVIF devices’ PTZ interface. Instead of fighting with XML, SOAP, namespaces and so on, with Viinex one may send a PTZ command with just a short 1-liner using for instance the CURL utility.
There are HTTP calls for managing presets and moving the PTZ device to a preset or to an arbitrary position. Viinex does not save state of the PTZ device; neither does it perform additional checks on call parameters. Therefore no additional behavior peculiarities are introduced, in comparison with what an ONVIF device without Viinex would do. Wherever possible, Viinex automatically infers motion coordinate spaces’ URIs, media profile token, and other stuff required by ONVIF PTZ specification. As a result, the most complicated call to the PTZ API in Viinex accepts as much as just 3 arguments for pan, tilt and zoom coordinates.
Viinex support for PTZ cameras and allows send a PTZ command with just simply HTTP calls for:
- managing presets
- moving the PTZ device to a preset
- moving the PTZ to an arbitrary positionViinex does not save state of the PTZ device; neither does it perform additional checks on call parameters. As a result, the most complicated call to the PTZ API in Viinex accepts as much as just 3 arguments for pan, tilt and zoom coordinates.
IP camera detectors
ONVIF specification standardizes a protocol for user applications receiving events from IP video surveillance devices – in particular, from built-in video detectors, like a motion detector.
Viinex uses subscription method described in ONVIF specification, that allows receiving events directly from IP cameras (more details) and provides them to the integrating application via API.
Viinex realizes rules for processing such events to control video recording with the help of these rules or scripts. Rules in Viinex allow combining events from several video detectors, including detectors on different cameras – for example, to control video recording from a group of cameras.
It helps perform two general tasks receiving events from the cameras in client application in real time via web sockets interface and setting rules, like automatically start and stop video recording in case of alarm. Just as in case with an external control of video recording, these rules control groups of cameras, which simplifies Viinex settings in typical scenarios.
USB cameras (webcams)
DirectShow & Video4Linux
Viinex supports RAW video sources and capture devices (grabbers) via program interfaces for Windows and Linux operating systems. Video from these devices can be further recorded or streamed using standard Viinex features.
USB camera auto discovery
For convenient connection via the API, Vinex provides an integrating application with a feature of automatic discovery of such devices by a standard HTTP request, delivering in response a list of such devices, registered by Windows or Linux OS.
Video from USB cameras (webcams) is captured in raw format, i.e. uncompressed. For archive recording or streaming the video should be compressed. Viinex offers a video compression feature that encodes it using Advanced Video Coding (AVC) H.264 algorithm in compliance with AVC Portfolio License.
H.264 codec was chosen because since the time of its creation it has penetrated deeply into all fields related to working with video, it can be played back almost on any device or browser and has no problems whatsoever in web applications, since they natively support it (caniuse H.264).
Viinex provides a flexible array of settings that allows to choose proper image quality and acceptable occupation rate by adjusting the output bitrate of the video stream.