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
要使用音頻投射您的桌面:
在 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 內置屏幕錄像機處於活動狀態)和投射到電視遙控器。從那裡您可以:按停止按鈕停止桌面投射(在開始投射之前不會顯示)。