如何在不启动X11的情况下显示图像?


28

我可以使用OMXPlayer观看视频:

omxplayer -o hdmi video.h264

如何处理静止图像?

Answers:


34

您可以使用命令行fbi应用程序(“查看帧缓冲区图像”)。该帧缓冲区也是什么oxmplayer用途。Fbi可以从raspbian仓库中获得,也应该在其他任何GNU / Linux发行版中都可以找到。它不是特定于pi的。

它需要一个文件名或一系列文件名,并且您可以为此使用shell遍历,例如:

fbi *.jpg

将显示当前目录中的所有.jpg文件。有关如何从列表中的一张图片前进到另一张图片的说明,请参阅的“ KEYS”部分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,因此您可以远程登录并将其用于将图像放置在pi附带的显示器上(假定屏幕上显示了正确的VT)。-T不在手册页中,但以列出fbi --help

注意您不能使用它在远程终端上查看图像;这些与帧缓冲区无关。

还有两个其他有用的选项:-a,如果图像太大,将缩放图像以适合屏幕显示;以及--edit,您可以旋转图像(我相信图像会随旋转而保存,您可能要检查是否它提出了一个问题)。


谢谢。我已经尝试过,fbi -d /dev/fb0 photo.jpg但仍然收到您提到的错误。我从Kubuntu Linux的Konsole终端仿真器通过SSH登录到Pi。您有任何解决方法的想法吗?
dotancohen 2013年

1
您是对的-实际上,intuituve -d /dev/tty1也不起作用,但是显示了一些谷歌搜索-T 1 (通过VT1打开),而手册页中没有对此进行记录:/因此,请尝试这样做(假设这是您在屏幕上看到的第一个VT) ); 我将在上面进行一些编辑,并在此告诉我是否可行。
goldilocks

谢谢。有趣的是,我在Google周围搜索,但没有找到该-T 1标志。尽管实际上使用该命令确实可以阻止该not a linux console?消息,但不会显示任何图像!仔细阅读该man页面确实可以发现:“ fbi还需要访问Linux控制台(即/ dev / ttyN)以进行合理的控制台开关处理。对于控制台登录而言,这显然没有问题,但是任何类型的伪tty(xterm,ssh,屏幕, ...) 不管用。” 甚至退出tmux也无济于事。您是否说您已经设法通过SSH在不使用X的情况下显示图像?
dotancohen

不,您不能远程查看帧缓冲区,您只能对其进行控制。
goldilocks

8

为我工作的cmdline(通过ssh连接到Rpi时,这样我可以在HDMI监视器上显示图像):

sudo fbi -T 2 img.jpg

当我使用通过S-Video连接的外接迷你显示器时,这非常理想。
datayeah 2014年

0

须藤fbi -T -device / dev / fb0 -a img.jpg

为我工作,但没有按键控制。


1
这个答案需要更多细节。如上所述,它至少应解决此问题是否适用于非控制台登录的问题。
Steve Robillard

@SteveRobillard为什么不能从非控制台登录名运行?无论您从哪里登录,都只有一个帧缓冲区...
lenik

它可能会很好地工作,但是并不能明确解决上面评论中讨论的问题。这也将有助于弄清楚是否可以进行键控。
史蒂夫·罗比拉德

0

当我尝试写入不带VT的spi帧缓冲区时,显示为/ 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缓冲区的副作用,但是op和我自己不会运行X11,这不是问题,我现在只是测试fb设备

我不太在意控制,因为当我想显示下一张图片时,我只是再次致电fbi

我在使用openSUSE的odroid C1上,但这没关系


0

我发现'sudo fbi -vt'有效。

您需要调用“ sudo”来运行fbi,才能访问运行“屏幕”的实际虚拟控制台。(希望您还没有以root用户身份运行!!):D

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.