Network Video ReStreamer
This ReStreamer device accepts any URL supported by OpenCV's VideoCapture class. Any authentication required must be supplied in the URL. A typical IP Camera live Stream URL will look like:
rtsp://user:password@1.2.3.4:554/streamName
Static video files on the gateway may be served given the path to the file. As long as the device instance is enabled, the file will repeat upon completion. The driver can use frames-per-second metadata in many file formats to control delivery. Use the Frame Pace Override setting to slow down the automatic frame rate if necessary. The Stream URL setting would be something like this:
/path/to/video/folder/someVideo.mp4
Series of numbered static image files on the gateway can be served as if a video given a suitable number replacement pattern in the file name. The Frame Pace Override is required in this case. The file path for a series of images starting with image_001.jpg would be something like this:
/path/to/images/folder/image_%03d.jpg
The quality factor for MJPEG compression is adjustable. The relatively low default of 0.5 is suggested to minimize CPU utilization.
WARNING! This driver type is a CPU Hog at high resolution and/or fast frame rates! On a 2.1GHz Xeon E5, decoding a 1080p 30fps camera stream consumes ~40% of a single core, all the time. Compressing that stream at full scale (when there is at least one client) consumes ~60% of another core. A half-scale client produces ~30% load on the compression thread. Quarter-scaling is much less demanding.
To mitigate the risk to a production system, the scaling and compression thread for each driver instance runs at a lowered priority, and will drop frames if overloaded. However, there can be latency spikes in the rest of the gateway if all CPUs use their excess time compressing for MJPEG clients.
If this driver will be used with multiple cameras, be sure to provide many CPU cores.