Pre-recorded Video in Ganz CORTROL VMS
October 2022
A non-canonical yet functional case of running CORTROL uses pre-recorded videos instead of live-streaming cameras. Why do that? Here are a few examples:
For instance, if CORTROL runs as a chain store VMS, you do not need to purchase separate software to place video advertisements. Moreover, you can personalize it according to the customer's shopping choice or face if facial recognition is allowed in your area.
A more technical usage is a solace for engineers and testers: verify LPR settings, test people counting on different scenes, run hardware load tests — you name it! On top of that, for CORTROL promoters, there is the option to prepare some neat/professional/100%-working clips and use them to demo the system without worrying about network issues, setting accuracy, or other unexpected problems when you go live.
So how do you set that up in CORTROL?
Prepare the File
CORTROL works with original *.avi files exported from CORTROL Client or Portable Player (or even Ganz VMS). Convert all other files into a compatible format (h264-encoded AVI). You can download and use the FFmpeg tool from the command line:
ffmpeg.exe -y -i video.mp4 -c:v libx264 -an -b:v 1000000 -r 25 -x264-params keyint=25:min-keyint=25:scenecut=25:open-gop=0:bframes=0:repeat-headers=1 -s 1920x1080 output.avi
Where the adjustable parameters are: video.mp4 is the input file, output.avi is the converted file, and 1920x1080 is the target (output) resolution (which you can adjust to your needs).
If you want to include audio:
ffmpeg.exe -y -i raw_video.mp4 -c:v libx264 -acodec pcm_s16le -ac 1 -ar 16000 -b:v 4000000 -r 25 -x264-params keyint=25:min-keyint=25:scenecut=25:open-gop=0:bframes=0:repeat-headers=1 -s 1280x720 output_with_audio.avi
CORTROL only understands mono PCM 8/16 bit, PCM-A/PCM-U. Also, if the original file contains multiple tracks, CORTROL will select the first track when playing the video.
Put the file onto the target CORTROL server.
Add Device
In CORTROL Console, add a new device and set its model to (Emulation) Video File .
Create the emulation device
Click Apply and switch to the channel properties using the Related items button in the bottom left corner.
Did you know that you can also create static image channels using the (Emulation) JPEG File model? These come in handy for ads, logos, or as static backgrounds for POS data.
Here, in the Video file configuration tab, enter the full file path. You can use two files to emulate both primary and secondary streams — these can be different videos! If you are connected locally, you will have the Browse button opening Windows Explorer; for remote CORTROL Console connections, enter the file location manually.
Specify the file to serve as the emulation source
The only setting here is the delay : the number of milliseconds between two consecutive video frames. Set it to 0 (zero) to avoid any delay. The default setting is 40, meaning there will be a 40ms pause between frames. Zero delay value is a must for video clips containing audio : CORTROL will ignore the audio track if the delay setting differs from 0. Otherwise, this setting is a convenient way to control FPS.
Consider the disk read load when configuring many emulation channels on the same server.
Enjoy
Save the settings: you should now have the live video view in CORTROL Client. You can also quickly check the video status from CORTROL Console by clicking the Show video button in the channel list. If something is wrong, you will have a black screen; the channel will be marked red (offline) in the resource tree, and the video and CORTROL Client's channel notification panel will display an error. Common reasons:
If nothing is wrong... well, you will see your video imitating an IP camera!
Emulated video channel with running CORTROL
There you have it; you can now use your emulation channel just like any regular camera stream for broadcasting, recording, VA, or other purposes.
Do you want to learn more about CORTROL VMS or request a demo? Visit www.ganzsecurity.com/cortrol or contact us.