快轉到主要內容

NymphCast,自架開源Chromecast替代品,適用樹莓派

Linux系統 Self-hosting自架 Raspberry Pi Chromecast Media Server
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

警告:目前這個專案處於早期階段。版本Version 0.1很多東西還沒做完,bug很多,雖看起來粗糙但已經具備基本可用的功能。

Google Chromecast電視棒也有替代品?是的,NymphCast就是一款開源的螢幕投影/投屏解決方案。

用途有:

  • 手機投放音樂(支援一對多控制)
  • 手機投放影片(支援一對多控制)
  • 使用媒體伺服器點播影片
  • 螢幕保護程式(圖片輪播、智慧相框)
  • 使用AngelScript撰寫的APP播放音樂

按照我用Chromecast 3代的經驗…NymphCast僅能媲美其一半功能。首先我會簡介NymphCast的架構,再來看要如何安裝NymphCast。

1. NymphCast架構簡介
#

如果你真的很討厭Google的話就可以考慮使用NymphCast,因為Chromecast使用閉源協定,你必須使用Google認證的裝置連接,還必須登入Google帳號才能投放影片,幾乎無第三方軟體介入的可能。

於是,Maya Posch開發的NymphCast給了我們額外的選擇,特色是開放原始碼、免帳號、保護隱私的投放功能,不被單一廠商的硬體綁住。

但,與其說NymphCast是Chromecast替代品,倒不如說是模仿Chromecast的一套軟體。NymphCast等同Chromecast、Miracast以外的第三種協定,全新的生態系。

所以,NymphCast不相容Chromecast硬體,也不支援Chromecast的APP進行投放。目前NymphCast的APP支援度為0,只有作者自己做的參考實作客戶端能投放影片、音樂。


NymphCast比較適合擁有樹莓派(Raspberry Pi開發板)的用戶嘗試。過去已經有人嘗試把樹莓派變Chromecast了,像是 Raspicast + Omxplayer。而NymphCast試圖成為一個更完整的解決方案,提供伺服端、客戶端、媒體伺服器、APP擴充功能。

我們來看NymphCast運作原理:參照下圖,樹莓派好比Chromecast本體,在上面安裝NymphCast伺服器(Server)後,將它插到電視或者音響,再用手機NymphCast客戶端(Client)投放影片。影片可以從手機選取,或者從Media Server瀏覽。

圖片來自NymphCast開發者的Github

影片解碼能力要看伺服器端的ffmpeg解碼效果,開發板應該播得動4K影片。或者你可以用Linux電腦主機當NymphCast伺服器。

順帶一提,「NymphCast」這個軟體名字有人覺得不好聽,因為英語裡面Nymph有「性成癮」(Nymphomaniac)的意思。但開發者應該沒有這個意思,可能是單純喜歡貓咪大戰爭才取這個名字的,又或者是取nymph「若蟲」的含意,表示這個軟體處於早期階段。

2. 安裝NymphCast
#

GUI和Media Server的功能還沒做完,這裡跳過不解釋。

  1. 首先在要伺服端的硬體安裝NymphCast server,按照 Github作者指示編譯。

  2. 比如我要設定影片模式,這樣可以投放音樂和影片。Debian先安裝依賴套件

sudo apt install make git g++ libsdl2-image-dev libsdl2-dev libpoco-dev libswscale-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libpostproc-dev libswresample-dev pkg-config libfreetype6-dev libfreeimage-dev rapidjson-dev libcurl4-gnutls-dev
  1. 再編譯NymphCast。中間設定的時候選取video,設定投放為影片模式。
git clone https://github.com/MayaPosch/NymphCast.git
cd NymphCast
sudo ./install_linux.sh
  1. 安裝後要開放防火牆
sudo ufw allow 4004
sudo ufw reload
  1. NymphCast的指令稿會幫你設定一個systmed unit,還有匯入預設設定檔。設定檔位於/usr/local/etc/nymphcast/nymphcast_config.ini,裡面設定NymphCast行為
# 是否全螢幕,0為否,1為是
fullscreen=1

# 關閉影片輸出,如果填1的話會變成音樂模式
disable_video=0

# 是否開啟螢幕保護模式
enable_screensaver=0

# 串流緩衝大小 (KB)
buffer_size=20971520

# 是否啟用LCDProc客戶端
enable_lcdproc=0
  1. NymphCast Server是看後面的設定檔名字決定服務,例如我這裡/etc/systemd/user/nymphcast.service設定的是影片模式。
[Unit]
Description=NymphCast audio/video casting server

[Service]
ExecStart=/usr/local/bin/nymphcast_server -c /usr/local/etc/nymphcast/nymphcast_config.ini -a /usr/local/share/nymphcast/apps/ -w /usr/local/share/nymphcast/wallpapers/
Restart=always
RestartSec=5

[Install]
WantedBy=default.target
  1. 啟動Systemd服務。
sudo systemctl enable --now nymphcast.service

# 或者手動以nymphcast_server指令啟動
nymphcast_server -c /usr/local/etc/nymphcast/nymphcast_config.ini -a /usr/local/share/nymphcast/apps/ -w /usr/local/share/nymphcast/wallpapers/
  1. 接著安裝NymphCast客戶端。電腦版要 自行編譯,Android手機在 Google Play下載APK。

3. 投放方式
#

讓電腦和手機處於同一個Wifi下。

  1. 在手機APP上應該會看到伺服器的名字。如果有多個會並列顯示

  2. 可以把多個伺服器分在一組,實現二台裝置同時播送。但這功能好像有bug,無法真的加入同一個群組,導致我得手動切換。

  3. 確認有連上線後,從下面的清單選取要播放的檔案(他會掃描手機全部的媒體),再按底部的播放按鈕。

  4. 伺服端就會出現影片畫面了,你可從手機端控制進度和音量。影片目前僅支援PGS內嵌字幕,如果lag嚴重請檢查網路速度,或者把串流緩衝調高。

  5. 若播放的是音樂,則只會出現頻譜。

如果想使用NymphCast的螢幕保護程式模式:將伺服端服務停止,將設定檔的enable_screensaver設定為1,再將要輪播展示的圖片放到/usr/local/share/nymphcast/wallpapers/,之後重啟服務。

圖片就會每15秒進行輪播

目前還不能投影手機螢幕,得搭配另外方案。既然樹莓派能裝任何東西,那就有很多方案可以用,比方說 Scrcpy ScreenStream等等。

相關文章

用Stash APP整理電腦的A片與色圖收藏吧,還可以串流影片、給圖片上標籤
Linux系統 Self-hosting自架 Media Server Windows Linux
標籤式圖片管理軟體,Hydrus Network的Docker遠端存取方案
Linux系統 Self-hosting自架 Hydrus Network Docker Media Server Photo Gallery
Jellyfin:用Docker自架可調畫質 + 硬體解碼的影片音樂串流伺服器
Linux系統 Self-hosting自架 Media Server

留言板

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

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

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。