flush Problem mit Images

Hallo zusammen,

bin grad an einer Integration für LIVE Webcam Bilder in IPS - Ohne die Webcam direkt über Portforwarding freizugeben.

Habe das Script auf meinem IIS mit PHP eigentlich schon einwandfrei am laufen.
Dh. das Script liest ein Bild / Sekunde von der WebCam ein und streamt es als MJPEG Stream an den Browser weiter.
Soweit so gut - es funktioniert einwandfrei beim IIS.
Wenn ich das jedoch in IPS probiere (zb. eigen Webserverinstanz), dann kommt folgendes Gedönz:
–> Das Bild ändert sich auch alle Sekunde, dh. der Stream funktioniert - allerdings eben komische Anzeige :wink:

Eine einzelne Ausgabe des JPEG Bildes funktioniert prächtig. Allerdings sobald ich flush(); verwende geht alles hin.
Ideen? Liegt das am IPS-Webserver (Fehler?!) - Das PHP Script funktioniert einwandfrei mit dem IIS.

bild.jpg


  $boundary = "my_mjpeg";
	header("Cache-Control: no-cache");
	header("Cache-Control: private");
	header("Pragma: no-cache");
    header("Content-type: multipart/x-mixed-replace; boundary=$boundary");
	
	set_time_limit(30);
	@ini_set('implicit_flush', 1);
	for ($i = 0; $i < ob_get_level(); $i++)
		ob_end_flush();
	ob_implicit_flush(1);	
	
	print "--$boundary
";
	
	while (true) {
    # Per-image header, note the two new-lines
    print "Content-type: image/jpeg

";

    # Your function to get one jpeg image
    print ShowImage();

    # The separator
    print "--$boundary
";
	flush_buffers();
	usleep(1000000);
}
	
	
function ShowImage(){	
	$url  = "192.168.178.111/jpg/image.jpg";
	$user = "admin";
	$pwd  = "12345";  
	//header("Content-type: image/jpeg");
    $url_login = "http://$user:$pwd@$url";
	readfile($url_login);
}	

function flush_buffers(){ 
    @ob_end_flush(); 
    @ob_flush(); 
    @flush(); 
    @ob_start(); 
}
?>

Wenn ich mir an den Browser gegebenen Output anschaue, denke ich, dass es ggf. ein Problem des IPS Webservers ist:

Ausgabe IIS:
iis.png

Ausgabe IPS:
ips.png

keiner eine Idee?

die beiden Ausgaben sehen nach unterschiedlichem Enconding der Dateien aus …

z.B. einmal Acsii und einmal UTF-8 oder 16?

oder Win zu OS X zu Linux …

Wenn ich mit Windows-Scripten auf OS-X umziehe bekomme ich so was auch regelmäßig und muss alle Sonderzeichnen im Quellcode oder HTML einmal anpassen. UltraEdit (und diverse anderen Programme) können so was in unterschiedlichen Encondings abspeichern und umwandeln …

Hast Du mal versucht, den Stream von IIS in eine Datei schreibe zu lassen und von IPS wieder abzustreamen? Keine Ahnung ob so was geht? Hab noch nichts mit Streams gemacht …

eventuell kann paresy da am besten was zu sagen …

Hallo ernie,

ja das sieht für mich auch danach aus.
Allerdings funktioniert das mit IPS PHP irgendwie nicht.
Habe schon in der PHP INI mit Codepages oder auch mit dem Text-File (PHP Source) rumgespielt -no chance.

Irgendwie scheint der IPS Webserver da noch was dazwischen zu drehen…
Anders kann ich mir das nicht vorstellen.

Wäre eigentlich auch an der ZEIT IPS mal komplett auf UTF-8 umzustellen…