PHP - Catturare snapshot di IPCAM
Buongiorno a Tutti,
Sto lavorando su una vecchia IP CAM che ho installato com WEBCAM meteo nel mio sito meteo, ma che purtroppo non ha implementato ,nel suo pannello di controllo, il salvataggio temporizzato dell'immagine (snapshot)
La mia necessita è questa : dovrei salvare sul mio sito, l'immagine, snapshot ,della webcam IP ad intervalli di tempo predefiniti
Questa funzione la attuo (gia lo faccio per altre periferiche IP che uso) tramite cronjob che richiama ad intervalli di tempo, alcuni piccoli script php.
Alcuni di questi script, per esempio, catturano i dati meteo della stazione (temperatura, umidita etc etc) e li scrivono in database mysql , oppure li sovrascrivono sull'immagine di un'altra Webcam (analogica su webserver video linux) e cosi via...
Lo snapshot della mia ipcam riesco a raggiungerlo tramite questo comando html scritto direttamente nel browser
Codice:
'http://miodominio.dyndns.org:xxxx/GetImage.cgi?CH=1');
La Ipcam richiede user e pass per accedere. (user,pass...semplicemente). Alla richiesta del browser, semplicemente, inserisco i dati e mi compare nel browser l'immagine (snapshot).
Quel che vorrei fare io è , automatizzare questa operazione tramite script php richiamato da cronjob (server side) e salvare questa immagine in un file sul mio sito , per poi poterlo elaborare.
Non ho molta esperienza in php, e sto cercando di risolvere il problema...ma senza riuscirci.
Ho provato con questo codice ma non funziona, o meglio alle volte funziona (1 su 10)...ma la maggior parte delle volte restituisce un file vuoto.
Provato sia con FF che con IE
Quando funzi0na lo status è diverso da 0...mentre il piu delle volte è ZERO, sembra che non risesca a raggiungere la pagina
La porta xxxx sul mio router è aperta,funzionate e raggiungibile dall'esterno
Codice:
<?php
$username='user';
$password='pass';
$URL='http://miodominio.dyndns.org:xxxx/GetImage.cgi?CH=1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout dopo 30 seconds
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$result=curl_exec ($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //ritorna lo satus
echo $result;
curl_close ($ch);
file_put_contents('test.jpeg', $result);
?>
QUalcuno sa darmi qualche dritta per risolvere il problema?
Grazie e buon proseguimento
mario