2012-03-09 39 views
6

Tengo un problema, espero que pueda ayudarme. Tengo algunos terminales delgados con Linux donde se inicia un pequeño script cada vez que arrancan. Este script tiene una sola línea de comandos CVLC cual es el siguiente:Reproduzca un video con VLC en X11 desde la terminal remota

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

Esto funciona bien porque los terminales de iniciar el entorno de X11 y luego el guión se puso en marcha a partir de arranque automático; el video se reproduce y se renderiza muy bien en una pantalla LCD. Mi problema viene cuando, por una u otra razón, necesito matar el proceso cvlc de forma remota y volver a iniciarlo. Compruebo el terminal con el mismo usuario conectado en el entorno X11, abro la línea de código descrita arriba y se reproduce el video, sí ... ¡pero EN EL terminal estoy conectado!

Para que los videos se reproduzcan en modo solo-caracteres, se representan como texto en mi consola; por supuesto, nada se puede ver en el entorno X11. Entonces mi pregunta es: ¿Cómo puedo iniciar mi comando cvlc Y reproducir el video en X11 NO en la consola misma?

Si sólo trato de jugar sin opciones, me dieron el siguiente resultado:

$ 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]:~$ 

Así que el problema es, por supuesto, no tengo acceso directo a X11 de mi terminal remoto , entonces, ¿cómo puedo reproducir un video desde mi consola remota usando cvlc o vlc?

Por favor, ayúdenme, ¡GRACIAS MUCHO!

Respuesta

7

El $ DISPLAY variable ambiental mantiene el valor de la instancia del servidor X en aplicaciones gráficas se pueden ejecutar . Por lo tanto, este valor se necesita:

echo $DISPLAY 
:0 

A continuación, este valor debe ser utilizado con CVLC --x11-display opción como en:

cvlc --x11-display :0 video.mp4 

De esta manera, el vídeo de salida a la sesión X Server incluso si este comando es utilizado en una sesión ssh remota.Sin embargo, si la sesión está terminado, el vídeo se detendrá, por lo que necesita a fondo el trabajo, por lo que al cierre de sesión, el video continúa reproduciéndose:

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

Como referencia de mis necesidades exactas que tal vez te resulta útil si necesita ejecutar el video en el terminal remoto y necesita hacerlo en bucle, sin una interfaz VLC visible, pantalla completa y sin salida absoluta en la consola, porque si ejecuta el comando como en el ejemplo anterior, tal vez VLC la salida será lanzada en otra sesión SSH con el mismo usuario, que necesita para funcionar de esta manera:

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

de salida estándar y el error no aparece en la sesión de esta manera.

+1

¿Alguna idea de lo que se haría si la variable 'DISPLAY' no está configurada? Solo usa 0? – puk

7

Debe configurar la variable DISPLAY.

Por ejemplo:

export DISPLAY=:0 

Es posible que necesite usar conjunto en lugar de exportación (y/o el cambio: de 0 a algo similar, no puedo probar en el momento, Google para la variable DISPLAY), pero esa es la idea general para decir qué pantalla de salida quiere que aparezca la ventana.

ACTUALIZACIÓN: Como se puede ver en los comentarios debajo de la OP encontró la opción de línea de comandos:

--x11-display :0 
+1

Gracias por su respuesta, me indicó la dirección correcta, sin embargo, no he encontrado el comando EXACT cvlc para lograr esto uu, he buscado en Google y parece ser la opción '--x11-display 0' pero obtengo una ventana cuyo título es "Color AsCii Art" Así que libcaca está siendo utilizada para renderizar el video como AsCii =/mmm ... – Metafaniel

+0

Finalmente obtuve la línea de comando CVLC correcta que necesitaba, GRACIAS que me ayudaron. SIN EMBARGO, no puedo marcar su solución como una respuesta, no está completa. ¿Debería hacer mi propia pregunta o complementará la suya con el comando? Gracias – Metafaniel

+0

¿Ha intentado configurar la "Salida de video" de "Preferencias" en la GUI y ver si guarda la configuración para usarla en el futuro? – zaf

Cuestiones relacionadas