• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つのPCで同一の動画を各PCのモニタに表示したい)

2つのPCで同一の動画を各PCのモニタに表示したい方法

このQ&Aのポイント
  • 2つのPCで同一の動画を各PCのモニタに表示したい方法を解説します。
  • 2つのPCのIPアドレスとインストールされているOSとソフトウェア、および動画の場所について説明します。
  • 2つのPCで連携して動画を表示する手順と、問題が発生した場合の対処方法について説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.1

ssh -X 192.168.2.7で入って DISPLAY設定を変更して再生を始めたあと DISPLAY設定を戻せばssh -Xによって 192.168.2.8側に表示することができます。 ですが、この場合再生をやっている主体は192.168.2.7側のソフトです。 戻すべき設定は、sshで入った際にexportコマンドで確認しておきましょう。 うちのUbuntu環境の場合はlocalhost:10.0が-Xで入った場合のディスプレイになるようですが これが普遍的なものなのかどうかは知りません。 ともかく、192.168.2.8側のソフトで再生するのであれば nfsで共有した上で、別の仮想コンソールから起動するのが基本だと思います。 表示の同期を求める場合はVNCクライアントを両方に表示しておく手がありますが 640x480の動画でも帯域が足りないみたいです(GbEでも、無線LANでは更に…) これはtightvncを使っても、圧縮率はMPEG2やH.264の圧縮率より低いためです。 また音声はpulseaudioのネットワーク転送などを使うことになり、音ずれが予想されます。 (MPlayerなど再生ソフト側で補正できる場合は、なんとか実用にはなります) VNCで解決するとしたら、画面モード自体を小さくするしか無いかもしれません。 デジタルサイネージ代わりにホームセンターなどで使われている激安DVDプレーヤーは 実は480x272くらいの低画素液晶のものが普通だったりします。 映像によっては、そのくらいの解像度でも実用的なのです。 (ワンセグ放送は、もっと低解像度ですし) まぁ、うちではvncserver -geometry 480x272でサーバーを起動し sshで入って、export DISPLAY=vnchost:1.0して MPlayerで再生してみても、ちょっと画面が乱れたりします。 MPlayerの-framedropオプションを試してみても、再生ソフトのフレームと VNCが転送するフレームが同期できないため、思うようには行かないようです。 MPlyaerだと-fs(フルスクリーン)オプションもありますが wmctrlであとから、wmctrl -r MPlayer -b toggle,fullscreenでもイケます。 一般的なPC向けモニターは落としても640x480までしか使えないようなので それぞれのPCで、再生ソフトを動かすというアプローチしか無いようにも思えます。 利用可能な画面モードの確認と変更はxrandrコマンドから行えます。 VNCの場合は、サーバーで規定した画面モードしか使えません。 とりあえず、今4台のPCを使って、VNCサーバー機以の3台の画面に 400x272のウィンドウ表示で見て見ましたが、動作自体は安定しているものの やはり無線LANでは特に画面の乱れが目立ちます。 これを、遠隔地の複数のPCでやるとしたら 音声はPulseaudioのRTP MultiCastを使う必要があるかもしれません。 でも、これあんまり安定していないような気がします(ただしUbuntu12.04LTSにて) やっぱり、遠隔地で使うなら、ことさらにそれぞれのPCで再生させるほうが良さそうです。

reiman
質問者

お礼

回答ありがとうございます 再生アプリはssh実行側PCの192.168.2.8でやらなくても良いので ご提案の方法でやってみます やりたいことは linuxで使える唯一のビデオキャプチャPCA-DAV2をTVと192.168.2.7に接続し 192.168.2.8のターミナルから192.168.2.7にssh接続し ssh画面上において mencoderでTV録画し 同時に録画直後の録画ファイルをsmplayerでモニタ用の再生を行い 192.168.2.7と192.168.2.8に表示するというものです これらの操作を192.168.2.7上のシェルスクリプトファイルで実行したいのです ちなみに現在のシェルスクリプトは以下のよう担っています 192.168.2.7/root/my-tv: LOGFILE=/root/ビデオ/192.168.2.7/_log.txt ERRFILE=/root/ビデオ/192.168.2.7/_error.txt OUTFILE=/root/ビデオ/192.168.2.7/`date +%Y%m%d%H%M`x echo '###' >> $LOGFILE echo '###' >> $ERRFILE date >> $LOGFILE date >> $ERRFILE mencoder -endpos $jikan -quiet -ovc lavc -lavcopts vcodec=mpeg2video:turbo -fps 30000/1001 -ofps 30000/1001 -oac mp3lame -of avi -tv driver=v4l2:device=/dev/video0:input=2:norm=NTSC-M-JP:width=640:height=480:brightness=-20:contrast=-10:alsa:adevice=hw.0,0:immediatemode=0:audiorate=48000:amode=1 tv:// -o ${OUTFILE}Mp2Mp3.avi >> $LOGFILE 2>> $ERRFILE & for i in `seq 1 1 999999` do if [ -e ${OUTFILE}Mp2Mp3.avi ] then sleep 2 export DISPLAY=:0.0 nohup smplayer -fullscreen ${OUTFILE}Mp2Mp3.avi > /dev/null 2>&1 & read dummy killall mencoder killall smplayer break fi done

すると、全ての回答が全文表示されます。

関連するQ&A