如何使用投射到电视将GNOME Shell桌面投射到Chromecast(具有音频,Wayland / X11支持)

投放到电视,它是GNOME Shell扩展程序,用于将文件和更多内容投射到Chromecast设备(以及更多),最近进行了更新,该功能支持将声音投射到桌面,该声音可与Wayland和X11一起使用。这需要借助辅助程序add-在叫 投射到电视桌面流附加组件,该文件最近在GNOME扩展网站上首次发布。
要使桌面流媒体正常工作,您需要Cast to TV版本14或更高版本,该版本仅支持GNOME Shell 3.36和3.34(例如Ubuntu 20.04和19.10,以及Fedora 31和32)。这意味着该版本不适用于较旧的Linux使用较旧的GNOME Shell版本的发行版,例如Ubuntu 18.04或Fedora 30。

本文介绍了如何使用Cast to TV(及其辅助插件)将GNOME Shell桌面投射到具有声音的Chromecast设备上,该设备可与X11和Wayland一起使用。分步说明适用于Debian / Ubuntu / Pop!_OS,Fedora和Arch Linux / Manjaro(在任何基于GNOME Shell的Linux发行版上,步骤应该相同,但程序包的名称可能不同)。
正式来说,您可以使用Google Chrome将Linux桌面流式传输到Chromecast。Cast to TV相对于Chromecast桌面流传输而言,与Google Chrome相比有一些优势:

  • 它与Google的浏览器无关
  • 它可以为您的桌面提供有效的音频流,而在带有Google Chrome的Linux上则无法使用
  • 它支持Wayland,这可能是将桌面从Wayland投射到Chromecast设备的唯一方法
  • 它具有可自定义的视频比特率和fps
  • 它具有硬件加速功能(适用于Intel / AMD的VAAPI和适用于Nvidia显卡的NVENC)
  • 您还可以选择显示或隐藏鼠标光标。

与Cast to TV相比,Google Chrome也有两个优点:流延迟较低(Cast to TV当前延迟约3秒),并且可与GNOME Shell以外的桌面环境一起使用。因此,请使用适合您的解决方案需要最好的。
投射到电视上不仅可以将您的桌面投射到Chromecast上,还可以投射本地图片,视频和音频文件以及可选的转码,GPU加速的视频编码以降低CPU使用率,字幕等等。 查看其项目页面以获取详细信息您可能还会喜欢:用于Firefox的Chromecast扩展fx_cast 0.0.5添加了对YouTube的支持,对本地媒体的字幕。

在Debian / Ubuntu / Pop!_OS,Fedora或Arch Linux / Manjaro中设置Cast to TV,将您的桌面投射到Chromecast

要使用Cast to TV来流式传输GNOME Shell桌面(仅适用于3.34或3.36版!)到Chromecast,您需要安装Cast to TV版本14(或更高版本)和Cast to TV Desktop附加组件,并安装一些GStreamer插件,并调整一些PulseAudio设置。这是您需要在Debian / Ubuntu,Fedora或Arch Linux / Manjaro上进行的详细操作。
使用这些步骤,将启用整个“投射到电视”功能,因此您不仅可以投射桌面,还可以从GNOME Shell桌面投射视频,音乐和图片。从Linux流式传输到Chromecast的更多方法:

  • CATT,命令行Chromecast播放器
  • Gnomecast,一个GUI应用程序,用于将本地音频和视频文件流式传输到Chromecast

1.安装所需的Cast to TV和Cast to TV-Desktop Add-on依赖项。
投射到电视扩展需要某些模块使用npm和Node.js,并需要FFmpeg进行转码投射到电视桌面流附加组件也具有一些依赖性:GStreamer基础,好,坏和丑陋的插件。
还需要PulseAudio(和pacmd),但是在大多数情况下应该已经安装了它们。
使用以下命令安装依赖项:

  • Debian / Ubuntu / Pop!_OS:
sudo apt install ffmpeg npm nodejs gstreamer1.0-plugins-{base,good,bad,ugly}
  • 软呢帽:

您需要启用RPM Fusion存储库以安装FFmpeg和一些GStreamer插件(以防您尚未启用此存储库),然后安装软件包:

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

sudo dnf install ffmpeg gstreamer1-plugins{base,good,bad-free,ugly}
  • Arch Linux / Manjaro:
sudo pacman -S ffmpeg npm nodejs gst-plugins-{base,good,bad,ugly}

2.安装可选的依赖项。
也有一些可选的依赖关系。当使用Nvidia驱动程序(NVENC)进行硬件加速录制时,您不需要安装任何额外的软件包,因为它已在GStreamer1-plugins-bad软件包中提供(取决于您的Linux发行版是否启用了此功能)但是,它可能不可用),对于VAAPI(Intel / AMD),您需要安装GSttreamer1-vaapi软件包:

  • Debian / Ubuntu / Pop!_OS:
sudo apt install gstreamer1.0-vaapi
  • 软呢帽:
sudo dnf install gstreamer1-vaapi
  • Arch Linux / Manjaro:
sudo pacman -S gstreamer-vaapi

Cast to TV Desktop Add-on Wiki指出,考虑到硬件加速的GStreamer实现(VAAPI和NVENC都是“实验性的”),这一点非常重要,使用它可能会使GNOME Shell崩溃。在将GNOME Shell 3.36桌面流式传输到Chromecast的测试中使用硬件加速,因为我的Nvidia图形不支持NVENC。
因此,如果您的桌面崩溃了,或者在使用硬件加速时无法将桌面投射到Chromecast,请禁用它(Cast to TV preferences -> Add-ons > Desktop -> Hardware acceleration: None)。
在Debian / Ubuntu上,还有一个可选的依赖项.GStreamer插件没有 fdkaacfaac 默认情况下启用AAC音频编码器,仅 voaacenc 可用的版本已经很旧了。要在Debian / Ubuntu上获得更好的音频流,可以使用FFmpeg GStreamer插件(尽管最近的Debian / Ubuntu版本使用的是FFmpeg, libav 在软件包名称中),为 avenc_aac AAC音频编码安装此软件包:

sudo apt install gstreamer1.0-libav

3.安装“投射到电视”和“投射到电视桌面流附加组件”。
可以在GNOME Shell扩展网站上找到这些扩展。如果允许在Linux发行版上安装GNOME Shell扩展,则可以使用GNOME软件安装Cast to TV,然后安装Cast to TV Desktop Stream Add-on。
或者,您可以按照GNOME Wiki中的说明进行操作,以 将GNOME Shell与Google Chrome和Firefox集成,然后您就可以使用这两个网络浏览器安装GNOME Shell扩展。按照这些说明进行操作后,请访问 投射到电视扩展页面 从GNOME Shell扩展网站,然后单击网页右上角的OFF(关闭)按钮进行安装。然后对 投射到电视桌面流附加组件
目前尚未完成扩展程序的安装,因为您需要安装一些npm模块。您需要打开“投射到电视”偏好设置。
我需要在此处做一个重要说明。Cast to TV v14发行说明提到GNOME Shell 3.36.1中的一个错误阻止了从GNOME系统菜单(“广播设置”)中打开扩展首选项。在带有GNOME Shell 3.36.1的Ubuntu 20.04上,可能要归功于一些修补程序,该修补程序可以使它正常工作,但是如果您在另一个Linux发行版上偶然发现了此问题,请使用新的GNOME扩展应用程序(随GNOME 3.36)。投射到电视上安装npm模块

在投放到电视偏好设置中,切换到 Modules 标签并点击 Install npm modules 在窗口的底部(上图为屏幕快照)。在同时安装Cast to TV和Cast to TV Desktop附加组件之后执行此操作,因为两者都需要安装一些npm模块。4。启用将桌面音频流传输到Chromecast。
将GNOME Shell桌面流传输到Chromecast设备以使用音频有两个要求。第一个要求是在“投射到电视”扩展程序首选项中选择系统上可用的AAC插件。要查看哪些AAC GStreamer插件可用于您的系统,使用(您不需要所有,一个就足够了):

gst-inspect-1.0 fdkaac
gst-inspect-1.0 faac
gst-inspect-1.0 avenc_aac
gst-inspect-1.0 voaacenc

如果您获得“无此类元素或插件”作为输出,例如在Ubuntu上:

$ gst-inspect-1.0 faac
No such element or plugin 'faac'

这意味着该插件不可用,因此您无法在“投射到电视”设置中使用该插件将桌面音频流传输到Chromecast。
相反,如果您得到一些输出,像这样:

$ gst-inspect-1.0 avenc_aac
Factory Details:
Rank                     none (0)
Long-name                libav AAC (Advanced Audio Coding) encoder
Klass                    Codec/Encoder/Audio
Description              libav aac encoder
Author                   Wim Taymans , Ronald Bultje 

Plugin Details:
Name                     libav
Description              All libav codecs and formats (system install)
Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so
Version                  1.16.2
License                  LGPL
Source module            gst-libav
Binary package           GStreamer libav Plugins (Ubuntu)
Origin URL               https://launchpad.net/distros/ubuntu/+source/gst-libav1.0
........

这表示您的系统上有特定的插件可用,您可以从“投射到电视”扩展程序首选项中进行选择(Add-ons -> Desktop -> Audio encoder)。同时启用 Stream with audio 用于为桌面投射音频:投放桌面Linux偏好设置

在Debian和Ubuntu上, fdkaacfaac 在GStreamer中不可用,这就是为什么我建议安装 gstreamer1.0-libav,以便能够使用 avenc_aac在Arch Linux / Manjaro上,两者 fdkaacfaac 在安装GStreamer基本,好,坏和丑陋的插件后应该可用,因此请使用其中之一。在Fedora上,安装GStreamer插件后,您应该 fdkaac 尽可能使用它。
如果您没有在“投射到电视”偏好设置中选择可用的AAC编码器,则将桌面投射到Chromecast将会失败(您甚至都无法投射视频)。无论出于何种原因,您都无法使用任何AAC编码器您的系统上,禁用音频流(在“投射到电视”首选项中可用)至少可以使桌面流正常工作。将GNOME Shell桌面投射到带有音频的Chromecast的第二个要求是更改PulseAudio /etc/pulse/default.pa 以任何文本编辑器为根的配置,例如,默认的GNOME文本编辑器Gedit(文本编辑器):

gedit admin:///etc/pulse/default.pa

并更改包含以下内容的行:

load-module module-stream-restore

至:

load-module module-stream-restore restore_device=false

保存文件,然后重新启动PulseAudio:

pulseaudio -k

计划将来在GJS中选择本机音频接收器,以供将来投射到电视桌面插件上使用,但在此之前,您需要使用PulseAudio配置文件的手动调整5.将GNOME Shell桌面投射到Chromecast设备上。投放到电视桌面流投射到电视远程桌面流

现在您可以将Linux GNOME Shell桌面投射到Chromecast。从GNOME Shell系统菜单中,展开“投射媒体”项,然后单击“桌面”。
一旦开始将桌面投射到Chromecast设备上,就会看到一个橘黄色的点(这表示GNOME Shell内置屏幕录像机处于活动状态),以及顶部面板上的“投射到电视”遥控器,您可以在其中进行操作。通过按“停止”按钮停止投射桌面(直到您开始投射时,此按钮才会显示)。

Sidebar