如何使用 Cast to TV 将 GNOME Shell 桌面投射到 Chromecast(支持音频、Wayland / X11)

[ad_1]

Cast to TV,一个用于将文件和更多内容投射到 Chromecast 设备(以及更多)的 GNOME Shell 扩展程序,最近更新,支持投射您的桌面和声音,适用于 Wayland 和 X11。 这是在名为 Cast to TV – Desktop Stream Add-on 的辅助插件的帮助下完成的,该插件最近在 GNOME 扩展网站上首次发布。

要使桌面流式传输工作,您需要 Cast to TV 版本 14 或更高版本,该版本仅支持 GNOME Shell 3.36 和 3.34(Ubuntu 20.04 和 19.10,以及 Fedora 例如 31 和 32)。 这意味着这不适用于使用较旧 GNOME Shell 版本的较旧 Linux 发行版,例如 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。 不过,对于 Chromecast 桌面流媒体,Cast to TV 比 Google Chrome 有一些优势:

  • 它与谷歌的浏览器无关
  • 它使用工作音频流式传输您的桌面,这在带有 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 使用率、字幕等来投射本地图片、视频和音频文件。 查看其项目页面了解详细信息。

Chromecast Firefox 扩展 fx_cast 0.0.5 添加了对 YouTube 的支持,以及对本地媒体的字幕。

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

使用 Cast to TV 流式传输您的
GNOME Shell 桌面(仅限 3.34 或 3.36 版!)
对于 Chromecast,您需要安装 Cast to TV 版本 14(或更新版本)和 Cast to TV Desktop Add-on,安装一些 GStreamer 插件,并调整一些 PulseAudio 设置。 这是您需要在 Debian / Ubuntu 上详细执行的操作, Fedora 或 Arch Linux / Manjaro。

使用这些步骤,将启用整个 Cast to TV 功能,因此您不仅可以投射桌面,还可以投射来自 GNOME Shell 桌面的视频、音乐和图片。

从 Linux 流式传输到 Chromecast 的更多方法:

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

1. 安装所需的 Cast to TV 和 Cast to TV – Desktop Add-on 依赖项。

Cast to TV 扩展需要 npm 和 Node.js 用于某些模块,以及 FFmpeg 用于转码。 投射到电视 – 桌面流附加组件也有一些依赖项:GStreamer 基础、好的、坏的和丑陋的插件。

还需要 PulseAudio(和 pacmd),但在大多数情况下应该已经安装了这些。

使用以下命令安装依赖项:

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

  • Fedora:

您需要启用 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

  • Fedora:
sudo dnf install gstreamer1-vaapi

  • Arch Linux / Manjaro:
sudo pacman -S gstreamer-vaapi

考虑到硬件加速的 GStreamer 实现(VAAPI 和 NVENC)是“实验性的”这一点非常重要,Cast to TV Desktop Add-on wiki 指出,使用它可能会导致 GNOME Shell 崩溃。 在将 GNOME Shell 3.36 桌面流式传输到 Chromecast 的测试中,我没有尝试使用硬件加速,因为我的 Nvidia 图形不支持 NVENC。

因此,如果您的桌面崩溃或者您在使用硬件加速时无法将桌面投射到 Chromecast,请禁用它(
Cast to TV preferences -> Add-ons > Desktop -> Hardware acceleration: None

)。

在 Debian / Ubuntu 上,还有一个可选的依赖项。 GStreamer 插件没有
fdkaac


faac

AAC 音频编码器默认启用,只有
voaacenc

可用,这是相当旧的。 为了在 Debian / Ubuntu 上获得更好的音频流,您可以使用 FFmpeg GStreamer 插件(在最近的 Debian / Ubuntu 版本中使用 FFmpeg,尽管
libav

在包名中),它提供了对
avenc_aac

AAC 音频编码。 安装这个包:

sudo apt install gstreamer1.0-libav

3. 安装 Cast to TV 和 Cast to TV Desktop Stream Add-on。

这些扩展可在 GNOME Shell 扩展网站上找到。 如果允许在 Linux 发行版上安装 GNOME Shell 扩展,您可以使用 GNOME 软件安装 Cast to TV,然后安装 Cast to TV Desktop Stream Add-on。

或者您可以按照 GNOME wiki 中的说明将 GNOME Shell 与 Google Chrome 和 Firefox 集成,然后您就可以使用这两个 Web 浏览器安装 GNOME Shell 扩展。 按照这些说明操作后,从 GNOME Shell 扩展网站访问 Cast to TV 扩展页面,然后单击网页右上角的“关闭”按钮进行安装。 然后对 Cast to TV – Desktop Stream Add-on 执行相同的操作。

此时还没有完成扩展安装,因为您需要安装一些 npm 模块。 您需要打开“投射到电视”首选项。

我需要在这里做一个重要的笔记。 Cast to TV v14 发行说明提到 GNOME Shell 3.36.1 中的一个错误阻止从 GNOME 系统菜单(“Cast 设置”)打开扩展首选项。 不过,在使用 GNOME Shell 3.36.1 的 Ubuntu 20.04 上,这不会发生,这可能要归功于一些补丁使其起作用,但如果您在另一个 Linux 发行版上偶然发现此问题,请使用新的 GNOME 扩展应用程序(随 GNOME 3.36 引入)。

在“投射到电视”首选项中,切换到
Modules

选项卡并单击
Install npm modules

在窗口底部(上面的屏幕截图)。 在安装 Cast to TV 和 Cast to TV Desktop Add-on 后执行此操作,因为两者都需要安装一些 npm 模块。

4. 启用将带有音频的桌面流式传输到 Chromecast。

要将 GNOME Shell 桌面流式传输到 Chromecast 设备以处理音频,有两个要求。

首先
是在 Cast to TV 扩展首选项中选择系统上可用的 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 <[email protected]>, Ronald Bultje <[email protected]>

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
........

这意味着特定插件在您的系统上可用,您可以从 Cast to TV 扩展首选项中选择它(
Add-ons -> Desktop -> Audio encoder

)。 还启用
Stream with audio

使用音频投射您的桌面:

投射桌面 linux 首选项

在 Debian 和 Ubuntu 上,
fdkaac


faac

在 GStreamer 中不可用,这就是我建议安装的原因
gstreamer1.0-libav

, 能够使用
avenc_aac

. 在 Arch Linux / Manjaro 上,两者
fdkaac


faac

安装 GStreamer 基础后应该可用,好的、坏的和丑陋的插件所以使用其中之一。 在 Fedora, 安装 GStreamer 插件后你应该有
fdkaac

可用,所以使用它。

如果您没有在“投射到电视”首选项中选择可用的 AAC 编码器,则将桌面投射到 Chromecast 将失败(您甚至无法进行视频投射)。 如果出于某种原因,您的系统上没有任何可用的 AAC 编码器,请禁用音频流(可在“Cast to TV”首选项中使用)以至少使桌面流能够工作。

第二个
将 GNOME Shell 桌面投射到带音频的 Chromecast 所需的要求是更改 PulseAudio
/etc/pulse/default.pa

以 root 身份使用任何文本编辑器进行配置,例如 Gedit(文本编辑器),默认的 GNOME 文本编辑器:

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

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

load-module module-stream-restore

到:

load-module module-stream-restore restore_device=false

Save 文件,然后重新启动 PulseAudio:

pulseaudio -k

GJS 中的本机音频接收器选择计划用于未来的 Cast to TV Desktop Add-on,但在那之前您需要使用 PulseAudio 配置文件的手动调整。

5. 将您的 GNOME Shell 桌面投射到 Chromecast 设备。

投射到电视桌面流媒体

投射到电视远程桌面流

现在您可以将您的 Linux GNOME Shell 桌面转换为 Chromecast。 从 GNOME Shell 系统菜单中展开 Cast Media 项目,然后单击桌面。

开始将桌面投射到 Chromecast 设备后,会看到一个橙黄色的点(这意味着 GNOME Shell 内置屏幕录像机处于活动状态),以及顶部面板上的 Cast to TV 遥控器 – 从那里您可以按停止按钮停止投射您的桌面(在您开始投射之前不会显示)。

[ad_2]

Related Posts