mplayer を使用して、特定のビデオ形式用に PHP で記述されたクロスプラットフォーム プレーヤーを作成しようとしています。
PHP スクリプトはビデオ ファイルを作成し、mplayer を起動しますが、ビデオ ファイルの作成は続けます。
PHP スクリプトの速度が十分ではなく、ビデオがバッファリングされていないために mplayer がクラッシュすることがあります。
そのため、バッファリングが必要な場合は mplayer を制御して一時停止する必要があります。
テスト用に、5 秒後にビデオを停止しようとする関数を作成しました。
(コマンドのリストは次のとおりです: http://www.mplayerhq.hu/DOCS/tech/slave.txt )
...
function OnClickButtonStart() {
$mplayer = popen("mplayer -wid " . $wid . " -slave -quiet -idle " . $filename . " > /dev/null 2> /dev/null &", "w");
var_dump($mplayer);
sleep(5);
echo "\nPausing...";
fputs($mplayer, "pause\n");
fflush($mplayer);
echo "done!\n";
return $mplayer;
}
...
ただし、出力が次の場合でも:
resource(5) of type (stream)
Pausing...done!
動画が止まらない!
どうしたの?