如何使用 Cast to TV(音頻、Wayland / X11 兼容)將 GNOME Shell 桌面投射到 Chromecast


Cast to TV 是一個 GNOME Shell 擴展,用於將文件和更多內容投射到 Chromecast 設備(和其他設備),最近已更新以支持 Wayland 和 X11 桌面和音頻投射。這是在名為 Cast to TV – Desktop Stream Add-on 的輔助插件的幫助下完成的,該插件最近首次在 GNOME Extensions 網站上發布。

桌面流式傳輸需要投射到電視版本 14 或更高版本才能正常工作。它僅支持 GNOME Shell 3.36 和 3.34(Ubuntu 20.04 和 19.10、31 和 32,例如 Fedora)。這意味著它不適用於使用舊版本 GNOME Shell 的舊 Linux 發行版,例如 Ubuntu 18.04 和 Fedora 30。

本文介紹如何使用 Cast to TV(及其輔助插件)將您的 GNOME Shell 桌面投射到帶有 X11 和 Wayland 聲音的 Chromecast 設備。分步說明是 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 投射到 Chromecast 設備的唯一方法。
  • 具有可自定義的視頻比特率和 fps
  • 配備硬件加速(Intel / AMD 的 VAAPI,Nvidia 顯卡的 NVENC)
  • 您還可以選擇顯示或隱藏鼠標光標。

與 Cast to TV 相比,Google Chrome 還具有多項優勢。它有很短的流媒體等待時間(Cast to TV 等待時間目前約為 3 秒),並且可以在 GNOME Shell 以外的桌面環境中工作。因此,請使用最適合您需求的解決方案。

投射到電視不僅僅是將您的桌面投射到 Chromecast。您還可以使用可選的轉碼和 GPU 加速的視頻編碼來投射本地圖像、視頻和音頻文件,以減少 CPU 使用率、字幕等。有關更多信息,請參閱項目頁面。

Chromecast Firefox 擴展 fx_cast0.0.5 添加了 YouTube 支持和本地媒體字幕。

將您的桌面投射到 Chromecast、Fedora 或 Arch Linux / Manjaro、Debian / Ubuntu / Pop! 使用 _OS 將 Cast 設置為 TV。

在 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 上執行的詳細操作:

這些步驟啟用了整個 Cast to TV 功能,因此您可以從 GNOME Shell 桌面和桌面投射視頻、音樂和照片。

從 Linux 流式傳輸到 Chromecast 的其他方式:

  • CATT,命令行 Chromecast 播放器
  • 用於將 Gnomecast、本地音頻和視頻文件流式傳輸到 Chromecast 的 GUI 應用程序

1. 安裝所需的 Cast to TV 和 Cast to TV – 桌面附加依賴項。

Cast to TV 擴展需要 npm 和 Node.js 用於某些模塊和 FFmpeg 用於轉碼。 Cast to TV-Desktop 流媒體插件也有一些依賴關係:基於 GStreamer 的插件、好插件、壞插件和醜插件。

您還需要 PulseAudio(和 pacmd),但在大多數情況下,它們應該已經安裝。

使用以下命令安裝依賴項:

  • Debian / Ubuntu / 流行! _操作系統:
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),您需要安裝 GStreamer1-vaapi 包。

  • Debian / Ubuntu / 流行! _操作系統:
sudo apt install gstreamer1.0-vaapi
  • 軟呢帽:
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 Graphics 不支持 NVENC。

因此,如果您的桌面崩潰或在使用硬件加速時無法將桌面投射到 Chromecast,請禁用它 (“
Cast to TV preferences -> Add-ons > Desktop -> Hardware acceleration: None

)。

Debian / Ubuntu 也有可選的依賴項。 不做 GStreamer 插件
fdkaac

什麼時候
faac

AAC 音頻編碼器默認啟用,
voaacenc

可用,很舊了。 要改進 Debian / Ubuntu 上的音頻流,您可以使用 FFmpeg GStreamer 插件(儘管 FFmpeg 已在最近的 Debian / Ubuntu 版本中使用。
libav

按包名),這是
avenc_aac

AAC 音頻編碼。安裝這個包。

sudo apt install gstreamer1.0-libav

3. 安裝 CasttoTV 和 CasttoTV 桌面流插件。

這些擴展可以在 GNOME Shell Extensions 網站上找到。 如果您可以在 Linux 發行版上安裝 GNOME Shell 擴展,則可以使用 GNOME 軟件安裝 Cast to TV,然後安裝 Cast to TV Desktop Stream 附加組件。

或者,您可以按照 GNOME wiki 上的說明將 GNOME Shell 與 Google Chrome 和 Firefox 集成,並使用這兩種 Web 瀏覽器安裝 GNOME Shell 擴展。完成這些步驟後,從 GNOME Shell Extensions 網站轉到 Cast to TV Extensions 頁面,您會在頁面右上角找到它。[閉じる]點擊按鈕進行安裝。然後對 Cast to TV – Desktop Stream Add-on 執行相同的操作。

此時擴展安裝尚未完成,因為需要安裝一些 npm 模塊。 必須打開“投射到電視”偏好設置。

這裡需要特別注意。 Cast to TV v14 發行說明包含 GNOME Shell 3.36.1 中的一個錯誤,該錯誤會阻止您從 GNOME 系統菜單(“Cast Settings”)打開擴展設置。 這在帶有 GNOME Shell 3.36.1 的 Ubuntu 20.04 上不會發生。可能要感謝一些補丁使它工作,但如果您在另一個 Linux 發行版中遇到這個問題,請使用新的 GNOME 擴展應用程序(在 GNOME 3.36 中引入)。 )。

在“投射到電視”設置中,
Modules

單擊選項卡,然後單擊
Install npm modules

窗口底部(上面的屏幕截圖)。 在安裝 CasttoTV 和 CasttoTV 桌面插件後執行此操作。兩者都是因為您需要安裝一些 npm 模塊。

4. 啟用帶有音頻的桌面流式傳輸到 Chromecast。

將 GNOME Shell 桌面流式傳輸到 Chromecast 設備以進行音頻處理有兩個要求。

第一次
可在 CasttoTV 擴展設置中選擇的系統上使用的 AAC 插件。要查看您的系統上有哪些 AACG Streamer 插件可用,請使用以下內容(不是全部,一個就足夠了):

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'

這意味著該插件不可用。因此,您無法使用 Cast to TV 設置中的插件將帶有音頻的桌面流式傳輸到 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 編碼器,音頻流 ([テレビにキャスト]禁用)(在設置中可用)至少啟用桌面流。

第二
將 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 中的本機音頻同步選擇計劃用於未來的 Cast to TV Desktop 附加組件,但在此之前,您需要手動調整 PulseAudio 配置文件。

5. 將 GNOME Shell 桌面投射到您的 Chromecast 設備。

投射到電視桌面流媒體

投射到電視遠程桌面流

現在您可以將 Linux GNOME Shell 桌面轉換為 Chromecast。 從 GNOME Shell 系統菜單中展開 CastMedia 項,然後單擊桌面。

當您開始將桌面投射到 Chromecast 設備時,您會在頂部面板中看到一個橙黃色圓點(表示 GNOME Shell 內置屏幕錄像機處於活動狀態)和投射到電視遙控器。從那裡您可以:按停止按鈕停止桌面投射(在開始投射之前不會顯示)。



Source link