こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

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

2つのPCが以下の様になっています

192.168.2.8のPC:
OSはFedora18、smplayerをインストール済み

192.168.2.7のPC:
OSはFedora18、smplayerをインストール済み、動画/root/movie.aviがある

192.168.2.8のターミナルから

ssh 192.168.2.7
export DISPLAY=:0.0
nohup smplayer movie.avi &

を順に実行すると

192.168.2.7のsmplayerにより
192.168.2.7/rootにある動画movie.aveを再生して
192.168.2.7のモニタに表示できます

この状態でさらに(このSSH接続の状態で)

192.168.2.8のsmplayerにより
192.168.2.7/rootにある動画movie.aveを再生して
192.168.2.8のモニタに表示したい

のですがなかなかできませんでした

どうしたらいいでしょうか?

投稿日時 - 2014-09-19 08:16:58

QNo.8759886

暇なときに回答ください

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

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で再生させるほうが良さそうです。

投稿日時 - 2014-09-19 13:43:11

お礼

回答ありがとうございます

再生アプリは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

投稿日時 - 2014-09-19 17:22:48

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-