我有一個代碼,導致我的服務器播放視頻給用戶,沒有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);
爲什麼你通過PHP返回文件開始?爲什麼不在播放器中放置原始URL(來自$ _GET-變量)? –
我正在使用API,但它不允許我請求下載不同的IP,所以我必須讓服務器讀取文件以便能夠爲任何用戶播放它 –
它是一個流媒體平臺,所以它是在使用它之前不可行的下載文件 –