若要將iPhone/iPad的螢幕無線投影到其他螢幕,很多人會使用內建的「AirPlay」功能來投放吧。AirPlay是Apple公司自行研發的專有無線協定,Apple自家裝置都有內建,例如iPhone可以把影片投放到Apple TV觀看。
不過,有開發者將AirPlay的協定重新實作,製作出了跨平台的「UxPlay」軟體!完全開源免費,UxPlay支援Linux、Windows、macOS、FreeBSD、Raspberry Pi系統,可以將任意電腦變成AirPlay接收端。
跟類似軟體 Shairport Sync比起來,UxPlay多了投影螢幕的功能。
開啟Wifi,您就可以將iPhone的畫面透過UxPlay投影到電腦上了。
UxPlay也可以用來播放純音訊串流,用電腦無線播放手機的音樂,例如Apple Music。
另外,搭配 OBS Studio的視窗錄製功能,即可在Linux電腦實現iOS螢幕錄影。
1. 安裝UxPlay#
詳細文件參考 Github說明
許多Linux發行版已提供UxPlay套件,連樹莓派也有。但是macOS和Windows版需要自行編譯。
Linux#
Ubuntu 22.04從官方套件庫安裝:
sudo apt install uxplay
Arch Linux可以從AUR安裝UxPlay:
yay -S uxplay
UxPlay安裝後,需要開放以下防火牆通訊埠。用UFW指令的話就是:
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
Linux還需要啟用Avahi服務
sudo systemctl enable --now avahi-daemon.service
Windows#
此處以Windows 11為例。
至 Apple Developers官網,登入Apple ID,下載並安裝
Bonjour SDK for Windows v3.0
下載 MSYS2
開啟MSYS2 MINGW64終端機,安裝以下依賴套件
pacman -Syu
pacman -S git man mingw-w64-x86_64-libplist mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-plugins-base mingw-w64-x86_64-gst-libav mingw-w64-x86_64-gst-plugins-good mingw-w64-x86_64-gst-plugins-bad
- 複製Git儲存庫,編譯安裝。
uxplay.exe
應會安裝到Windows的C:\msys64\mingw64\bin\uxplay
資料夾,之後可以用uxplay
指令啟動。
git clone https://github.com/FDH2/UxPlay
cd UxPlay
mkdir build
cd build
cmake ..
ninja
cmake --install . --prefix /mingw64
允許UxPlay通過防火牆:在搜尋欄鍵入Windows防火牆設定,勾選
uxplay.exe
日後要啟動uxplay,請用MSYS的終端機啟動。
macOS#
雖然macOS Monterey以後已經有類似AirPlay伺服器的功能,但是UxPlay的優勢在於讓舊版本macOS也能享有此功能。
此處以macOS Ventura為例。
- 開啟終端機,安裝Xcode command-line tools
sudo xcode-select --install
安裝 Homebrew
安裝以下依賴套件
brew install cmake git libplist openssl@3
UxPlay作者建議手動安裝GStreamer發表的套件,不要用Homebrew的。至 官網下載
1.22.10 runtime installer
和1.22.10 development installer
二個pkg檔。接著在Finder按Shift安裝套件。複製UxPlay儲存庫,編譯安裝
git clone https://github.com/FDH2/UxPlay
cd UxPlay
cmake .
make
sudo make install
值得一提的是Mac電腦可以充當AirPlay的伺服端與客戶端,使用伺服端的模式下,Mac等同多出第二個螢幕。
2. 投放螢幕到UxPlay#
確保iPhone和電腦位於同一個Wifi網路下。如果你需要低延遲,那就將手機開熱點,將網路分享給電腦。
於電腦執行以下指令,指定通訊埠,並使用GStreamer的H.264解碼器,FPS上限60
uxplay -p -avdec -fps 60
開啟iPhone的控制中心,點選投放,會在列表看到uxplay+電腦名稱的裝置
這樣電腦就會跳出iPhone畫面的視窗了,iPhone螢幕旋轉畫面會跟著轉,按F11進入全螢幕模式。
只要網路穩定,大螢幕觀看影片、玩遊戲都不是問題,音訊會一併傳過來。還可以直接用電腦錄iPhone螢幕,減低手機負擔。
不過含有DRM內容的影片(如Netflix)可能就無法透過AirPlay播放。
上面提到Uxplay可以不播放畫面,只串流純音樂。方法是先在iPhone播放音樂,再選取AirPlay的播放對象。
不過這裡的AirPlay協定最高支援到ALAC 44Hz/16bit,無法串流真正的無損音質。