Faire du streaming en PHP
Pour streamer le fichier, il suffit d'appeler ce script en lui passant comme paramètres la position de début de lecture (0 par défaut) et le nom (ou l'url) du fichier.Notre script s'appellera streamer.php et la méthode d'appel est donc: http://www.site.com/streamer.php?position=0&file=mavideo.flv
Source de streamer.php:
<?
$seekat = $_GET["position"]; // Position de début de lecture
$file = $_GET["file"]; // Fichier FLV à streamer
//Effacement du cache
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// Ajout des bon headers
header("Content-Type: video/x-flv");
if($seekat != 0) {
print("FLV");
print(pack('C', 1 ));
print(pack('C', 1 ));
print(pack('N', 9 ));
print(pack('N', 9 ));
}
$fh = fopen($file, "rb");
fseek($fh, $seekat);
while (!feof($fh)) {
print (fread($fh, 16384));
}
fclose($fh);
?>
$seekat = $_GET["position"]; // Position de début de lecture
$file = $_GET["file"]; // Fichier FLV à streamer
//Effacement du cache
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// Ajout des bon headers
header("Content-Type: video/x-flv");
if($seekat != 0) {
print("FLV");
print(pack('C', 1 ));
print(pack('C', 1 ));
print(pack('N', 9 ));
print(pack('N', 9 ));
}
$fh = fopen($file, "rb");
fseek($fh, $seekat);
while (!feof($fh)) {
print (fread($fh, 16384));
}
fclose($fh);
?>
Attention: les .flv doivent contenir des métadonnées. Vous pouvez utiliser FLV MetaData Injector pour les ajouter.