私は、プログレッシブにエンコードされたmp4ビデオとmp3オーディオファイルを大量にストリーミングし、プライベートネットワーク上にあるTomcatサーバー(サーバーA)を持っています。また、Apache 2 と PHP を実行する Web サーバー (サーバー B) もあり、これはプライベート ネットワーク上にあり、公開インターフェイスを備えています。サーバー B はアプリケーション ACL を管理します。
クライアント (ブラウザなど) がサーバー B のパブリック インターフェイスの特定の URL にアクセスし、プライベート サーバーからメディアをダウンロード (再生またはプレーヤーで表示) できるようにします。現時点では、サーバー B で次のことを試しました。
<?php
$handler = fopen('http://server_a/path/to/file.mp4', 'r');
header('Content-type: video/mp4');
while (!feof($handler)) {
print fread($handler, 8192);
}
exit;
と
<?php
$handler = fopen('http://server_a/path/to/file.mp4', 'r');
header('Content-type: video/mp4');
print stream_get_contents($handler);
exit;
と
<?php
$handler = fopen('http://server_a/path/to/file.mp4', 'r');
header('Content-type: video/mp4');
fpassthru($handler);
exit;
PHP がメモリ不足になるか、クライアント (ブラウザ) が再生を開始する前にファイル全体をダウンロードします。私はこれについて間違った方向に進んでいますか?私が間違っている可能性があることについてのアイデアはありますか?