嘟嘟社区

[疑问] 问一个PHP问题,会的大佬请赐教!


  1. function GetMp4File($file) {
  2.     $header_array = get_headers($file, true);
  3.     $size = $header_array[‘Content-Length’];
  4.     header("Content-type: video/mp4");
  5.     header("Accept-Ranges: bytes");
  6.     header("Content-Length: " . ($end – $begin + 1));
  7.     header("Content-Disposition: filename=".basename($file));
  8.     header("Content-Range: bytes ".$begin."-".$end."/".$size);
  9.     $fp = fopen($file, ‘rb’);
  10.     fseek($fp, $begin);
  11.     while(!feof($fp)) {
  12.         $p = min(1024, $end – $begin + 1);
  13.         $begin += $p;
  14.         echo fread($fp, $p);
  15.     }
  16.     fclose($fp);
  17. }

复制代码

网上找到一段代码是用来中转播放MP4视频的,我想加一段代码如果播放完缓存到本地,下次播放就从本地读取,如果没有再从远程读取

一段代码无法实现
得好几段
因为涉及到数据库,你得把文件存下来,然后把路径存到数据库里
然后每次查询数据库里有没有,有的话读取
没有的话 中转并存库

alk19t 发表于 2021-12-25 18:44
一段代码无法实现
得好几段
因为涉及到数据库,你得把文件存下来,然后把路径存到数据库里

本来想用 nginx文件缓存的,但没成功,nginx可以把请求过的图片缓存本地目录,但是视频就是不成功

你想要的效果不就是油管吗
但是油管只是在地址上加了个播放截止时间
这样实现起来更容易一些

zxjlhsq 发表于 2021-12-25 18:53
本来想用 nginx文件缓存的,但没成功,nginx可以把请求过的图片缓存本地目录,但是视频就是不成功 …

我这边有个P2P解决方案

可以把视频缓存到Redis