first commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# iOS/iPadOS Screen Mirroring to Windows (AirPlay via WSL)
|
||||
|
||||
This project sets up UxPlay (open-source AirPlay receiver) inside WSL2 and launches it as a window using WSLg.
|
||||
Your iPhone/iPad can mirror to that window.
|
||||
|
||||
## Requirements
|
||||
- Windows 11 with WSL.
|
||||
- iPhone/iPad and PC on the same Wi-Fi.
|
||||
|
||||
## One-time setup
|
||||
1. Open PowerShell in this folder and run:
|
||||
scripts\setup-wsl-airplay.ps1
|
||||
2. If the script asks you to restart WSL, run:
|
||||
wsl --shutdown
|
||||
Then rerun the setup script.
|
||||
|
||||
## Start mirroring
|
||||
scripts\start-airplay.ps1
|
||||
|
||||
On the iPhone/iPad: Control Center -> Screen Mirroring -> select the server name.
|
||||
|
||||
## Tips
|
||||
- If the device does not see the receiver, verify WSL mirrored networking was enabled and allow UDP 5353 in Windows Firewall.
|
||||
|
||||
- If it appears but fails to connect, open UDP/TCP 35000-35002 in Windows Firewall (this is the default port range).
|
||||
|
||||
- Default is low latency with hardware decoding.
|
||||
|
||||
- If audio crackles or drifts, try:
|
||||
scripts\start-airplay.ps1 -UseVsync
|
||||
scripts\start-airplay.ps1 -UseVsync -SoftwareDecode
|
||||
|
||||
## Opening the ports locally
|
||||
|
||||
Run in an elevated PowerShell:
|
||||
|
||||
New-NetFirewallRule -DisplayName "WSL AirPlay TCP" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 35000-35002
|
||||
New-NetFirewallRule -DisplayName "WSL AirPlay UDP" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 35000-35002
|
||||
New-NetFirewallRule -DisplayName "WSL AirPlay mDNS" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 5353
|
||||
|
||||
## What gets installed in WSL
|
||||
- UxPlay
|
||||
- Avahi (mDNS/DNS-SD)
|
||||
- GStreamer plugins for audio/video
|
||||
Reference in New Issue
Block a user