現在、ビデオアクセスを制御するためのPHPスクリプトを使用してHTML5ビデオ(video-jを使用)で使用するためのMP4ビデオを配信しようとしています。いくつかの研究の後、私はstackoverflow article found hereの助けを借りて、これを得ることができました。私がPHPスクリプトに移動すると、Firefox、Safari、IEの絶対パス(localhost/myscript.phpではなくlocalhost/myvideo.mp4など)を介してビデオを表示しているかのようにビデオを見ることができます。私の問題はGoogle Chromeで、小さな画面の中央に小さなメディアプレーヤーが表示されていて画面に何も表示されないだけです。Google ChromeでMP4ビデオ配信が失敗する
私はlocalhost/avideo.mp4のようなPHPスクリプトにルーティングするクイックリライトを試しましたが、残念ながらこれは何も変わりませんでした。前述のstackoverflowの記事で示唆したよう
if (is_file($uri)) {
header('Content-Type: video/mp4');
if (isset($_SERVER['HTTP_RANGE'])) {
$this->rangeDownload($uri);
exit;
} else {
header("Content-Length: ".filesize($uri));
$this->readfile_chunked($uri);
exit;
}
} else {
//error
}
rangeDownload方法はthis linkの付録Aから直接取得されています:
は、ここに私のスクリプトです。
を使用を生成するには? – ethrbunny
コンテンツタイプ、受け入れ範囲、コンテンツ範囲、コンテンツ長、HTTP/1.1 206部分コンテンツ。これらのヘッダーは、最初のケースでは、Chromeで使用されるrangeDownloadを使用していますが、readfile_chunkedではヘッダーが少なくなります(クロールでは機能しません)。 – AaronDS
私が提案できる唯一のもう一つはContent-Transfer-Encoding:binaryです。 Imは、このコンボを使用して、PHPを介してすべてのブラウザにオーディオを転送することができます。 – ethrbunny