¿Cómo visualizo imágenes sin iniciar X11?

28

Puedo ver videos usando OMXPlayer:

omxplayer -o hdmi video.h264

¿Cómo hago lo mismo para las imágenes fijas?

tompreston
fuente

Respuestas:

34

Puede usar la fbiaplicación de línea de comandos ("visualización de imágenes de framebuffer"). El framebuffer es también lo que oxmplayerusa. Fbi está disponible en los repositorios raspbian y también debería estar en cualquier otra distribución GNU / Linux; No es específico de la pi.

Toma un nombre de archivo o una serie de nombres de archivo, y puede usar shell globbing para esto, por ejemplo:

fbi *.jpg

Mostrará todos los archivos .jpg en su directorio actual. Para obtener instrucciones sobre cómo avanzar de una imagen en la lista a la siguiente, consulte la sección CLAVES de man fbi. También puede configurar una presentación de diapositivas automatizada con la -topción.

Puede obtener este error:

ioctl VT_GETSTATE: Invalid argument (not a linux console?)

Incluso cuando inició sesión en un VT. La solución es especificar el dispositivo framebuffer, que debería ser:

fbi -d /dev/fb0 [...]

Si está utilizando ssh, intente:

fbi -T 1 [...]

Donde "1" es el número de su VT actual ("terminal virtual", también conocido como VC, "consola virtual"; se accede a ellos a través de ctrl-alt-F[1-6]). No es necesario que inicie sesión en el VT donde se mostrará la imagen, por lo que puede iniciar sesión de forma remota y usar esto para colocar imágenes en una pantalla adjunta al pi (suponiendo que el VT correcto esté en la pantalla). -Tno está en la página de manual, pero aparece en la lista con fbi --help.

Tenga en cuenta que no puede usar esto para ver la imagen en un terminal remoto; esos no están asociados con el framebuffer.

Hay un par de otras opciones útiles -a, que acercarán las imágenes para que quepan en la pantalla si son demasiado grandes, y --editque le permite rotar las imágenes (creo que luego se guardan con esa rotación, es posible que desee verificar que si presenta un problema).

Ricitos de oro
fuente
Gracias. Lo he intentado fbi -d /dev/fb0 photo.jpgpero sigo recibiendo el error que mencionas. He iniciado sesión en Pi a través de SSH desde el emulador de terminal Konsountu de Kubuntu Linux. ¿Tienes alguna idea de cómo solucionar esto?
dotancohen
1
Tiene razón: de hecho, la intuición -d /dev/tty1tampoco funciona, pero se revelaron algunas búsquedas en Google -T 1 (abiertas a través de VT1) que no están documentadas en la página de manual: / Así que intente eso (suponiendo que sea el primer VT que vea en la pantalla ); Editaré algo arriba y avíseme aquí si funcionó.
Ricitos de oro
Gracias. Curiosamente, busqué en Google pero no encontré la -T 1bandera. Aunque el uso del comando de hecho previene el not a linux console?mensaje, ¡no aparece ninguna imagen! Al leer la manpágina se descubre: "fbi también necesita acceso a la consola de Linux (es decir, / dev / ttyN) para el manejo correcto del conmutador de consola. Obviamente, esto no es un problema para los inicios de sesión de la consola, pero cualquier tipo de pseudo tty (xterm, ssh, screen , ...) no trabajará." Incluso abandonar tmuxno ayudó. ¿Dices que has logrado mostrar imágenes a través de SSH sin X?
dotancohen
No, no puedes ver el framebuffer de forma remota, solo puedes controlarlo.
Ricitos de oro
8

Cmdline de trabajo para mí (de esta manera visualizo la imagen en el monitor HDMI mientras estoy conectado a Rpi por ssh):

sudo fbi -T 2 img.jpg
BALEPA
fuente
Esto funciona perfecto cuando uso una mini pantalla externa conectada a través de s-video.
datayeah
0

Sudo fbi -T -device / dev / fb0 -a img.jpg

Funciona para mí, pero no hay control de teclas.

usuario9216
fuente
1
Esta respuesta necesita un poco más de detalle. Al menos debería abordar la cuestión de si esto funciona con inicios de sesión que no sean de consola, como se describió anteriormente.
Steve Robillard
@SteveRobillard ¿por qué no debería funcionar desde inicios de sesión que no sean de consola? solo hay un framebuffer, sin importar desde dónde
inicies
Puede funcionar, pero no aborda explícitamente los problemas discutidos en los comentarios anteriores. También sería útil aclarar si es posible el control clave.
Steve Robillard
0

Como estaba tratando de escribir en un spi framebuffer sin VT adjunto aparece como / dev / fb2

http://www.hardkernel.com/main/products/prdt_info.php?g_code=G142060963922

fbi -T 1 -d /dev/fb2 -noverbose my.jpg

Descubrí que necesitaba usar -T 1 para darle a fbi un VT, no parece importar cuál

-noverbose fue porque no quiero que se muestre el texto

Estaba ejecutando ese comando desde X11 que tenía el efecto secundario de sobrescribir temporalmente el búfer X11, pero el operador y yo no ejecutaremos X11 no es un problema, solo estaba probando el dispositivo fb por ahora

Realmente no me importa el control, solo llamo al fbi nuevamente cuando quiero mostrar la siguiente imagen

Estaba en un odroid C1 con openSUSE pero eso no debería importar

simotek
fuente
0

Encontré que 'sudo fbi -vt' funciona.

Debe invocar 'sudo' para ejecutar fbi, para poder acceder a la consola virtual real en la que se está ejecutando la 'pantalla'. (¡Y espero que aún no se esté ejecutando como root ...!): D

usuario53739
fuente