mplayer と VLC が正確な時間に再生を開始できるようにしたい。プレーヤーは次の条件を満たす必要があります。
- ビデオファイルを読み込み、バッファリングし、すべてを準備します。
- UNIX時間がN秒Mミリ秒になるまで待つ
- フレームレートに応じて再生を開始する(長期的な偏差なし)
これを達成するにはどうすればよいでしょうか?
答え1
MPlayer の入力として FIFO を使用し、指定された時間に再生を開始できます。
スクリプト上の理由から、数年前にビデオをスキップするためにスクリプトで使用した最小限のコード例をコピーして貼り付けます。
FIFO を作成します。
[ ! -p /tmp/mplayer-fifo ] && mkfifo /tmp/mplayer-fifo
例えばMPlayerを起動します
mplayer myfile.avi -input /tmp/mplayer-fifo
別のスクリプトからスキップコマンドを送信するには、
echo "seek 10" > /tmp/mplayer-fifo
代わりに、FIFO を使用してビデオを開始および一時停止できます。at
特定の時間に再生コマンドを実行するには、を使用します。
ビデオが開始されてすぐに一時停止され、指示を待つだけの場合は"play"
、すべてのバッファリングを回避する必要があります。