【发布时间】:2012-03-27 00:49:35
【问题描述】:
我有一些带有 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 从远程控制台播放视频?
【问题讨论】: