How to use ZoneMinder with cameras it may not directly support
Background
It's fun to see how people are using ZM. For example, I noticed user Yamanipanuchi post here that in his case, his camera is connected via a satellite backhaul and there is no way for ZM to reach it directly, but the camera does dump image frames to a directory. If ZM can access that directory, it can effectively "monitor" that camera
In another example, user nkostaki posted here that he needs to interface with a camera that does not (yet) work with ZM but some community hackers have created a perl script that can extract images from the camera
In both cases, given that there is some "external entity" (program) that knows how to get images, if only there was a way to connect ZM to these images, that would be excellent!
Source Type: File
Well there is, and that is what Source Type: File does with Zoneminder. The official documentation is rather terse though.
It really is very simple to set it up:
- You need to make sure that all the image frames are written to a single file (say image.jpeg) - each frame overwrites that image file. This is important to remember - single file. Not a directory of many files
- Set up a ZM monitor with source type as "file". Keep the FPS empty (unless you have a reason to put in a value. If you do, make sure the images are not arriving at a rate that is slower than this FPS)
- You need to point ZM's monitor to the full path including the file name. For example, if all your frames are being written to /home/image/myimage.jpg then that is the full path+name you provide to ZM
And that's all you need. ZM will keep polling this image and treat it as a new source