怎么用 UxPlay 把 iPhone 或 iPad 投屏到 Ubuntu

想把 iPhone / iPad 的屏幕搬到 Ubuntu 桌面上做演示、串流、视频会议,或者只
是想在没有 AirDrop 的情况下从手机拽个文件过来,2026 年的答案还是一个叫
UxPlay 的小开源工具。UxPlay 1.74(2026 年 6 月实验版)带来了一些沉
默的进步:内置 mDNSResponder(不再依赖 Avahi)、HLS YouTube 串流
MP4 录制-vrtp 把解密后的 H.264 直接送进 OBS Studio,还有在
屏蔽 mDNS 的网络里用 BLE beacon 做服务发现。

这篇文章会讲清楚 UxPlay 实际能干什么、不能干什么、Ubuntu(以及 Fedora
/ Arch)上的安装路径、真正需要的 GStreamer 插件,以及 DRM 内容、
AirPlay 2、Apple 何时关掉 legacy 协议这几个绕不开的坑。

UxPlay 是什么、不是什么

UxPlay 是 Linux、macOS、*BSD、Windows 上的 AirPlay 服务器。它和
Apple TV、HomePod 讲同一种 AirPlay 协议,但不再把镜像流送到电视,而
是把 H.264 视频和 AAC 音频送进一条 GStreamer 管线,在桌面上弹出一
个可移动、可缩放、可全屏的浮窗。iPhone / iPad 上不需要装任何配套 App:
下拉控制中心 → 投屏 → 选 “UxPlay”,屏幕就出来了。

它擅长的事:

  • 镜像任何 iPhone 4 及以上、iPad、以及 macOS 客户端(2011+ Intel 与
    Apple Silicon)。
  • 通过 GStreamer 走 硬件加速 H.264 解码:Intel/AMD GPU 走 VA-API,
    NVIDIA 走 nvh264dec(GStreamer 1.18+),树莓派 4B 走 V4L2。软件
    fallback 是自动的,现代 CPU 上完全能跑。
  • AirPlay 音频模式,吃 Apple Lossless(ALAC)无损音频流——TIDAL、
    Apple Music、播客都可以这样投过来。
  • HLS 视频串流(v1.74,先支持 YouTube app):手机上选好视频点投屏,
    只有视频流到 Ubuntu。
  • -mp4 filename 把镜像会话录成 MP4,用来录 demo、录”非截屏录
    屏”很方便。

做的事,OMG Ubuntu 那篇原文讲得很清楚:

  • 不能反向控制。 你不能用鼠标键盘操作 iPhone——这是被动镜像。
    如果你想从笔记本打字、拖文件、点按钮,要么用数据线 + scrcpy(只
    支持 Android),要么放弃。
  • DRM 内容是黑屏。 Apple TV+、Amazon Prime、Netflix、Disney+ 在
    UxPlay 窗口里只显示黑屏 + HDCP 警告。这是协议层面的限制,不是
    UxPlay 的 bug——这些 App 的视频载荷在 AirPlay legacy 模式里被加密
    拒绝透传。
  • 不支持 AirPlay 2 视频串流。 不能在 YouTube app 里点投屏按钮绕过
    手机端——AirPlay 2 的 receiver 授权 Apple 没开放给第三方。

如果这三条任何一条是你的硬需求,UxPlay 用错了。如果只是想”一键把
iPhone 屏幕搬到 Ubuntu 桌面上”,它就是对的工具。

2026 年的安装(Ubuntu / Fedora / Arch)

Ubuntu 路径只有两条 apt。UxPlay 早就在 universe 里,Ubuntu 24.04
LTS 和 26.04 上的版本都到 1.74(或者非常接近)。第二条命令是 UxPlay
真正需要的 GStreamer 插件——没装它的话窗口是黑的,终端会礼貌地
报错。

Bash
sudo apt install uxplay
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav 
                 gstreamer1.0-plugins-good

这三套插件对应上游 README 列出的硬需求:plugins-base(默认就有)、
libav(AAC 音频解码)、plugins-good(V4L2 硬件 H.264)、plugins-bad
(H.264 软件解码 + 新的 va 插件)。其他发行版:

  • Fedora 38+: sudo dnf install uxplay gstreamer1-plugins-bad-free gstreamer1-plugins-bad-nonfree gstreamer1-libav gstreamer1-plugins-good
    -nonfreelibav 通常在 RPM Fusion,先启用它。)
  • Arch / Manjaro: yay -S uxplay gst-plugins-bad gst-plugins-libav gst-plugins-good(UxPlay 本身在 AUR。)
  • openSUSE: sudo zypper install uxplay gstreamer-plugins-bad gstreamer-plugins-libav gstreamer-plugins-good(libav 编码可能需要
    Packman 源。)

如果想要绝对的最新实验版(1.74 内部 mDNS、HLS YouTube、MP4 录制),
UxPlay releases 拉源码
tarball,按上游 build 步骤来:

Bash
sudo apt install build-essential pkg-config cmake libssl-dev libplist-dev 
                 libavahi-compat-libdnssd-dev 
                 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
git clone https://github.com/FDH2/UxPlay
cd UxPlay
cmake . && make && sudo make install

只有想保留旧的外部 mDNS(-DUSE_DNS_SD=1)时才需要
libavahi-compat-libdnssd-dev。1.74 的默认是新内部 mDNSResponder
意味着 UxPlay 可以在以前 Avahi 被屏蔽的网络、或精简安装没装 Avahi 的
机器上直接跑。

跑起来 + 连上 iPhone

装好后,三条命令、三次点击就行:

Bash
uxplay

终端里会显示一个 banner,告诉你设备名和一次性 PIN。iPhone / iPad 上:

  1. 打开控制中心(Face ID 设备从右上角下滑,Touch ID 设备从底部上滑)。
  2. Screen Mirroring 图标(两个重叠方块)。
  3. 列表里选 “UxPlay”(或者你用 -n 改的名)。
  4. 如果要 PIN,按提示在 iPhone 上输入。

Ubuntu 桌面上会弹出一个浮窗,里面是 iPhone 的屏幕。可以拖动、缩放,
F11(或传 -fs)全屏——注意 Ubuntu 22.04 LTS 仓库里的 UxPlay 不
支持 -fs-r L / -r R 在连接前能翻转方向。

断开:手机上停掉镜像,关窗口,终端按 Ctrl+C。纯音频:控制中心长按
音频卡片,点 AirPlay 图标,选 UxPlay,不会弹视频窗口。

2026 年值得知道的新参数

如果你本身就泡在终端里,UxPlay 1.73.x / 1.74 加的几个 flag 把它从
“屏幕镜像工具”变成了能写脚本的组件:

  • -mp4 recording.mp4 —— 把镜像会话录成 MP4(Mirror 和 Audio 模
    式,HLS 不录)。文件名会自动加 .n.format.mp4 后缀,多次录制不会
    互盖。
  • -vrtp <gst-pipeline> —— 把解密后的 H.264/H.265 视频作为 RTP
    转发到外部渲染器。杀手锏场景:把 UxPlay 作为 RTP 源送进 OBS Studio,
    在直播里叠加 iPhone 画面,不用双窗口 hack。
  • -artp <pipeline> —— 把解码后的 L16 音频作为 RTP 转发,方便
    接到自己的音频链里。
  • -scrsv <0|1|2> —— 通过 D-Bus 在镜像会话期间抑制屏保(1 =
    有视频活动时抑制;2 = 一直抑制)。
  • -ca —— Audio 模式下渲染 Apple Music 封面图。
  • -pw <password> —— 用密码替代 PIN 连接。
  • -bt709 —— 修树莓派 4B 上 Broadcom H.264 解码器的色域问题。
  • -async —— 切换到异步音频输出,纯音频流更干净(延迟 ~2 秒)。

包里还附了一个用户级 systemd unit:~/.config/systemd/user/uxplay.service
systemctl --user enable --now uxplay 一次,开机自启、随时待命。
不要把 systemd unit 跑成 root——上游 README 强调过:UxPlay 设计
是给登录后的桌面会话用的,不是系统服务。

几个绕不开的坑

文档里一笔带过、第一天就会踩到的几个点:

  • 防火墙端口。 UxPlay 需要 UDP 5353(mDNS)+ 三个 UDP + 三个 TCP
    端口在 iPhone 和 Ubuntu 之间放通。Ubuntu 默认 ufw 不过滤 loopback
    / LAN,桌面上一般没事;服务器、容器里要 -p <n> 或加防火墙规则。
  • 同一 Wi-Fi,不是互联网。 两台设备必须在同一 LAN。AirPlay mirror
    没有中继,不会跨公网。iPhone 在蜂窝、Ubuntu 在 Wi-Fi,控制中心列表
    里不会出现 UxPlay。
  • DRM 黑屏。 Apple TV+、Prime、Netflix、Disney+——全是黑屏。
    HDCP 问题不是 UxPlay 的 bug。想在桌面看流媒体,请用各家官方 Linux
    客户端。
  • Legacy 协议下架风险。 UxPlay 用的是 Apple 的 legacy AirPlay,
    不是 AirPlay 2。iOS 18.x / iPadOS 18.x(2025 年中)都还在所有设备上
    保留 legacy receiver 路径,社区在盯 Apple 何时正式移除;截至
    2026 年 8 月没有公开时间表。
  • 不是 scrcpy。 想从笔记本操作手机,2026 年的答案是”iOS 没有好
    答案,UxPlay 不行,scrcpy 不讲 AirPlay”。Android 那边的 scrcpy 4.0
    (2026 年 5 月)依然是金标准,Linux 上和 Windows / macOS 一样跑。

什么时候选 UxPlay、什么时候选别的

场景 UxPlay scrcpy(Android) Vysor / 付费工具
把 iPhone/iPad 镜像到 Ubuntu ❌(仅 Android) ✅(付费,要装 App Store 应用)
把 Android 镜像到 Ubuntu ❌(用 scrcpy)
从笔记本反向控制手机 ✅(iOS 受限)
看 DRM 流媒体视频 ❌(黑屏) ⚠️(看 App)
AirPlay 无损音频
把镜像会话录成 MP4 ✅(-mp4 ✅(--record ⚠️
免费 + 开源 ✅(GPLv3) ✅(Apache 2.0)

UxPlay 的甜区:免费、五分钟、把 iPhone/iPad 屏幕搬到 Ubuntu 上、
iPhone 端零额外动作。
表格里其他场景,都有更合适的工具。

参考来源

本文主要参考:

最后修改: 2026年8月12日

作者

评论

发表评论

您的邮箱地址不会被公开。