我有一些使用Linux的轻量级终端,每次启动它们时都会运行一个小脚本。该脚本只有一个命令行,即以下cvlc命令:
cvlc --quiet --fullscreen --no-osd --loop playlist.xspf
这个工作很好,因为终端启动了X11环境,然后从自动启动的脚本中启动;视频可以在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...
umboard@MB124205:~$
当然,问题是我没有直接从远程终端访问X11,那么我如何使用cvlc或vlc在远程控制台播放视频呢?
DISPLAY
变量没有设置,您有什么想法?只需使用0吗? - puk