- Voyager I under Linux -
As I mentioned it on the IE page, I wanted to use this camera accessible from my webserver
running Linux for remote surveillance. That would mean writing a program which gets
called from a cgi script to connect to the camera and aquire an image. If I can
turn the day/night IR illumination feature on/off, that would be an added benefit...
Well, after about a day spent with wireshark and studying mjpeg and rtsp protocols,
I managed to write a small software which does that exactly. You can download the source
and an executable from below. The only thing you have to make sure though is to set up
the camera in IE to send MotionJPEG hi-res stream ( I did 2fps ) and enable anonymous
access ( or do root:root or something else you set it to ). You also have to know the
IP address of the camera as I have not implemented the discovery mechanism...
Also, this in not a production level code, variables are not named nicely, there is
plenty room for improvement on style etc. blah-blah-blah.. It's free... ;-)
The sequence of aquiring an image is :
1. Get description from the camera using DESCRIBE rtsp:// on port 554 ( unless you changed it )
2. Setup the streams with SETUP rtsp://
3. Start the video stream with PLAY rtsp://
4. Read the stream and reconstruct the image :
1. Buffer enough data
2. Analyze the data and look for Interleaved Frame markers
3. Look for JPEG-compressed video markers (0x1A/9A)
4. Find the MJPG header
5. Extract the payload
6. Reconstruct the JPEG header from the MJPG header
5. Save the file based on provided parameters.
On top of these, setting the IR illuminator is done with GET /param.cgi?action=update&
on port 80. The only trick was to generate the user/password field...
voyager_aquire IP.IP.IP.IP[:port] filename.jpg
where port 554 is used if not specified otherwise, filename is 'saved.jpg' if not specified
voyager_aquire IP.IP.IP.IP -nightmode or -daymode username password
voyager_aquire 192.168.1.101 snapshot.jpg
gets image from camera at 192.168.1.101 and saves it as snapshot.jpg
voyager_aquire 192.168.1.101 -nightmode root root
turns on the IR illuminator. Password for root is 'root' in this example.
Download the source file : voyager_aquire.c
Download the i386 Linux executable file : voyager_aquire
You can also aquire a snapshot by using this http request :
( Thanks goes to Asante )
After integration into my webpage, it looks like this :
Logging in to the camera : 'telnet -l root ip:801'
Go back to the Voyager I page.