适用于GNOME,Xfce或bspwm桌面的视频直播壁纸

本文介绍了如何在带有X11的GNOME,Xfce或bspwm上将实时流用作桌面墙纸(不适用于Wayland)。实时视频流可以是任何您喜欢的流(实时城市cam或ISS实时供稿)例如),只要Streamlink支持。
需要特别注意的是,使用此直播壁纸会丢失桌面图标的功能,这是因为桌面图标将显示在直播视频壁纸的后面(Xfce就是这种情况),Nautilus绘制桌面的两个GNOME桌面都属于这种情况,以及使用桌面图标GNOME Shell扩展。如果您使用多台显示器,这不是问题,因为您可以将桌面图标放在与实时视频墙纸不同的显示器上。
您可能会认为这会占用大量CPU。在我的Ubuntu 19.04桌面上,将mpv设置为使用硬件加速的视频解码,根据htop的说法,用作我的桌面墙纸的1080p实时视频源仅使用大约2-3%的CPU (因此只有2-3%的单核),因此基本上可以忽略不计。尽管使用硬件视频解码,根据htop的使用,mpv的使用率在30%到35%之间,是的,这有点太多了。因此,请确保将mpv与硬件加速。
这很短 视频 使用纽约的直播视频显示在我的Ubuntu 19.04(GNOME)桌面上显示直播壁纸:您需要:

  • 将GNOME,Xfce或bspwm与X11一起使用(其他台式机可能会起作用,但是在我的尝试中,它无法像在KDE Plasma或MATE上那样起作用;我没有尝试过其他用途)
  • 实时视频流,例如YouTube视频实时流,ISS实时供稿,一些城市实时网络摄像头等
  • 流链接 提取流并用mpv播放
  • mpv 0.29.1或更高版本才能播放实时视频(它可能与某些旧版本兼容,但是在使用mpv 0.27.2进行测试时,窗口边框并未消失,因此,如果遇到此问题,您可能需要更新mpv版本)
  • Xwinwrap叉子 (链接指向具有一些增强功能的Xwinwrap的分支,其他版本可能无法正常工作),将mpv粘贴到桌面背景需要使用

以下是一些实时视频供稿示例,您可以将其用作GNOME或bspwm桌面墙纸:

相关:使用GLava在Linux桌面背景上嵌入音频可视化工具(PPA安装和配置指南)

安装将实时视频供稿用作桌面墙纸所需的程序

1.安装mpv
Debian buster&sid / Ubuntu 19.04、19.10或20.04(由于需要最新的mpv;对于Ubuntu 18.04的PPA,请参见下面的内容):

sudo apt install mpv

-Fedora:
如果尚未启用,请启用RPMFusion存储库:

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

并安装mpv:

sudo dnf install mpv jack-audio-connection-kit

我加了 jack-audio-connection-kit 到mpv安装命令,因为mpv在Fedora 30中不依赖于此软件包,但是没有它就无法启动(显示错误: mpv: error while loading shared libraries: libjack.so.0: cannot open shared object file: No such file or directory)。
-Arch Linux:

sudo pacman -S mpv

就像我在文章顶部提到的那样,您很可能需要mpv 0.29.1或更高版本,它可能适用于某些旧版本,但是在使用mpv 0.27.2进行测试时,窗口边框并未消失,因此在如果您遇到此问题,则可能需要更新的mpv版本,Ubuntu 19.04的版本为mpv 0.29.1,对于较旧的Ubuntu版本,如Ubuntu 18.04。 你可以使用PPA.2。安装Xwinwrap
-Ubuntu / Debian:您可以在Xwinwrap分支上找到分步安装说明(从源代码) GitHub项目首页。还有一个DEB包 这里 (它适用于较新的Ubuntu版本,包括Ubuntu 18.04和19.04、19.10或20.04)。
-Arch Linux:有一个 AUR套餐 Xwinwrap(fork)(如果使用其他Linux发行版),则需要从Debian / Ubuntu上列出的软件包名称中找出需要安装哪些依赖项。 Xwinwrap GitHub项目页面,然后按照那里的说明进行编译3.安装Streamlink
-Debian / Ubuntu:

sudo apt install streamlink

-Fedora:

sudo dnf install python3-streamlink

-Arch Linux:

sudo pacman -S streamlink

在其他Linux发行版上,请参见 Streamlink安装页面在Ubuntu 18.04(及更旧的版本)上,Streamlink可能太旧而无法播放某些流,例如在我的Ubuntu 18.04笔记本电脑上,它无法播放YouTube流。在这种情况下,您可以从Ubuntu 19.04下载更新的Streamlink较旧的Ubuntu版本(至少在Ubuntu 18.04中)。您需要下载并安装2个软件包(单击该页面上的任何镜像以下载DEB):

如果要使用GUI安装DEB软件包,请先从python3-streamlink开始,然后再安装streamlink DEB软件包。与壁纸有关:如何在Gnome上为每个监视器设置不同的背景

创建将直播用作墙纸所需的2个脚本

提醒一下,使用此功能需要运行Xorg,例如Fedora默认使用Wayland,因此,如果要在Fedora上使用它,请注销并从登录屏幕中选择 Gnome on Xorg,然后登录1.创建2个脚本,这些脚本将用于获取直播并将其设置为桌面背景。
要将您选择的实时流用作桌面背景,您需要创建2个脚本。创建2个文件,名为 livebackground.shlivestream.sh 在一个名为 scripts 在您的主目录中(因此脚本路径是 ~/scripts/livebackground.sh~/scripts/livestream.sh)。您可以使用其他路径和脚本名称,但是您需要用自定义名称和路径替换我的说明中提到的所有脚本!相关信息:如何在Linux桌面背景上嵌入Google Calendar Widget的 livebackground.sh 脚本,保存文件:

#!/usr/bin/env sh
xwinwrap -fs -fdt -ni -b -nf -- ~/scripts/livestream.sh WID

这就是此代码中使用的每个Xwinwrap选项的含义:

  • -fs: 全屏
  • -fdt:将WID窗口作为桌面类型窗口
  • -ni:忽略输入(因此播放器控件不会出现在鼠标悬停等上)
  • -b:下方(因此,直播窗口显示在其他窗口下方)
  • -nf:没有重点

那些想要指定分辨率的人,删除 -fs (全屏)并添加 -g WxH 例如,(W =宽度,H =高度) -g 1920x1080如果使用两个监视器,则需要指定完整的几何图形: -fs-g WxH+X+Y (W =宽度,H =高度,X = x坐标,Y = y坐标)。举例来说,如果您有两个监视器,并且都使用1920×1080屏幕分辨率,并且您想在第二个监视器上显示实时壁纸(右边的一个),使用: -g 1920x1080+1920+0另一个示例:如果左侧的显示器使用2560×1080的屏幕分辨率,而右侧的显示器使用1920×1080,并且您希望实时壁纸显示在右侧的显示器上,请使用 -g 1920x1080+2560+0
这些选项足以在我的Ubuntu 19.04 Gnome桌面上提供直播背景,但是如果遇到问题,可以使用更多选项,您可以在 Xwinwrap页面。在里面 livestream.sh 脚本使用此代码并保存文件:

#!/usr/bin/env sh
streamlink -p "mpv --no-audio --wid=$1" https://www.youtube.com/watch?v=-M8u4jaCCJs best

在此脚本中,我使用的是YouTube上的Amsterdam实时视频供稿,但只要Streamlink支持,您就可以使用任何所需的直播。您要做的就是用实时视频供稿替换此脚本中的YouTube链接。我想以ISS Earth View凸轮为例,但是当国际空间站位于地球的夜晚时它是黑色的,因此您可能以为如果在进行测试时对其进行测试是不起作用的它是黑色的。
也, best URL后面表示使用最佳质量。您可以运行 streamlink URL 查看所有可用的质量。
重要的是要提到mpv支持硬件解码,因此它可以具有非常低的CPU使用率。 这个这个 信息链接。
例如,安装所需的软件包后,您可以使用以下命令启用VA-API硬件视频解码 --hwdec=vaapi --vo=vaapi (因此脚本中的streamlink行变为 streamlink -p "mpv hwdec=vaapi --vo=vaapi --no-audio --wid=$1" https://www.youtube.com/watch?v=-M8u4jaCCJs best)或VDPAU使用 --hwdec=vdpau --vo=vdpau.2。使脚本可执行

chmod +x ~/scripts/livestream.sh
chmod +x ~/scripts/livebackground.sh

3.将直播设置为墙纸
现在是时候为墙纸设置直播了。要将桌面背景更改为直播视频,您需要运行 livebackground.sh 脚本打开终端并运行:

~/scripts/livebackground.sh

4.可选地在启动时运行直播壁纸
如果您的桌面可以选择将脚本添加到启动中(例如Ubuntu中的“启动应用程序”应用程序),请使用它来添加 sh -c "~/live-background.sh" (在“命令”框中输入此内容),使其在您登录后运行。
如果您没有GUI来添加启动应用程序和脚本,则可以通过创建一个名为 livestream-wallpaper.desktop~/.config/autostart/ (如果尚不存在,请创建此文件夹),其内容如下:

[Desktop Entry]
Type=Application
Exec=sh -c "~/scripts/livebackground.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Livestream wallpaper

去除 ~/.config/autostart/livestream-wallpaper.desktop 文件,如果您不再希望在登录时自动启动直播壁纸。
想法和两个脚本通过 Reddit (r / unixporn-特别感谢u / lukedoomer和u / Invayder)

Sidebar