У меня проблема с потоковой передачей файла mp4 через php.
Скачивание файлов висит на 1МБ. Вы можете видеть это здесь:
Я перепробовал много заголовков и прочитал много тем, но многие из них не решены или не помогли мне, как этот: MP4 проигрывается при прямом доступе, но не при чтении через PHP на iOS . Любая помощь, пожалуйста?
Вот мой код:
<?
$root=getenv("DOCUMENT_ROOT");
$file = "$root/".$_GET['get'];
header("Content-Type: video/mp4");
//header("Content-Type: application/octet-stream"); // downloads the file
$start=0;
$size = filesize($file);
$length = $size;
$end = $size - 1;
//header('HTTP/1.1 206 Partial Content');
header("Accept-Ranges: $start-$end");
header("Content-Range: bytes $start-$end/$size");
header("Content-Length: $length");$data = fopen("$file", "r");
fseek($data, $start);
$bytesleft = $size-$start + 1;
$buffer = 1024 * 256; // 256kb
while(!feof($data)){
if($bytesleft > $buffer){
echo fread($data, $buffer);
flush();
}else{
echo fread($data, $bytesleft);
flush();
}
//sleep(1); // Speedlimit = one buffer per second
}fclose($data);
exit;
?>
заранее спасибо
Не берите в голову. Я скачал файл с сервера и сравнил его с оригиналом, хранящимся на сервере в шестнадцатеричном формате.
В начале у скачанного был еще один байт: 0A, и это была проблема. Теперь все работает.
Других решений пока нет …