Intellinet SOHO (501583) IP-cam
Posted: Sun Jul 29, 2007 8:28 pm
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).
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).