Make It Till You Fake It
A non-canonical yet functional case of running Evo uses pre-recorded videos instead of live-streaming cameras. Why do that? Here are a few examples:
- showrooms, presentations, and exhibitions
- digital signage
- customer demos and PoC
- video analytics PoC and testing
For instance, if Evo 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 Evo 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 to appear when you go live.
So how do you set that up in Evo?
Prepare the File
Evo works with original *.avi files exported from Evo Monitor or Portable Player (or even Luxriot 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
Evo only understands mono PCM 8/16 bit, PCM-A/PCM-U. Also, if the original file contains multiple tracks, Evo will select the first track when playing the video.
Put the file onto the target Evo server.
In Evo Console, add a new device and set its model to (Emulation) Video File.
Click Apply and then switch to the channel properties using the Related items button that just appeared in the bottom left corner.
Did you know that you can also create static image channels using the (Emulation) JPEG File model. These come handy for ads, logos, or as static background 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 Evo Console connections, enter the file location manually.
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: Evo will ignore the audio track if the delay setting differs from 0. Otherwise, this setting is a convenient way to control FPS.
When configuring a lot of emulation channels on the same server, take into account the disk read load.
Save the settings: you should now have the live video view in Evo Monitor. You can also quickly check the video status from Evo 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 Evo Monitor's channel notification panel will display an error. Common reasons:
- unsupported file format or codec
- incorrect file name or path (file does not exist)
- weird resolution (e.g., odd pixels like 1333x1080)
If nothing's wrong... well, you will see your video imitating an IP camera!