[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
使用音频投射您的桌面:
在 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]