快轉到主要內容

Mkchromecast,投放Linux電腦螢幕和影片到Chromecast的方法

分類   Linux系統 Linux好用軟體
標籤   Chromecast PipeWire
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

Google推出的Chromecast產品,是不錯的影音投放工具,而且很多電視盒和音箱都有內建Chromecast功能。投放的工具有了,接著就是軟體支援度了,Linux電腦端要投放內容到Chromecast,有以下軟體可以辦到:

  • Chromium系瀏覽器內建的 投放功能
  • VLC
  • Gnomecast
  • pychromecast
  • mkchromecast
  • go-chromecast
  • catt

其中Chromium的操作最為簡單,畢竟是自家人研發的,只要準備瀏覽器就能像Google Meet那樣分享電腦螢幕到Chromecast,部份網站還能直接投放影片。

不過如果我們想要稍稍擺脫Google的控制,並想要多一點自訂性操作的話,那就使用第三方開發者製作的Chromecast投放工具吧。Chromecast雖然是專有協定,但厲害的開發者做出了能跟Chromecast溝通的程式。在眾多選項中我選擇功能最多的「mkchromecast」。

mkchromecast能夠投放本機影音檔案到Chromecast,支援自訂位元率(音質最高可達24-bit/96kHz),並搭配PulseAudio的多重輸出功能來快速切換音訊。

最後就是把Linux螢幕投放到Chromecast最吸引我了。

1. 測試環境
#

  • KDE Plasma 6 X11
  • PipeWire 1.0.7 (相容Pulse Audio)
  • Chromecast第3代

請確保已用手機的Google Home APP設定好Chromecast並連上Wifi。

如果不想用手機,那麼用這個指令稿也可以從Linux直接設定Chromecast: Set up a Chromecast from a Linux PC

2. 安裝mkchromecast
#

mkchromecast支援Linux和macOS,程式是用Python寫的,安裝方式參考 作者說明

Arch Linux從AUR安裝:

yay -S mkchromecast-git

Ubuntu 下載PulseAudio版的deb檔安裝:

sudo apt install ./mkchromecast-pulseaudio_0.3.8.1-1_all.deb

3. 搜尋Chromecast裝置
#

  1. 讓Chromecast和Linux電腦處於同一個Wifi下。

  2. 可能要暫時關閉Linux防火牆

sudo ufw disable
  1. 使用指令mkchromecast -t啟動,點選系統匣的按鈕掃描附近裝置

  2. 確認Chromecast裝置有出現在終端機列表

  3. 不要關閉這個終端機,開第二個終端機。然後看下面的mkchromecast使用例。

mkchromecast在投放的時候會自動選取第一個找到的裝置,若有多個裝置請加上IP引數(--host 192.168.1.101)或名稱(--name 名稱)。

4. 投放音訊到Chromecast
#

影音傳輸到Chromecast之前會經過ffmpeg轉碼,因此Linux端的音效軟體(EasyEffects)和畫質放大工具(Anime4K)會失效。

使用範例如下,指定編碼為flac,位元率、取樣率,並設定鍵盤控制音量,並傳入檔案"/home/user/sample.flac"

mkchromecast -c flac -b 128 --sample-rate 96000 --control -i "/home/user/sample.flac"

播放音訊的時候按u、d調整音量,p暫停。

5. 將PulseAudio與Chromecast連線
#

本功能跟上述投放音訊的差別在於,mkchromcast會製造一個PulseAudio的sink,讓你可以用pavucontrol切換音訊輸出源,從而靈活切換播放的音樂。

比如,同時開著Chromium和Spotify,再透過pavucontrol面板切換,就不需要頻繁打指令來播放音樂了。

  1. 先裝pavucontrol套件。

  2. 接著,啟動mkchromecast,不要加任何引數

mkchromecast
  1. 在pavucontrol面板就會看到一個新sink,音訊播放的時候切換過去,音樂就會跟著傳到Chromecast。

6. 投放影片到Chromecast
#

附上影片路徑並指定畫質,還可以加上字幕檔:

mkchromecast --resolution 1280x720 -i "/home/user/sample.mp4" --subtitles "/home/user/sample.mp4.srt"

mkchromecast尚可透過yt-dlp抓Youtube影片:

mkchromecast "https://www.youtube.com/watch?v=JIBGYK8pxEY"

7. 投放螢幕到Chromecast
#

目前此功能僅支援X11工作階段。

投放目前螢幕到Chromecast:

mkchromecast --video --screencast --resolution 1920x1080

延遲蠻高的說,或許只能當簡報使用。

至於瀏覽器投放,有一個 Cast with mkchromecast的擴充功能,但設定得安裝MPV的Python套件,很麻煩,還不如用Chromium內建投放功能。

相關文章

實驗:透過Distrobox Container使用Ibus輸入法
分類   Linux系統 Linux好用軟體
標籤   IBus Input Method
Linux電腦音質提昇軟體 ~ Easy Effects,拯救破喇叭
分類   Linux系統 Linux好用軟體
標籤   Audio Enhancer Linux PipeWire
Linux 將卡式錄音帶的音樂轉錄到電腦,配合Audacity存成數位MP3檔案
分類   Linux系統 Linux好用軟體
標籤   PipeWire Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。