Comment afficher des images sans démarrer X11?


28

Je peux visionner des vidéos avec OMXPlayer:

omxplayer -o hdmi video.h264

Comment faire de même pour les images fixes?

Réponses:


34

Vous pouvez utiliser l' fbiapplication en ligne de commande ("visualisation d'image framebuffer"). Le framebuffer est également ce qui l' oxmplayerutilise. Fbi est disponible à partir des dépôts raspbian et devrait également être dans n'importe quelle autre distribution GNU / Linux; ce n'est pas spécifique au pi.

Il prend un nom de fichier ou une série de noms de fichiers, et vous pouvez utiliser le globbing shell pour cela, par exemple:

fbi *.jpg

Affiche tous les fichiers .jpg de votre répertoire actuel. Pour savoir comment passer d'une image de la liste à la suivante, consultez la section TOUCHES de man fbi. Vous pouvez également définir un diaporama automatisé avec l' -toption.

Vous pouvez obtenir cette erreur:

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

Même lorsque vous êtes connecté sur un VT. La solution consiste à spécifier le périphérique framebuffer, qui devrait être:

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

Si vous utilisez ssh, essayez:

fbi -T 1 [...]

Où "1" est le numéro de votre VT actuel ("terminal virtuel", alias. VC, "console virtuelle"; on y accède via ctrl-alt-F[1-6]). Vous n'avez pas besoin d'être connecté sur le VT où l'image sera affichée, vous pouvez donc vous connecter à distance et l'utiliser pour mettre des images sur un écran attaché au pi (en supposant que le VT correct est à l'écran). -Tn'est pas dans la page de manuel, mais il est répertorié avec fbi --help.

Notez que vous ne pouvez pas l'utiliser pour afficher l'image sur un terminal distant; ceux-ci ne sont pas associés au framebuffer.

Quelques autres options utiles sont -a, qui zoomeront les images pour qu'elles tiennent à l'écran si elles sont trop grandes, et --edit, qui vous permet de faire pivoter les images (je crois qu'elles sont ensuite enregistrées avec cette rotation, vous voudrez peut-être vérifier que si cela pose un problème).


Merci. J'ai essayé fbi -d /dev/fb0 photo.jpgmais je reçois toujours l'erreur que vous mentionnez. Je suis connecté au Pi via SSH depuis l'émulateur de terminal Konsole de Kubuntu Linux. Avez-vous des idées pour résoudre ce problème?
dotancohen

1
Vous avez raison - en fait, l'intuituve -d /dev/tty1ne fonctionne pas non plus, mais une recherche sur Google -T 1 (ouverte via VT1) n'est pas documentée dans la page de manuel: / Alors essayez cela (en supposant que c'est le premier VT que vous voyez à l'écran ); Je vais modifier quelque chose ci-dessus, et faites-moi savoir ici si cela a fonctionné.
goldilocks

Merci. Fait intéressant, j'ai fait une recherche sur Google, mais je n'ai pas trouvé le -T 1drapeau. Bien que l'utilisation de la commande empêche en fait le not a linux console?message, aucune image n'apparaît! En parcourant la manpage, on découvre: "fbi a également besoin d'accéder à la console linux (c.-à-d. / Dev / ttyN) pour une gestion saine des commutateurs de console. , ...) ne fonctionnera pas." Même l'abandon tmuxn'a pas aidé. Dites-vous que vous avez réussi à afficher des images via SSH sans X?
dotancohen

Non, vous ne pouvez pas visualiser le framebuffer à distance, vous pouvez simplement le contrôler.
goldilocks

8

Cmdline de travail pour moi (de cette façon, j'affiche l'image sur un moniteur HDMI tout en étant connecté à Rpi par ssh):

sudo fbi -T 2 img.jpg

cela fonctionne parfaitement lorsque j'utilise un mini écran externe connecté via s-vidéo.
datayeah

0

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

Fonctionne pour moi, mais pas de contrôle clé ..


1
Cette réponse a besoin d'un peu plus de détails. Il devrait au moins répondre à la question de savoir si cela fonctionne avec les connexions non console - comme décrit ci-dessus.
Steve Robillard

@SteveRobillard pourquoi ne devrait-il pas fonctionner à partir de connexions non-console? il n'y a qu'un seul framebuffer, peu importe d'où vous vous connectez ...
lenik

Cela peut très bien fonctionner, mais cela n'aborde pas explicitement les problèmes abordés dans les commentaires ci-dessus. Il serait également utile de préciser si le contrôle des clés est possible.
Steve Robillard

0

Comme j'essayais d'écrire sur un framebuffer spi sans VT attaché apparaît comme / dev / fb2

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

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

J'ai trouvé que je devais utiliser -T 1 pour donner au fbi un VT, cela ne semble pas avoir d'importance

-noverbose était parce que je ne veux pas afficher de texte

J'exécutais cette commande à partir de X11, ce qui avait pour effet secondaire d'écraser temporairement le tampon X11 mais l'op et moi-même ne lancerons pas X11 ce n'est pas un problème, je testais juste le périphérique fb pour l'instant

Je ne me soucie pas vraiment du contrôle car j'appelle juste fbi à nouveau quand je veux montrer l'image suivante

J'étais sur un odroid C1 avec openSUSE mais cela ne devrait pas avoir d'importance


0

J'ai trouvé que 'sudo fbi -vt' fonctionne.

Vous devez invoquer 'sudo' pour exécuter fbi, pour pouvoir accéder à la console virtuelle réelle sur laquelle 'screen' fonctionne. (Et j'espère que vous ne courez pas déjà en tant que root ..!): D

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.