Как отобразить изображения без запуска X11?


28

Я могу просматривать видео с помощью OMXPlayer:

omxplayer -o hdmi video.h264

Как мне сделать то же самое для неподвижных изображений?

Ответы:


34

Вы можете использовать fbiприложение командной строки («просмотр кадрового буфера»). Фреймбуфера также то , что oxmplayerиспользует. Fbi доступен из репозиториев Rasbian и должен быть в любом другом дистрибутиве GNU / Linux; это не характерно для пи.

Он принимает имя файла или серию имен файлов, и вы можете использовать для этого глобализацию оболочки, например:

fbi *.jpg

Покажет все файлы .jpg в вашем текущем каталоге. Инструкции по переходу от одного изображения в списке к следующему см. В разделе « КЛЮЧИ » man fbi. Вы также можете установить автоматическое слайд-шоу с -tопцией.

Вы можете получить эту ошибку:

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

Даже когда залогинен на VT. Решение состоит в том, чтобы указать устройство кадрового буфера, которое должно быть:

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

Если вы используете ssh, попробуйте:

fbi -T 1 [...]

Где «1» - это номер вашего текущего VT («виртуальный терминал», он же VC, «виртуальная консоль»; доступ к ним осуществляется через ctrl-alt-F[1-6]). Вам не нужно входить в систему VT, где будет отображаться изображение, поэтому вы можете войти в систему удаленно и использовать это для размещения изображений на дисплее, подключенном к пи (при условии, что на экране отображается правильный VT). -Tотсутствует на странице руководства, но в списке есть fbi --help.

Обратите внимание, что вы не можете использовать это для просмотра изображения на удаленном терминале; они не связаны с кадровым буфером.

Несколько других полезных опций -a, которые будут увеличивать изображения, чтобы они помещались на экране, если они слишком велики, и --editкоторые позволяют вращать изображения (я думаю, что они затем сохраняются с этим вращением, вы можете проверить, что если это представляет проблему).


Спасибо. Я пытался, fbi -d /dev/fb0 photo.jpgно я все еще получаю ошибку, которую вы упоминаете. Я вошел в Pi через SSH из эмулятора терминала Konsole Kubuntu Linux. У вас есть идеи, как это исправить?
— dotancohen

1
Вы правы - на самом деле intuituve -d /dev/tty1тоже не работает, но обнаружилось некоторое прибегание к гуглу -T 1 (открытое через VT1), которое не задокументировано на странице man: / Так что попробуйте (предположим, что это первый VT, который вы видите на экране) ); Я отредактирую что-то выше, и дайте мне знать, если это сработало.
— Златовласка

Спасибо. Интересно, что я гуглил, но не нашел -T 1флаг. Хотя использование команды фактически предотвращает not a linux console?сообщение, изображение не появляется! Просматривая manстраницу, вы обнаруживаете: «fbi также нужен доступ к консоли linux (т.е. / dev / ttyN) для разумной обработки переключателей консоли. Это, очевидно, не проблема для входа в консоль, но любой вид псевдо-tty (xterm, ssh, screen) , ...) не будет работать." Даже выпадение tmuxне помогло. Вы говорите, что вам удалось отобразить изображения через SSH без X?
— dotancohen

Нет, вы не можете просматривать кадровый буфер удаленно, вы можете просто управлять им.
— Златовласка

8

Для меня работает cmdline (таким образом я отображаю изображение на HDMI-мониторе при подключении к Rpi по ssh)

sudo fbi -T 2 img.jpg

это прекрасно работает, когда я использую внешний мини-дисплей, подключенный через s-video.
— дата

0

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

У меня работает, но без ключа управления ..


1
Этот ответ требует немного больше деталей. Это должно по крайней мере решить вопрос о том, работает ли это с неконсольными именами входа - как описано выше.
— Стив Робиллард

@SteveRobillard, почему он не должен работать из неконсольных логинов? есть только один фреймбуфер, независимо от того, откуда вы
— входите

Это может хорошо сработать, но в нем явно не рассматриваются вопросы, обсуждаемые в комментариях выше. Это также помогло бы прояснить, возможно ли управление ключами.
— Стив Робиллард

0

Поскольку я пытался записать в spi-фрейм-буфер без подключенного VT, он выглядит как / dev / fb2

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

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

Я обнаружил, что мне нужно использовать -T 1, чтобы дать fbi VT, кажется, что не имеет значения, какой

-noverbose был, потому что я не хочу показывать текст

Я выполнял эту команду из X11, у которой был побочный эффект временной перезаписи буфера X11, но операционная система и я не буду запускать X11, это не проблема, я просто сейчас тестировал устройство fb

Я не очень беспокоюсь о контроле, так как я просто снова вызываю fbi, когда хочу показать следующее изображение

Я был на odroid C1 с openSUSE, но это не должно иметь значения


0

Я обнаружил, что «sudo fbi -vt» работает.

Вам нужно вызвать sudo для запуска fbi, чтобы иметь возможность получить доступ к фактической виртуальной консоли, на которой запущен экран. (И, надеюсь, вы уже не работаете от имени root ..!): D

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.