Image Grabber meldet service not found

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:

Bildschirmfoto 2019-07-11 um 20.40.57.png

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

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

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
)

Dann habe ich nicht wirklich eine Idee was da schief läuft :confused:

Irgendwie eine Firewall oder Proxy dazwischen?

paresy