2017-07-30 14 views
0

私のサーバーは、HTTP/1.1ヘッダーなしでユーザーにビデオを再生させるコードを持っています206部分コンテンツの速度が非常に低いです(200/300kbps )、このヘッダーで最大速度にジャンプします。私はこれの原因を正確には知らない。このヘッダーでは、ビデオはダウンロードできますが、ストリーミング再生はできません。ストリーミングの構文はタグ内の通常のビデオと同じですが、違いはsrcがstream.phpページを指していることですか? Link = mysite.com/link.mp4。ビデオは、外部サーバ私はビデオをダウンロードできますが、ストリーミングphplを再生しません

 

     $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

から来るので

私はfseekを使用することはできませんあなたは、HTML 5のタグから動画のURLを埋め込むしようとしましたか?これはあなたのビデオをダウンロードしないかもしれませんが、実際にはプレビューのためにブラウザに読み込まれる可能性があります。

http://yoursite.com/generate_link/video.mp4」をあなたのURLに置き換えてください。

<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

関連する問題