Comment faire pour désactiver le tampon de sortie en PHP

J'ai écrit un simple relais de script qui se connecte à une caméra web et un lit à partir de la prise, et les sorties de ces données en utilisant la fonction d'impression. Les données sont MJPG de données avec des limites déjà de l'installation. Je viens de copier les données qui sont lues.

Le problème, c'est PHP qui semble être mise en mémoire tampon des données. Lorsque j'ai mis l'appareil photo à 1 FPS, le flux de gel pour les 7-8 secondes, puis rapidement l'affichage de 8 images. Si j'ai mis la résolution d'une taille énorme, la caméra de se déplacer à plus ou moins 1 image par seconde. Je suppose alors que certains tampon qui se passe (puisque la taille gigantesque de remplissage de la mémoire tampon rapidement, et de faibles tailles ne le font pas), et je ne peux pas comprendre comment désactiver cette mise en mémoire tampon. Personne ne sait comment?

Code:

ignore_user_abort(false);

$boundary = "myboundary";

//Set this so PHP doesn't timeout during a long stream
set_time_limit(0);

$socketConn = @fsockopen ("192.168.1.6", 1989, $errno, $errstr, 2);
if (!$socketConn)
exit();
stream_set_timeout($socketConn, 10);
fputs ($socketConn, "GET /mjpeg HTTP/1.0\r\n\r\n");

//Setup Header Information
header("Cache-Control: no-cache");
header("Cache-Control: private");
header("Pragma: no-cache");
header("Content-type: multipart/x-mixed-replace; boundary=$boundary");

@ini_set('implicit_flush', 1);
for ($i = 0; $i < ob_get_level(); $i++)
ob_end_flush();
ob_implicit_flush(1);

stream_set_blocking($f2, false);

//Send data to client
while (connection_status() == CONNECTION_NORMAL)
{
    $chunk = fread($socketConn, 128);
    print $chunk;   
}

fclose($socketConn);
  • Montrez nous un peu de code! Nous ne pouvons pas deviner ce que vous faites. Ou plutôt, on le peut, mais il ne sera probablement pas beaucoup d'aide.
  • seulement, cette solution a fonctionné pour moi sur l'ensemble de l'internet - stackoverflow.com/a/4978809/2083877
InformationsquelleAutor Ioncannon | 2012-01-16