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

28

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

omxplayer -o hdmi video.h264

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

tompreston
источник

Ответы:

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
BALEPA
источник
это прекрасно работает, когда я использую внешний мини-дисплей, подключенный через s-video.
дата
0

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

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

user9216
источник
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, но это не должно иметь значения

simotek
источник
0

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

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

user53739
источник