mplayer または VLC でビデオの再生を厳密な時間に開始するにはどうすればよいでしょうか?

mplayer または VLC でビデオの再生を厳密な時間に開始するにはどうすればよいでしょうか?

mplayer と VLC が正確な時間に再生を開始できるようにしたい。プレーヤーは次の条件を満たす必要があります。

  1. ビデオファイルを読み込み、バッファリングし、すべてを準備します。
  2. UNIX時間がN秒Mミリ秒になるまで待つ
  3. フレームレートに応じて再生を開始する(長期的な偏差なし)

これを達成するにはどうすればよいでしょうか?

答え1

MPlayer の入力として FIFO を使用し、指定された時間に再生を開始できます。

スクリプト上の理由から、数年前にビデオをスキップするためにスクリプトで使用した最小限のコード例をコピーして貼り付けます。

  1. FIFO を作成します。

    [ ! -p /tmp/mplayer-fifo ] && mkfifo /tmp/mplayer-fifo
    
  2. 例えばMPlayerを起動します

    mplayer myfile.avi -input /tmp/mplayer-fifo
    
  3. 別のスクリプトからスキップコマンドを送信するには、

    echo "seek 10" > /tmp/mplayer-fifo
    

代わりに、FIFO を使用してビデオを開始および一時停止できます。at特定の時間に再生コマンドを実行するには、を使用します。

ビデオが開始されてすぐに一時停止され、指示を待つだけの場合は"play"、すべてのバッファリングを回避する必要があります。

関連情報