在没有窗口管理器的情况下启动 ffplay X-window

在没有窗口管理器的情况下启动 ffplay X-window

我想要本质上是一个信息亭,使用 ffplay 显示视频流,而不需要整个桌面环境。

我从最小的 CentOS7 开始,按照这个简单的指南安装了 xterm 和 X11: https://linuxconfig.org/how-to-run-x-applications-without-a-desktop-or-a-wm

我创建了一个 .xinitrc 文件:

#!/bin/bash
exec firefox

当我执行时startx,它会打开一个包含 Firefox 的 X11 窗口。

但是,当我用这个文件替换 .xinitrc 文件时:

#!/bin/bash
exec ffplay udp://192.168.0.237:5444

尽管知道 ffplay 命令是正确的,但我只是得到一个空白屏幕。虽然我可以看出ps -ef | grep ffplayffplay 确实正在执行。我认为它只是将输出视频传输到与 Firefox 不同的地方。我不知道如何判断它在哪里,也不知道如何强迫它去localhost:0.0

请注意,CentOS7 机器是一个 Hyper-V 虚拟机,我通过 Hyper-V 控制台访问它。

答案1

在我的 Archlinux 上为我工作。

我的ffmpeg是4.4。您可能需要升级您的,以防这是 ​​FFMPEG/ffplay 错误。

请注意,ffplay 需要被告知分辨率,如下所示:ffplay -x 1920 -y 1080 some.mp4在没有窗口管理器的情况下启动时。扔进去-noborder可能也不会造成伤害。

但很可能你的错误出在其他地方:你确定你拥有图形所需的所有依赖项吗?您确定VM有必要的虚拟硬件吗?

您确定您不需要exec ffplay在 .xinitrc 之前运行其他内容吗?例如,我使用 NVIDIA 显卡,因此我的 .xinitrc 开头有以下内容:

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

还有一些用于 .xinitrc 的系统范围脚本:

for f in /etc/X11/xinit/xinitrc.d/*; do
        [ -x "$f" ] && . "$f"
done

我认为首先您需要确保能够从虚拟机获取任何 Xorg 图形。

相关内容