快轉到主要內容

UxPlay用法 ~ 投影iPhone螢幕到Linux電腦,跨平台免費的AirPlay解決方案

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

若要將iPhone/iPad的螢幕無線投影(鏡像)到其他螢幕,很多人會使用內建的「AirPlay」功能來投放吧。AirPlay是Apple公司研發的專有無線協定,Apple自家裝置都有內建,讓你可以把iPhone影片投放到Apple TV觀看。

不過這樣要依賴特定程式才能看呢,於是有開發者將AirPlay的協定重新實作,製作出了跨平台的「UxPlay」軟體!完全開源免費,UxPlay支援Linux、Windows、macOS、FreeBSD、Raspberry Pi系統,可以將任意電腦變成AirPlay接收端(receiver)。有樹莓派的用戶更能土砲一個AirPlay音箱。

跟類似軟體 Shairport Sync比起來,UxPlay多了投影螢幕的功能。

開啟Wifi,您就能將iPhone的畫面透過UxPlay投影到電腦上了。

UxPlay也能用來播放純音訊串流,用電腦無線播放手機的音樂,例如Apple Music。

另外,搭配OBS Studio的畫面擷取功能,即可像Scrcpy擷取Android螢幕那樣,在Linux電腦實現iOS螢幕錄影。

1. 安裝UxPlay
#

詳細文件參考 Github說明

許多Linux發行版已提供UxPlay套件,連樹莓派也有。但是macOS和Windows版需要自行編譯。

Linux
#

  1. Ubuntu 24.04從官方套件庫安裝:
sudo apt install uxplay

Arch Linux可以從AUR安裝UxPlay:

yay -S uxplay
  1. UxPlay安裝後,需要開放以下防火牆通訊埠。用UFW指令的話就是:
sudo ufw allow 5353
sudo ufw allow 7100
sudo ufw allow 7000
sudo ufw allow 7001
sudo ufw allow 6000
sudo ufw allow 6001
sudo ufw allow 7011
sudo ufw reload
  1. Linux還需要啟用Avahi服務
sudo systemctl enable --now avahi-daemon.service

Windows
#

此處以Windows 11為例。

  1. Apple Developers官網,登入Apple ID,下載並安裝Bonjour SDK for Windows v3.0

  2. 下載 MSYS2,安裝後應該會自動開啟終端機,把它關掉。

  3. 在Windows程式列表,開啟「MSYS2 MINGW64」終端機

  4. 安裝以下依賴套件

pacman -Syu

pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc

pacman -S mingw-w64-x86_64-libplist mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-plugins-base
  1. 複製Git儲存庫,編譯安裝。uxplay.exe應會安裝到Windows的C:\msys64\mingw64\bin\資料夾。
git clone https://github.com/FDH2/UxPlay

cd UxPlay

mkdir build

cd build

cmake ..

ninja

cmake --install . --prefix /mingw64
  1. 允許UxPlay通過防火牆:在Windows搜尋欄鍵入「Windows防火牆設定」,點選「允許應用程式通過防火牆」,新增應用程式,路徑填C:\msys64\mingw64\bin\uxplay.exe

  2. 日後要啟動uxplay,請用「MSYS2 MINGW64」終端機啟動:

cd "C:\msys64\mingw64\bin"

./uxplay.exe <參數>

或者找到C:\msys64\mingw64\bin\uxplay.exe檔案,點二下開啟也行。

macOS
#

雖然macOS Monterey以後已經有類似AirPlay伺服器的功能,但是UxPlay的優勢在於讓舊版本macOS也能享有此功能。

此處以macOS Ventura為例。

  1. 開啟終端機,安裝Xcode command-line tools
sudo xcode-select --install
  1. 安裝 Homebrew

  2. 安裝以下依賴套件

brew install cmake git libplist openssl@3
  1. UxPlay作者建議手動安裝GStreamer發表的套件,不要用Homebrew的。至 官網下載1.22.10 runtime installer1.22.10 development installer二個pkg檔。接著在Finder按Shift安裝套件。

  2. 複製UxPlay儲存庫,編譯安裝

git clone https://github.com/FDH2/UxPlay
cd UxPlay
cmake .
make
sudo make install

值得一提的是Mac電腦可以充當AirPlay的伺服端與客戶端,使用伺服端的模式下,Mac等同多出第二個螢幕。

2. 投放螢幕到UxPlay
#

  1. 確保iPhone和電腦位於同一個Wifi網路下,並且訊號要好。如果你需要低延遲,那就將iPhone插上電腦,用USB分享給電腦上網。

  2. 於電腦執行以下指令,指定通訊埠,FPS上限60,螢幕解析度1920x1080,更新率60

uxplay -p -fps 60 -s 1920x1080@60

如果你是Windows需要全螢幕,請加入以下參數就能按Alt與Enter切換:

uxplay -p -fps 60 -s 1920x1080@60 -vs "d3d11videosink fullscreen-toggle-mode=alt-enter"
  1. 開啟iPhone的控制中心,點選投放,會在列表看到uxplay+電腦名稱的裝置

  2. 這樣電腦就會跳出iPhone畫面的視窗了,iPhone螢幕旋轉畫面會跟著轉,按F11進入全螢幕模式。

只要網路穩定,大螢幕觀看影片、玩遊戲都不是問題,音訊會一併傳過來。

不過含有DRM內容的影片(如Netflix)可能就無法透過AirPlay播放。

3. AirPlay串流音樂
#

上面提到Uxplay可以不播放畫面,只串流純音樂。

  1. 啟動UxPlay:
uxplay
  1. 在iPhone播放音樂,再選取AirPlay的播放對象。

  2. 這裡的AirPlay協定最高支援到ALAC 44Hz/16bit,無法串流真正的無損音質。

4. 將UxPlay設定為常駐系統服務
#

  1. Linux可透過Systemd Unit新增
sudo vim /etc/systemd/system/uxplay.service
  1. 填入以下內容
[Unit]
Description=UxPlay service
After=syslog.target network.target

[Service]
ExecStart=/usr/bin/uxplay -p -fps 60 -s 1920x1080@60

[Install]
WantedBy=default.target
  1. 設定開機自動啟動
sudo systemctl daemon-reload

sudo systemctl enable --now uxplay

5. 使用OBS Studio錄製iPhone畫面
#

有時候跑一些大型遊戲,又在iPhone上進行錄影的話會給手機帶來很大負擔,這個時候可以透過OBS Studio擷取UxPlay的視窗,降低手機負擔。

  1. 安裝 OBS Studio

  2. 開啟OBS Studio,點選「新增畫面擷取」,選取UxPlay的視窗即可。

6. 用藍芽反向控制iPhone
#

專有軟體「ApowerMirror」有一個功能是反控投放螢幕的iPhone,我想說iOS什麼時候開放這麼高的權限了?原來它是用軟體模擬出一個藍芽滑鼠再與iOS配對呀!

理論上,Linux用 taoso/btk UniControlHub做一個假的藍芽滑鼠出來,再與iPhone配對,即可遠端控制iPhone輸入。

如果不行,大不了再準備一支實體藍芽滑鼠就好。

相關文章

Czkawka軟體用法,Linux以圖搜圖、搜尋重複檔案的小工具
分類   Linux系統 Linux好用軟體
標籤   Disk Cleanup Linux Windows MacOS
Spirit桌寵軟體,讓動漫人物坐在Linux電腦視窗上
分類   Linux系統 Linux好用軟體
標籤   Desktop Mascot Linux MacOS Windows
Weylus使用教學,讓平板當電腦第二螢幕,支援無線手寫筆輸入
分類   Linux系統 Linux好用軟體
標籤   Remote Desktop Linux Windows MacOS

留言板

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

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

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