iOS设备投屏Archlinux
我的iphone手机屏太小,我想把手机投到archlinux电脑上看。与是我就想找一个免费的软件。
UxPlay
https://github.com/FDH2/UxPlay
- GPLv3,开源。
- 原来只支持 AirPlay Mirror 协议,现在新增 支持来自 AirPlay 的纯音频 (Apple Lossless ALAC) 流媒体 当前的 iOS/iPadOS 客户端。现在支持 Airplay HLS 视频流(目前只有 YouTube 视频)。
- macOS 计算机(2011 或更高版本,Intel 和“Apple Silicon”M1/M2 系统)可以充当 AirPlay 客户端,也可以充当正在运行的服务器 UxPlay 的 UxPlay 中。使用 AirPlay,UxPlay 可以模拟 macOS 的第二个显示器 客户。
- 支持较旧的 iOS 客户端(如 32 位 iPad 第 2 代、iPod Touch 5 代和 iPhone 4S,升级到 iOS 9.3.5 或更高版本后 64 位设备)以及 Windows AirPlay 客户端仿真器 AirMyPC。
- 使用 GStreamer 插件进行音频和视频渲染(带有选项 要选择不同的硬件适当输出 “videosinks” 和 “audiosinks”,以及完全用户可配置的视频流 管道)。
- 支持防火墙后面的服务器。
Raspberry Pi 支持带和不带硬件视频 由 Broadcom GPU 解码。在 Raspberry Pi Zero 2 W、3 上测试 模型 B+、4 个 模型 B 和 5。 - 支持在 Microsoft Windows 上运行(使用 MinGW-64 构建 编译器)。
编译安装
我本打算编译安装的,详见:
https://github.com/FDH2/UxPlay
后来发现AUR中有它的包,就直接AUR安装了。
AUR安装
yay -S uxplay
安装以后,运行输入命令:
uxplay
报错如下:
uxplay \[17:34:43]
UxPlay 1.72: An Open-Source AirPlay mirroring and audio-streaming server.
using system MAC address 50\:eb\:f6:8b:55:6a
Initialized server socket(s)
\*\*\* ERROR: No DNS-SD Server found (DNSServiceRegister call returned kDNSServiceErr\_Unknown)
后来AI告诉了我的解决办法。
你正在使用 UxPlay
这个开源 AirPlay 接收器,它在 Arch Linux 上可以实现 iPhone 屏幕镜像(视频+音频),是一个非常不错的选择 👍。
你遇到的错误是:
*** ERROR: No DNS-SD Server found (DNSServiceRegister call returned kDNSServiceErr_Unknown)
这意味着 系统缺少 Bonjour / DNS-SD 服务广播功能,这是 AirPlay 用来发现设备(即投屏目标)的关键机制。
✅ 解决方法:安装并启用 Avahi 服务
UxPlay
依赖 Avahi
来实现 Bonjour(即 mDNS/DNS-SD)广播。
🔧 步骤如下:
1. 安装 avahi 和相关库
sudo pacman -S avahi nss-mdns
2. 启用并启动 avahi-daemon 服务
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
3. 再次运行 uxplay
uxplay
此时应该不会再出现 No DNS-SD Server found
错误。
总结
运行起来很不错。
参考
https://copyright1999.github.io/2021/10/02/Linux%E4%B8%8BiOS%E8%AE%BE%E5%A4%87%E6%8A%95%E5%B1%8F/