Ziskanie jedneho frame z mjpeg pomocou PHP

Programovacie jazyky, rady, poradňa...
Ovecka
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1227
Registrovaný: 25 aug 2005, 0:57

Ziskanie jedneho frame z mjpeg pomocou PHP

Príspevok od používateľa Ovecka »

Cafko hosi vedel by niekto poradit ako ziskat jeden frame z mjpeg streamu pomocou php ?

nasiel som tento php kod ale obrazok mi nechce zobrazit :/

Kód: Vybrať všetko

$camurl = "http://204.248.124.202/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);
hlavicka vyzera byt okej

Kód: Vybrať všetko

--myboundary
Content-Type: image/jpeg
Content-Length: 56391
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Re: Ziskanie jedneho frame z mjpeg pomocou PHP

Príspevok od používateľa jorg22 »

Predtym som este nepocul o formate mjpg. Pre zajimavost som to nakodil podla intuicie, takze asi ten kod nebude univerzalny ale konkretne na tejto stranke funguje.

Kód: Vybrať všetko

<?php

	header("Content-type: image/jpeg");
	$camurl = "http://204.248.124.202/mjpg/video.mjpg";

	$handle = fopen($camurl, 'r');
	$end = '--myboundary'; //Na zaciatku kazdeho obarazku sa posiela tento string
	
	$image = '';
	
	$i = 0;
	$count_end = 0;
	while( ( $buffer = fgets($handle, 1024) ) !== false ){
		if( stristr($buffer, $end) )
			$count_end++;
			
		if($count_end > 1)
			break;
	
		if($i > 3) //Od 3 riadku zaciana obrazok
			echo $buffer;
			
		$i++;
	}
	fclose($handle);
?>
dufam ze pomoze.
uplink
VIP
VIP
Používateľov profilový obrázok
Príspevky: 15220
Registrovaný: 22 máj 2005, 23:01
Bydlisko: Hnúšťa
Kontaktovať používateľa:

Re: Ziskanie jedneho frame z mjpeg pomocou PHP

Príspevok od používateľa uplink »

motion jpeg, trochu iný mpeg :) v sekvencii máš kopec jpegov a z nich je vytvorený mjpeg. Mpeg funguje tak že dokáže zenkódovať celú farbu [povedzme bielu] v kaďzom frame paušálne. Mjpeg funguje tak že má na každý frame samostatný obrázok [kontajner].
Napísať odpoveď