Come posso visualizzare le immagini senza avviare X11?


28

Posso visualizzare i video usando OMXPlayer:

omxplayer -o hdmi video.h264

Come posso fare lo stesso per i fermi immagine?

Risposte:


34

È possibile utilizzare l' fbiapp della riga di comando ("visualizzazione dell'immagine framebuffer"). Il framebuffer è anche ciò che oxmplayerusa. Fbi è disponibile dai repository raspbian e dovrebbe trovarsi anche in qualsiasi altra distribuzione GNU / Linux; non è specifico per il pi.

Ci vuole un nome di file o una serie di nomi di file, e puoi usare shell globbing per questo, quindi ad esempio:

fbi *.jpg

Mostrerà tutti i file .jpg nella directory corrente. Per istruzioni su come passare da un'immagine all'elenco alla successiva, consultare la sezione TASTI di man fbi. Puoi anche impostare una presentazione automatica con l' -topzione.

È possibile che venga visualizzato questo errore:

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

Anche quando hai effettuato l'accesso su un VT. La soluzione è specificare il dispositivo framebuffer, che dovrebbe essere:

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

Se stai usando ssh, prova:

fbi -T 1 [...]

Dove "1" è il numero del VT corrente ("terminale virtuale", noto anche come VC, "console virtuale", a cui si accede tramite ctrl-alt-F[1-6]). Non è necessario accedere al VT in cui verrà visualizzata l'immagine, quindi è possibile accedere in remoto e utilizzarlo per mettere le immagini su un display collegato al pi (presumendo che il VT corretto sia sullo schermo). -Tnon è nella pagina man, ma è elencato con fbi --help.

Nota che non puoi usarlo per visualizzare l'immagine su un terminale remoto; quelli non sono associati al framebuffer.

Un paio di altre opzioni utili sono -a, che ingrandiranno le immagini per adattarle allo schermo se sono troppo grandi, e --edit, che consente di ruotare le immagini (credo che vengano quindi salvate con quella rotazione, potresti voler verificare che se presenta un problema).


Grazie. Ho provato, fbi -d /dev/fb0 photo.jpgma continuo a ricevere l'errore di cui parli. Ho effettuato l'accesso al Pi tramite SSH dall'emulatore di terminale Konsole di Kubuntu Linux. Hai qualche idea su come risolvere questo problema?
dotancohen,

1
Hai ragione - in effetti l'intuituve -d /dev/tty1non funziona neanche, ma alcuni googling hanno rivelato -T 1 (aperto tramite VT1) che non è documentato nella pagina man: / Quindi prova che (supponendo che sia il primo VT che vedi sullo schermo ); Modificherò qualcosa sopra e fammi sapere qui se ha funzionato.
Riccioli d'oro

Grazie. È interessante notare che ho fatto google in giro ma non ho trovato la -T 1bandiera. Sebbene l'uso del comando prevenga effettivamente il not a linux console?messaggio, non appare alcuna immagine! Scoprendo la manpagina si scopre: "fbi ha anche bisogno dell'accesso alla console linux (ie / dev / ttyN) per la gestione degli switch di console sani. Questo ovviamente non è un problema per gli accessi alla console, ma qualsiasi tipo di pseudo tty (xterm, ssh, screen , ...) non funzionerà." Anche abbandonare tmuxnon ha aiutato. Dici di essere riuscito a visualizzare le immagini tramite SSH senza X?
dotancohen,

No, non puoi visualizzare il framebuffer da remoto, puoi semplicemente controllarlo.
riccioli d'oro

8

Cmdline funzionante per me (in questo modo visualizzo l'immagine sul monitor HDMI mentre sono collegato a Rpi tramite ssh):

sudo fbi -T 2 img.jpg

funziona perfettamente quando uso un mini display esterno collegato tramite s-video.
datayeah,

0

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

Funziona per me, ma nessun controllo chiave ..


1
Questa risposta necessita di ulteriori dettagli. Dovrebbe almeno rispondere alla domanda se questo funziona con accessi non da console - come descritto sopra.
Steve Robillard,

@SteveRobillard perché non dovrebbe funzionare da accessi non da console? c'è solo un framebuffer, non importa da dove accedi ...
Lenik,

Potrebbe funzionare, ma non affronta esplicitamente le questioni discusse nei commenti sopra. Aiuterebbe anche a chiarire se il controllo chiave è possibile.
Steve Robillard,

0

Mentre stavo provando a scrivere su un framebuffer spi senza VT collegato appare come / dev / fb2

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

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

Ho scoperto che dovevo usare -T 1 per dare a VT un VT non sembra importare quale

-noverbose è stato perché non voglio mostrare il testo

Stavo eseguendo quel comando dall'interno di X11 che ha avuto l'effetto collaterale di sovrascrivere temporaneamente il buffer X11 ma io e l'op non eseguiremo X11 non è un problema, per ora stavo solo testando il dispositivo fb

Non mi interessa davvero il controllo perché chiamo di nuovo fbi quando voglio mostrare l'immagine successiva

Ero su un C1 odroid con openSUSE ma non dovrebbe importare


0

Ho scoperto che 'sudo fbi -vt' funziona.

È necessario invocare 'sudo' per eseguire fbi, per poter accedere all'effettiva console virtuale su cui è in esecuzione 'schermo'. (E spero che tu non stia già correndo come root ..!): D

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.