2012-03-09 43 views
6

私は問題があります、あなたが私を助けることを願っています。 私はLinuxでスリムな端末を持っていますが、起動するたびに小さなスクリプトが起動します。このスクリプトは、それが次のシングルcvlcコマンドラインを持っていますリモート端末からX11のVLCでビデオを再生

cvlc --quiet --fullscreen --no-osd --loop playlist.xspf 

端子はX11環境を起動して、スクリプトは、それが自動起動から起動していますので、これはOK機能します。それは再生され、LCDにうまくレンダリングされたビデオです。 私の問題は、何らかの理由で、cvlcプロセスをリモートから強制終了して再度起動する必要があるときです。私は同じユーザーがX11環境にログインした状態で端末をsshして、上で説明したコード行を起動し、ビデオを再生します。しかし、端末にはログインしています!

ビデオは唯一のキャラクターモードで再生されるので、コンソールにテキストとして表示されます。もちろん、X11環境では何も見ることができません。だから私の質問は:私はどのように私のcvlcコマンドを起動し、コンソール自体でX11でビデオを再生できますか?

私はオプションなしでそれを再生しようとすると、私は次の出力を得た:

$ cvlc playlist.xspf 
VLC media player 1.1.4 The Luggage (revision exported) 
Blocked: call to unsetenv("DBUS_ACTIVATION_ADDRESS") 
Blocked: call to unsetenv("DBUS_ACTIVATION_BUS_TYPE") 
[0x9cb1114] inhibit interface error: Failed to connect to the D-Bus session daemon: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed. 

[0x9cb1114] main interface error: no suitable interface module 
[0x9cb0754] main interface error: no suitable interface module 
[0x9c17914] main libvlc error: interface "globalhotkeys,none" initialization failed 
[0x9caeca4] dummy interface: using the dummy interface module... 
[0x9cabfa4] main playlist: stopping playback 
[0x9dedb34] xcb_xv generic error: parent window not available 
[0x9dedb34] xcb_x11 generic error: parent window not available 
[0x9dedb34] xcb_glx generic error: parent window not available 
[0x9dedb34] fb generic error: cannot get terminal mode (Invalid argument) 
Blocked: call to signal(28, 0x60ae4e0) 
Blocked: call to setlocale(6, "") 
Blocked: call to sigaction(20, 0x46935e0, (nil)) 
Blocked: call to sigaction(2, 0xb730c948, (nil)) 
                          Blocked: call to sigaction(15, 0xb730c948, (nil)) 
Blocked: call to sigaction(28, 0xb730c948, (nil)) 
^C[0x9cae2b4] signals interface error: Caught Interrupt signal, exiting... 
[email protected]:~$ 

だから、問題はもちろん、私は私のリモート端末からX11への直接アクセスを持っていないてきた、ありますだから、私はcvlcやvlcを使って私のリモートコンソールからビデオを再生できますか?

私に助けてください、ありがとうございます!

答えて

7

の$ DISPLAY環境変数は、グラフィカルなアプリケーションを実行できるXサーバインスタンスの値を保持している:あなたはOP以下のコメントからもわかるように、コマンドラインオプション見つかりました。したがって、この値はそれが必要だ:

echo $DISPLAY 
:0 

次に、この値はのようにcVLC --x11-displayオプションとともに使用する必要があります。この方法で

cvlc --x11-display :0 video.mp4 

、映像が出力さX Serverセッションにあっても、このコマンドそれはですリモートのsshセッションで使用されます。あなたがログアウトしたときに、それが終了のセッション場合は、映像が停止しますので、あなたがバックグラウンドにジョブを必要とするので、ビデオが再生され続け:

cvlc --x11-display :0 video.mp4 & 

私の正確なニーズの参考としてその多分あなたはよあなたがリモートターミナルでビデオを実行する必要がある場合に有用であると見なして、目に見えるVLCインタフェース、フルスクリーン、およびコンソールに絶対出力なしでループする必要がある。前の例のようにコマンドを実行するとVLC同じユーザーの別のSSHセッションで出力がスローされた場合は、次のように実行する必要があります。

cvlc -q --no-osd -L -f --no-video-title-show --x11-display :1 video.mp4 2&>1 >/dev/null & 

標準出力とエラーは表示されませんこのようにセッション。

+1

'DISPLAY'変数が設定されていないと何をするでしょうか?ただ0を使う? – puk

7

DISPLAY変数を設定する必要があります。例えば

:あなたがセットの代わりに、輸出を使用する必要があるかもしれません

export DISPLAY=:0 

(および/または変更します。似たものに0を、私はDISPLAY変数のためのgoogle、現時点でテストすることはできません)が、thatsのどの出力ディスプレイにウィンドウを表示させるのかという一般的な考え方。

UPDATE

--x11-display :0 
+1

私は正しい方向に指摘してくれたあなたの答えをありがとうが、私はグーグルでこれを達成するための完全なcvlcコマンドを見つけられておらず、 '--x11-display 0'オプションであるようだが、タイトルは「Color AsCii Art」ですので、libcacaはビデオをAsCii =/mmmとしてレンダリングするために使用されています。 – Metafaniel

+0

私は最終的に私が必要とした正しいCVLCコマンドラインを手に入れました。しかし、私はあなたの解決策を答えにすることはできませんが、それは完全ではありません。私は自分の質問をしなければならないのでしょうか、あなたはあなたのコマンドを補うでしょうか?ありがとうございました – Metafaniel

+0

GUIの "環境設定"から "ビデオ出力"を設定して、それが将来の使用のために設定を保存するかどうか試しましたか? – zaf

関連する問題