ICamviewRelay

From ZoneMinder Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This is a small application that can be used to allow an ICamview to be used with Zoneminder.

There are 2 methods of getting images out of this. You can do jpeg grabs by sending a url, but it redirects you to a login page the first time you try to access the image and it's not any kind of standard http login method, so I gave up on that.

To get streaming images it uses udp, and a little bit of playing about with ethereal let me work out the protocol well enough to knock up a relay app that gets jpegs using the udp method and sends them out as an mjpeg stream. You can then connect to the relay as if it were a network camera. Unfortunately (depending on your point of view) it's written in java as that's what I do for a living and I haven't had time to relearn C and all the sockets/threading stuff. If anyone wants to port it to C then feel free, but please post it back here so I can use it!

usage is:

java -cp . ICamviewRelay <icamview ip addr> <icamview port> <fps> <local server port> <icamview user> <icamview pass>

to compile it:

javac -cp . ICamviewRelay.java

ICamviewRelay.java

http://www.icamview.com


this works perfectly..! with the following entry in the Remote Host Path /icamviewrelay?cam=01


2013-09-10 - I've been playing with this code, and had a few disconnection problems with it. I've therefore added a reconnection boolean to the code, which will restart the capture thread the next time ZM attempts to connect should the connection to the ICamView camera fail.

I've also added log4j logging and written a simple Linux init script which can be used to start and stop this tool. Its been running for over 24 hours so far, and is happily restarting whenever the connection hiccups, so submitting it here for others.

Please see the downloadable here: icamviewrelay-0.4

Instructions are in the readme - Linux only atm, but I am sure it can be modified for other systems.