B5教程网直接贴代码:
- <?php
- function GetMp4File($file) {
- $size = filesize($file);
- header("Content-type: video/mp4");
- header("Accept-Ranges: bytes");
- if(isset($_SERVER['HTTP_RANGE'])){
- header("HTTP/1.1 206 Partial Content");
- list($name, $range) = explode("=", $_SERVER['HTTP_RANGE']);
- list($begin, $end) =explode("-", $range);
- if($end == 0){
- $end = $size - 1;
- }
- }else {
- $begin = 0; $end = $size - 1;
- }
- header("Content-Length: " . ($end - $begin + 1));
- header("Content-Disposition: filename=".basename($file));
- header("Content-Range: bytes ".$begin."-".$end."/".$size);
- $fp = fopen($file, 'rb');
- fseek($fp, $begin);
- while(!feof($fp)) {
- $p = min(1024, $end - $begin + 1);
- $begin += $p;
- echo fread($fp, $p);
- }
- fclose($fp);
- }
- GetMp4File("demo.mp4");
有需要的小伙伴可以拿去研究研究
方法主要是将视频拆分成N个碎片,每份1KB,此方法缺陷是用户在观看视频是会不断向服务器读取视频,因此流量大了。。。你懂得...