我可以下载视频,但不播放流媒体文件
问题描述:
我有一个代码,导致我的服务器播放视频给用户,没有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);
答
你尝试从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
如果我使用
为什么你通过PHP返回文件开始?为什么不在播放器中放置原始URL(来自$ _GET-变量)? –
我正在使用API,但它不允许我请求下载不同的IP,所以我必须让服务器读取文件以便能够为任何用户播放它 –
它是一个流媒体平台,所以它是在使用它之前不可行的下载文件 –