just playing with the Conrad Grand IP Camera which is indeed a grandtec IP CAM 3.
Stills working with about 3-5 fps.
The Crap of jpeg header in the mjpeg stream can be removed with
the script at the end of this post (i found it here but can`t find anymore the origins) but it seems to be the very same image quality.
The max. Framerate is also the same.
Image Quality is what you pay for ( about 95 Euro)...
The Cam here has the night view lens (without ir filter).
This renders the cam useless for outdoor views as ANY IR-Source will overexposure the hole picture. Also indoor is very lightning critical. The cams autoexposure seems to be useless.
Also you can patch ZM like this:
http://www.zoneminder.com/forums/viewtopic.php?t=11574
The Offset is 35 bytes.
Hostname: IP or host of cam
Hostpath: /still.jpg
Maybe you must prepend with username:password - but this can be fully disabled in the cams Webinterface.
I also tried to use another Firmware (an Hama modell may be the same or very similiar) but then the cam think it is an toaster....no images anymore.
If you have questions - just ask.
HTH
Sirell
---
Code: Select all
function handlejpeg($bork,$i) {
$jpeg=substr($bork,35);
echo "--video boundary--\r\n";
echo "Content-length: ".strlen($jpeg)."\r\n";
echo "Content-type: image/jpeg\r\n";
echo "\r\n";
echo $jpeg."\r\n";
}
@ini_set('zlib.output_compression', 0);
@ini_set('implicit_flush', 1);
Header('Content-Type: multipart/x-mixed-replace;boundary=--video boundary--');
$handle = fopen("http://62.112.133.195/video.cgi", "r");
$start=0;
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 409600);
if($start==0 && $buffer=="--myboundary\r\n") {
$crap = fgets($handle, 409600);
$crap = fgets($handle, 409600);
$start=1;
$jpeg=fgets($handle, 409600);
} elseif($start==1) {
if(preg_match("/--myboundary\r\n/",$buffer)) {
$jpeg.=preg_replace("/--myboundary\r\n/","",$buffer);
handlejpeg($jpeg,$i);
$i++;
$crap = fgets($handle, 409600);
$jpeg=fgets($handle, 409600);
$jpeg="";
} else {
$jpeg.=$buffer;
}
}
flush();
}
fclose($handle);
}