web-dev-qa-db-ja.com

Linux:2台のコンピューターで2台のビデオプレーヤーを同期する方法は?

2台のGNU/Linuxコンピューターがmplayer(またはvlcなど)で同じビデオを再生しています。

それらの間で一時停止/シーク/ FFwを同期する方法。マスターコンピューターで一時停止を押すと、もう一方も同じフレームで一時停止します。

アイデア? (プレイヤー固有のアプローチと普遍的なアプローチの両方を期待しています)

4
Vi.

VLCを使用したスト​​リーミング:

サーバ:

vlc video.avi --sout '#duplicate{dst=display,dst=standard{access=http,mux=ts,dst=127.0.0.1:1290}}'

クライアント(バリアント1):

cvlc http://127.0.0.1:1290

クライアント(バリアント2):

curl http://127.0.0.1:1290 | mplayer -

あなたはそれを探す/一時停止/再開することができます(きれいではありませんが)。

2
Vi.
  1. マスターmplayer:mplayer -vo yuv4mpeg:file=/tmp/master_pipe video.mkv
  2. マルチキャスト:/tmp/master_pipe | tee /tmp/pipe1 | nc -lp 1234
  3. 最初の表示:mplayer /tmp/pipe1
  4. 2番目のディスプレイnc 1.2.3.4 1234 | mplayer -noconsolecontrols /dev/stdin

(このようなもの)

シーク、OSD、...はマスターmplayerのコンソールによって制御されます。

大きな欠点:100メガビットのネットワークでさえ、これには少し低すぎます。

2番目の欠点:A/V非同期。

このスキームを改善する方法は?

2
Vi.

Synergyオプションを試して、WindowsXPを実行している3台の別々のPCで3つのビデオストリームを同期しました。それは流行の後でうまくいきましたが、私たちの目的(展示会)には十分正確ではありませんでした。

ファイルがループするたびに、異なるファイルは最大1秒遅れます。それらの違いが一貫していれば、タイムラインで調整できたはずですが、そうではありませんでした。

今、私たちはネットワーク化されたソリッドステートプレーヤーを使用しています-ロックソリッド。

1
vividghost

V-Player 6 HD は、Linuxベースの製品であり、まさにあなたが望むことを実行します。

1台のマシンをマスターとして設定し、他のマシンをスレーブとして設定することにより、ネットワークを介して複数のビデオプレーヤーを同期できます。

0
Dierk Walter

これは非常に古い質問ですが、最近mplayerで解決し、スーパーユーザーで自分の質問に回答しました: master-slave with mplayer

0
denjello