我想流式传输任何长度的视频文件。但是我为此而努力创建自己的php脚本。
我创建了一个,但是当我搜索视频时,它就中断了,视频从头开始播放。有时我遇到net :: ERR_CONTENT_LENGTH_MISMATCH错误。而且无法弄清楚如何完成工作。有我的代码。
<?php
$filename = "song.mp4";
$file = fopen($filename, 'rb');
$filesize = filesize($filename);
$buffer = 5 * 1024;
header("Content-Type: video/mp4");
header("Cache-Control: no-cache");
header("Accept-Ranges: bytes");
if(isset($_SERVER['HTTP_RANGE'])){
$matches = array();
preg_match("/(\d+)/i", $_SERVER['HTTP_RANGE'], $matches);
$start = (int)$matches[1];
if(isset($matches[2])){
$end = $matches[2];
}else{
$end = $filesize - 1;
}
$length = $filesize - $start + 1;
fseek($file, $start);
header("Content-Length: " . $length);
header("Content-Range: bytes $start-$end/$filesize");
}else{
header("Content-Length: " . $filesize);
}
while(!feof($file)){
$data = fread($file, $buffer);
echo $data;
flush();
}
fclose($file);
fclose($log);
exit;
?>
我希望在搜索过程中能够毫无问题地流式传输完整视频。