Hi,
ich wollte heute eine neue Kamera einbinden und über den Image Grabber Bilder auslesen,
beim auslösen des Image Update bekomme ich immer folgende Fehlermeldung:
Jemand eine Idee?
Wenn ich die URL zur Kamera im Browser aufrufe, sehe ich das Bild einwandfrei.
IPS 5.1 Prof.
Wansview W2 Kamera
Danke und Grüsse,
Mike
paresy
12. Juli 2019 um 09:50
2
Wie ist denn die URL der Kamera? Vorne oder hinten Leerzeichen zu viel?
paresy
Hallo Michael,
die Kamera wird über
http://username:password@ipaddress:port/mjpeg/snap.cgi?chn=0
angesteuert, was im Browser 1a geht. Habe den Image Grabber schon mit und ohne
Benutzername/Passwort jeweils auch mit username/passwort in der URL - immer das
gleiche Ergebnis.
Binde ich die o.g. URL als Stream-Objekt ein, geht das …
Viele Grüsse,
Mike
Hi,
mjpeg ist Video. jpg oder png sind Bilder. Ich glaube nicht das der Image Grabber Standbilder aus Videos ausliest. Die Kameras haben eigentlich (fast) immer auch eine URL für Standbilder.
Ralf
Hallo Ralf,
vielen Dank für den Hinweis. Dies ist die URL für ein Standbild. Der Videostream wird über eine andere
URL angetriggert.
VG,
Mike
paresy
12. Juli 2019 um 15:02
6
Funktioniert die URL wenn du im Skript einmal ein file_get_contents aufrufst?
paresy
Moin Michael,
leider nein, sowohl file_get_contents als auch curl melden fehler
function RegisterMediaObject($Name, $Typ, $Parent, $Position, $Cached, $Filename)
{
if (!IPS_MediaExists($this->GetIDForIdent($Name))) {
// Image im MedienPool anlegen
$MediaID = IPS_CreateMedia($Typ);
// Medienobjekt einsortieren unter Kategorie $catid
IPS_SetParent($MediaID, $Parent);
IPS_SetIdent ($MediaID, $Name);
IPS_SetName($MediaID, $Name);
IPS_SetPosition($MediaID, $Position);
IPS_SetMediaCached($MediaID, $Cached);
$ImageFile = IPS_GetKernelDir()."media".DIRECTORY_SEPARATOR.$Filename; // Image-Datei
IPS_SetMediaFile($MediaID, $ImageFile, false); // Image im MedienPool mit Image-Datei verbinden
}
return;
}
$url = 'http://192.168.0.82/mjpeg/snap.cgi?chn=0';
$url = 'http://admin:123456@192.168.0.82:80/snap.jpg?usr=admin&pwd=123456';
$username = 'admin';
$password = '123456';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$Content = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
print_r($info);
//echo $Content;
IPS_SetMediaContent( 48371, base64_encode($Content)); //Bild Base64 codieren und ablegen
IPS_SendMediaEvent(48371);
hier das result:
Array
(
=> http://admin:123456@192.168.0.82:80/snap.jpg?usr=admin&pwd=123456
[content_type] => text/html
[http_code] => 401
[header_size] => 240
[request_size] => 119
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0,026004
[namelookup_time] => 0,000231
[connect_time] => 0,010195
[pretransfer_time] => 0,010671
[size_upload] => 0
[size_download] => 351
[speed_download] => 13500
[speed_upload] => 0
[download_content_length] => 351
[upload_content_length] => -1
[starttransfer_time] => 0,025748
[redirect_time] => 0
[redirect_url] =>
[primary_ip] => 192.168.0.82
[certinfo] => Array
(
)
[primary_port] => 80
[local_ip] => 192.168.0.21
[local_port] => 53670
[http_version] => 2
[protocol] => 1
[ssl_verifyresult] => 0
[scheme] => HTTP
[appconnect_time_us] => 0
[connect_time_us] => 10195
[namelookup_time_us] => 231
[pretransfer_time_us] => 10671
[redirect_time_us] => 0
[starttransfer_time_us] => 25748
[total_time_us] => 26004
)
paresy
17. Juli 2019 um 09:13
8
Dann habe ich nicht wirklich eine Idee was da schief läuft
Irgendwie eine Firewall oder Proxy dazwischen?
paresy