VIDEO starter kit for Ignition Vision and Perspective 8.1 !
3 use case:
- A standalone video wall Ignition Vision project
- A video wall Ignition Vision Project with the choices of the cameras driven by an Ignition Perspective Project
- A video stream displayed in a standalone Ignition Perspective Project
(3. is a tricky and complex solution. Don't use it in production without running test over time)
-
Ignition Vision edition support :
- RTSP H264/H265 video stream (or video File, webcam, or Gstreamer test pattern).4K supported
-
ONVIF PTZ (Pan Tilt Zoom) commands to control camera PTZ if available. Command with:
- mouse :computer_mouse
- buttons
- usb joystick (tested only on windows OS)
-
Ignition Perspective edition support :
- RTSP H264/H265 video stream encoded to WEBRTC H264/VP8/VP9 or Gstreamer test pattern
-
ONVIF PTZ (Pan Tilt Zoom) command to control camera PTZ if available. Command with:
- buttons
Disclaimer : this starter kit is mainly used with OS windows, and few tests have been done with Linux ubuntu and macOS.
Feedbacks are welcome !
Installation:
-
Install Ignition 8.1.22+
-
import the project:
Dropbox - STARTER_KIT_VIDEO_v1.0.zip - Simplify your life -
import the images (for vision):
Dropbox - images.zip - Simplify your life -
load the modules according the use case:
-
for windows, 2 solutions:
- gstreamer separated installed : Download GStreamer
- install gstreamer : MSVC 64-bit (VS 2019, Release CRT) - 1.20.3 or .4 runtime installer
be sure to install all the plugins (good, bad and ugly) - use module light edition:
Dropbox - BYES-VideoViewerNextGen-signed-1.8.7-LIGHT.modl - Simplify your life
- install gstreamer : MSVC 64-bit (VS 2019, Release CRT) - 1.20.3 or .4 runtime installer
- gstreamer embedded
- use module heavy edition :
Dropbox - BYES-VideoViewerNextGen-signed-1.8.7.modl - Simplify your life
- use module heavy edition :
- gstreamer separated installed : Download GStreamer
-
for linux and macOS:
- install gstreamer : 1.20.3 or .4
- use module light edition:
Dropbox - BYES-VideoViewerNextGen-signed-1.8.7-LIGHT.modl - Simplify your life
-
-
load the module BYES-JoystickDriver if you want use o joystick or gamepad with a PTZ camera:
Dropbox - BYES-JoystickDriver-signed-1.8.3.modl - Simplify your life -
load the BYES-Utils modules. This module is only used in the vision project in order to manage some kind of "message" instead of binding.
Dropbox - BYES-Utils-signed-1.8.30.modl - Simplify your life
It contains lots of script function not used for this project.
The project can be modified to avoid its usage and use classic Ignition binding.
Settings:
-
Adjust settings in: shared.commun.constantesCustom.PLATFORM
- use of vision, perspective, a joystick or not
-
Adjust camera settings in: shared.commun.constantesCustom.VIDEO_SERVER
- onvif endpoint and rtsp stream user/password
- adjust the port serving the page of the iFrame with the webrtc client
- adjust the maximum perspective session displaying video stream
Launch Ignition Vision and/or Perspective Project
For perspective : start the video server: with the button: "Config & Start"
Important Notes:
-
some camera allow onvif command only if the times of the camera and the PC sending command are sync. For example, this is the case for Axis camera or IMOU camera.
-
Check your firewall allow communication for ONVIF port (80) and RTSP port (554) and webrtc iframe port (9000) if perspective is used.
-
With Ignition Vision, when testing on localhost, with Ignition Vision client and gateway launched on the same machine: use parameter : shared.commun.constantesCustom.IP_CLIENT_FILTER_VIDEO_WALL = False (IP address is used to detect that Ignition client vision and perspective session are on the same machine and "link" both client. This parameter bypass the test for test with client launched on localhost)
-
With Ignition Perpective, webrtc between Ignition gateway and browser client work only if the Perspective client session is launched with an IP address:
http://IP:8088/... instead of http://localhost:8088/... or http://127.0.0.1:8088/...** -
Perspective Chrome only support H264/VP8 video stream.
All H264 profile (low, medium, hight) are not always supported.
In such case you will have to choice the webM VP8 format well supported by the browser. -
For Perspective the RTSP stream is connected from the gateway.
According the source video format (H264/H265) and the destination video format (H264/VP8/VP9)
The module use gstreamer to decode/encode the video format and convert the transport protocol from RTSP to WEBRTC.
Some quality settings for encoding (low latency) can be used.
In theory, H264 source => H264 destination will make the lowest load for the gateway
Gateway CPU/RAM Load:
-
In case of perspective, each camera stream displayed in a perspective session give a CPU/memory
load for the gateway and a load in the browser as well.
We can put a maximum concurrent stream limit to avoid gateway overload.
We advice to use a dedicated gateway for video stream decode/encode. -
In case of vision, the load for each stream is supported by the each vision client.
Hardware:
Use camera with RSTP stream (H264/H265) on ONVIF PTZ support
-
For Professional solution:
- Camera : HIK, Axis, Sony, ...
- Joystick : AXIS T8311 Joystick | Axis Communications
-
For Personal or Proof of Concept solution, tested with:
- Camera IMOU : (from 70$) https://www.imoulife.com/en-GB/product/detail/rex (wifi & ethernet)
config tools for the IMOU camera:
Dropbox - General_ConfigTool_ChnEng_V5.001.0000001.0.R.20220728.exe - Simplify your life - Camera Tplink TAPO : (from 25$) Tapo C200 | Caméra de vidéosurveillance WiFi panoramique et inclinable Indoor 1080p 2MP | TP-Link France (wifi only)
- Windows : usb gameplay (for example EasySMX ESM 9100 USB)
- Camera IMOU : (from 70$) https://www.imoulife.com/en-GB/product/detail/rex (wifi & ethernet)
Tools for camera stream debug:
Some video test files:
- h264
- h265
Hope this help !