Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Estrarre jpg da stream rtmp o mjpg su cgi

    Salve,
    io vorrei sapere se esiste un codice php che estrare da uno stream rtmp o da un flusso mjpg (di una ipcam) una anteprima jpg che viene salvata sul server che ospita lo script con un intervallo di tempo predefinito.

    Lo so che chiedo molto ma vi prego di aiutarmi.

    Grazie in anticipo

  2. #2
    Ciao,

    estrarre una JPG da un flusso MJPEG è una banalità, infatti basta effettuare una richiesta HTTP ed estrarre dal flusso multipart il primo elemento

    Qui c'è un esempio, anche se sono presenti svariati difetti, comunque facilmente aggirabili
    http://www.copypastecode.com/7020/

    Il più grosso è che non estrae il boundary dall'header, quindi se il boundary non cambia tra le richieste bene, altrimenti devi modificarlo per fargli analizzare gli headers della richiesta HTTP

    Inoltre, invece di analizzare correttamente il flusso dati fa un'operazione abbastanza "contorta" per avere un blocco dati dal quale leggere :\

    Però, se non hai necessità particolari penso possa andarti bene
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    ho usato il codice
    Codice PHP:
    <?
    $camurl
    ="http://user:pass@host/mjpg/video.mjpg";
    $boundary="\n--";
    $f = @fopen($camurl,"r") ;
       if(!
    $f)
       {
            
    //**** cannot open
            
    echo "error";
       }
        else
      {
            
    //**** URL OK
             
    while (substr_count($r,"Content-Length") != 2$r.=@fread($f,512);
             
    $start strpos($r,'ÿ');
             
    $end   strpos($r,$boundary,$start)-1;
             
    $frame substr("$r",$start,$end $start);
             
    header("Content-type: image/jpeg");
             echo 
    $frame;
       }
    fclose($f);
    ?>
    Ma come risposta ottengo "error". come faccio?

  4. #4
    ho provato a cambiare server e funziona...sarà la versione del php.
    ora vorrei sapere come aggiungere sull'immagine un logo e una barra con del testo nella parte bassa.

  5. #5
    Originariamente inviato da peppescocuzza
    ho provato a cambiare server e funziona...sarà la versione del php.
    ora vorrei sapere come aggiungere sull'immagine un logo e una barra con del testo nella parte bassa.
    mmm apri un nuovo thread, sono due domande decisamente differenti
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2016
    Messaggi
    2
    riapro questo thread per chiedervi aiuto in merito
    ho anche io una ipcam che mi restituisce un flusso mjpeg (se apro il link $camurl nel browser mi scarica il video mjpeg)
    vorrei anche io estrarre un fotogramma jpg ma con questo script non ci riesco, dopo alcuni secondi mi da "error"
    le ho provate tutte, script con curl, fopen, shell_exec...


    <?php
    $camurl="http://MIAURL:PORTA/livestream.cgi?user=MIOUSER&pwd=MIAPASS&streamid=0 ";
    $boundary="\n--";
    $f = @fopen($camurl,"r") ;
    if(!$f)
    {
    //**** cannot open
    echo "error";
    }
    else
    {
    //**** URL OK
    while (substr_count($r,"Content-Length") != 2) $r.=@fread($f,512);
    $start = strpos($r,'�');
    $end = strpos($r,$boundary,$start)-1;
    $frame = substr("$r",$start,$end - $start);
    header("Content-type: image/jpeg");
    echo $frame;
    }
    fclose($f);
    ?>

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Benvenuto.
    Da regolamento (per favore leggilo in ogni sezione in cui decidi di scrivere) non si tirano su vecchi thread.
    Aprine uno nuovo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.