Hi,
Some time ago I purchased a fairly cheap Intellinet IP-cam (SOHO-501583).
Turns out it is not quite supported by zoneminder. It has it's own java-based app to read and display the images produced by the cam.
Some analysis of the communication between this java app and the cam showed that it's quite simple to read a JPEG image from the camera, so I made a small perl script to continuously read images from the cam and place them in a pre-defined file.
When I configure ZM to use a 'file' type camera and point it to the file I'm saving to disk continuously, it seems to be working okay, only the framerate is very variable (13 - 40 fps).
I would very much like to enhance this simple script to enable a direct connection between ZM and the camera, either by creating a sort of proxy-server between ZM and my cam, or by making it a suitable backend in ZM...
What would be the best choice and where can I find the info I need to proceed?
If anyone is interested in the current state of this script, I'll be happy to post it, but I'd rather enhance it to a version that integrates better and can support more than 1 camera...
Regards,
Stanley.
(FWIW, the communication with the cam is really simple: open a socket to <cam-ip>:4321. To receive an image: write ascii "0110<CR><LF>" to the socket. Read 2 bytes. These 2 bytes contain in network byte order the size of the image that will follow. Read 2 more bytes (this is some kind of status message I cannot make much sense of, it is always 0x0100). Then read the # of bytes from the first read, dump these to a file: it is a complete jpeg image. Repeat until killed).
Intellinet SOHO (501583) IP-cam
I wrote something similar a while back for a different kind of network camera.
http://www.zoneminder.com/wiki/index.php/ICamviewRelay
It's written in Java, which may or may not be your thing, but it essentially does the same job that you want to do:
- listen on a socket for a conenction from zm
- log in to the camera and request images
- receive images from camera and send then to zm in mjpeg format
Yours should be even more simple as your actually receiving a whole jpg from the camera.
Feel free to adapt my code as you need
Neil
http://www.zoneminder.com/wiki/index.php/ICamviewRelay
It's written in Java, which may or may not be your thing, but it essentially does the same job that you want to do:
- listen on a socket for a conenction from zm
- log in to the camera and request images
- receive images from camera and send then to zm in mjpeg format
Yours should be even more simple as your actually receiving a whole jpg from the camera.
Feel free to adapt my code as you need
Neil