2017-07-30 75 views
0

我有一个代码,导致我的服务器播放视频给用户,没有HTTP/1.1头206部分内容速度可笑地低(200/300kbps之间),并用这个头部跳转到最大速度。我不知道这个原因。有了这个标题,视频就可以下载,但不能通过流媒体播放。流媒体的语法与标签中的普通视频类似,区别在于src指向stream.php页面?链接= mysite.com/link.mp4。我可以下载视频,但不播放流媒体文件

,因为影片是来自外部服务器

 

     $link = $_GET['link']; 
     $path = $link; 

     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $path); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_HEADER, true); 
     curl_setopt($ch, CURLOPT_NOBODY, true); 
     curl_exec($ch); 
     $size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD); 






     header("Content-Type: video/mp4"); 
     header("Content-Length: ".$size); 
     header('Accept-Ranges: bytes'); 

     $handle = fopen($path, "rb"); 
     while (!feof($handle)) { 
      header('HTTP/1.1 206 Partial Content'); 
      header('Content-Range: bytes 0-'.$size); 
      echo fread($handle, 100 * 1024); 
     } 
     fclose($handle); 

+0

为什么你通过PHP返回文件开始?为什么不在播放器中放置原始URL(来自$ _GET-变量)? –

+0

我正在使用API​​,但它不允许我请求下载不同的IP,所以我必须让服务器读取文件以便能够为任何用户播放它 –

+0

它是一个流媒体平台,所以它是在使用它之前不可行的下载文件 –

回答

0

你尝试从HTML 5名的标签嵌入视频的网址,我不能使用FSEEK?这可能无法下载您的视频,但实际上它可能会在浏览器中加载预览。

将“http://yoursite.com/generate_link/video.mp4”替换为您的网址。

<video width="320" height="240" controls> 
    <source src="http://yoursite.com/generate_link/video.mp4" type="video/mp4"> 
Your browser does not support the video tag. 
</video> 
+0

我正在使用API​​,但它不允许我下载不同的IP请求,所以我必须让服务器读取文件以便能够为任何用户播放。 –

+0

如果我使用

相关问题