Skip to content

iPhoneMirror icon

iPhoneMirror

Windows 上通过 USB 或 AirPlay 进行低延迟 iPhone 屏幕与系统声音采集。
Low-latency USB and AirPlay iPhone mirroring for Windows.

简体中文 · English

GitHub Release Windows build GPL v3 License Windows 10 and 11 x64

Important

当前是公开预览版。程序尚未进行商业 Authenticode 签名,Windows 可能显示 SmartScreen 或“未知发布者”提示。Apple Screen Capture 是私有协议,未来 iOS 更新可能需要同步适配。

社区交流

欢迎加入 QQ 群,与其他用户交流使用体验、反馈问题、讨论功能建议。

QQ群号:1050045279

项目描述

iPhoneMirror 是一个面向 Windows 10/11 x64 的本地 iPhone/iPad 投屏工具,目标是 在不依赖云端中转的情况下,将 USB 有线采集和局域网 AirPlay 接收统一到同一套 预览、音频、截图、独立窗口、OBS 和多设备会话能力中。

项目分为三个清晰边界:C++ 核心负责 Apple 私有 USB 协议、QuickTime/CoreMedia 解析、H.264 解码、D3D11 渲染和 WASAPI 音频;WPF 主程序负责设备列表、会话控制 和用户界面;独立无线宿主负责 AirPlay 协议与解码,并通过有界命名管道传递媒体帧。 驱动安装、修复和卸载由单独的 iPhoneMirror.Driver.exe 负责,主程序只读检查 有线设备状态,不在投屏进程中修改系统驱动。

Tip

从安装驱动到 USB、AirPlay、多设备、独立窗口和 OBS 的完整步骤,请阅读 完整使用教程

核心亮点

按真实 iPhone/iPad 外形适配

iPhoneMirror 不给所有设备套用同一个通用圆角。程序会根据 Apple ProductType 识别 iPhone X、刘海屏、mini、标准/Max、Dynamic Island,以及 iPad Pro、Air、mini 和全面屏基础款等机型族,为每台设备匹配独立的屏幕圆角、曲线和裁切配置。带 Home 键 或已知直角屏设备保持直角;未知新设备会根据画面比例保守回退,避免把 iPad 误裁成手机。

这套适配同时作用于原生渲染和独立窗口轮廓。拖动、等比例缩放、横竖屏切换和全屏时, 窗口仍保持对应设备的视觉形状;用户也可以通过右键菜单手动去除或恢复圆角。 圆角参数属于基于公开外观和画面比例的视觉拟合,并非 Apple 公布的工业尺寸数据。

双通道、多设备和本地原生渲染

  • USB 私有 Screen Capture 与局域网 AirPlay 使用同一套设备、预览、声音和 OBS 工作流;
  • 每台设备拥有独立会话和独立窗口,可同时运行,不必切换时停止上一台;
  • 设备卡片支持长按拖动排序,无线设备刚连接时只自动切换一次;
  • H.264/CoreMedia 与 AirPlay 媒体在本机解码,通过 D3D11/DirectComposition 原生显示;
  • 媒体不经过 iPhoneMirror 云端中转,USB 场景不依赖网络;
  • 干净的独立窗口可直接用于 OBS,截图直接读取解码帧,不包含软件 UI。

与常见投屏方案的区别

对比维度 iPhoneMirror 常见通用方案
连接方式 USB 与 AirPlay 统一 通常只提供一种连接,或分成两个程序
设备外形 按 iPhone/iPad 机型族匹配圆角与曲线 统一圆角、矩形窗口或额外黑边
多设备 独立会话、独立窗口、排序与同时投屏 多数围绕单设备切换设计
有线兼容 A 演示、B AirPlay 实验、C 爱思模式按设备选择 通常使用固定协议参数
OBS 无 UI 的原生独立窗口 经常需要裁掉控制面板或捕获桌面
驱动 独立管理器按设备检查、修复和卸载 驱动操作常混在主程序内,诊断信息较少
数据路径 本机/局域网处理,无项目云端中继 部分方案要求登录、联网或云服务

iPhoneMirror 当前不提供手机触控或远程控制,也没有内建视频编辑器。Apple 私有协议和 兼容 AirPlay 实现可能随未来 iOS 更新而需要适配。

下载

前往 Releases,优先下载 iPhoneMirror-Setup-v*-x64.exe。安装向导支持简体中文和 English,可选择安装目录, 默认安装到 C:\Program Files\iPhoneMirror,并创建开始菜单入口;桌面快捷方式为可选项。 需要免安装版本时,也可以下载 iPhoneMirror-v*-win-x64.zip,完整解压后运行 iPhoneMirror.exe。若 Windows 对 ZIP 版无线 DLL 报“损坏的映像”或错误 0xc0e90002,请改用 Setup;必须使用 ZIP 时,先在下载文件的“属性”中勾选 “解除锁定”,再重新解压,不能只处理已解压出的单个 DLL。

两种发布包都自带 .NET 运行时和独立的 iPhoneMirror.Driver.exe 驱动管理器, 无需另装 .NET Desktop Runtime 或单独下载驱动工具。可使用同一 Release 中的 SHA256SUMS.txt 验证下载文件完整性。

程序默认在启动后后台检查 GitHub Release。发现更新时会显示版本、发布日期和 Markdown 更新说明;点击“立即更新”即可下载、校验并启动覆盖安装,完成后自动重新打开程序。 “关于”页面可手动检查更新,并可分别控制启动检查、自动下载、正式版/Beta 提醒和主题。 网络不可用或检查超时不会影响正常启动。

完整操作说明见 使用教程

目标电脑仍需要以下任一 Apple 官方组件:

  • Microsoft Store 版 Apple Devices;或
  • 含 Apple Mobile Device Support 的 iTunes 桌面版。

无线发现使用 Windows 10/11 自带的 DNS-SD,不安装系统服务、不需要管理员权限, 也不会修改防火墙规则。

能做什么

功能 当前实现
有线投屏 USB 直连;按设备选择演示、AirPlay 实验或爱思兼容模式
无线投屏 本地网络 AirPlay,直接接入主预览和全部输出功能
视频 CoreMedia/AVCC H.264、Media Foundation 低延迟解码
渲染 D3D11/DirectComposition 原生预览,减少 WPF 拷贝与撕裂
音频 USB 48 kHz PCM 与 AirPlay PCM,WASAPI 播放、静音与音量控制
设备 iPhone/iPad、UDID、ProductType、系统版本、信任状态、稳定多设备切换
画面 原生/1080p/720p/540p 本地渲染上限,24/30/60/120 FPS 上限
预览 主窗口、无标题独立窗口、全屏、横竖屏、等比例缩放、按型号匹配屏幕圆角
OBS 独立窗口可直接使用 Window Capture,无重复的专用窗口入口
工具 截图、强制刷新、快捷键、实时日志、中英文界面
驱动 有线开始投屏前按当前设备严格检查;异常时打开独立驱动管理器

分辨率和 FPS 选项只限制本地渲染,不会降低 USB 上传输的原始画面质量。

有线设备默认使用 A 演示模式(推荐):发送 Valeria=true 和原生 DisplaySize,完整镜像手机 画面,但状态栏日期、时间和电量会显示 Apple 演示值。B AirPlay(实验) 使用 原生尺寸和横竖屏自适应,允许视频 App 切换到外接播放,但可能裁切或显示不全。 C 爱思模式 固定为 1565×1565,兼容性更可控,但会限制源画面清晰度。每种模式 右侧的感叹号会显示完整优缺点;选择只作用于当前有线设备。

快速开始

  1. 运行 Release 中的 Setup 安装程序并从开始菜单启动 iPhoneMirror;使用 ZIP 版时, 完整解压后运行 iPhoneMirror.exe
  2. 使用数据线连接 iPhone 或 iPad,保持解锁,并在设备上选择“信任此电脑”。
  3. 点击顶部“驱动管理器”,为目标设备执行一键安装;工具会按需补齐 Apple USB 支持和采集过滤驱动。
  4. 在左侧选择设备,点击“开始投屏”。如果当前有线设备的驱动缺失或异常,主程序 会取消本次启动并自动打开驱动管理器。

切换到另一台设备时,程序会先向上一台设备发送 QuickTime 结束控制并恢复普通 USB 配置;关闭主窗口也会执行同一清理流程。

Warning

不要使用 Zadig 把 Apple 父设备替换为 WinUSB/libusb。iPhoneMirror 只在目标 Apple usbccgp 设备实例上检测 libusb0 UpperFilter。主程序只携带启动所需的 libusb0.dll 用户态运行库,不会自行安装或启用内核过滤驱动。 驱动变更请交给独立驱动工具完成。

有线驱动管理

iPhoneMirror.exe 只读取驱动状态,所有安装、修复和卸载均由同目录中的独立 iPhoneMirror.Driver.exe 完成。主窗口顶部的“驱动管理器”按钮可以随时打开该工具; 已经打开时会激活现有窗口,不会重复启动同一个成品路径。

用户点击有线设备的“开始投屏”时,主程序会针对当前选择的设备检查:

  • Apple USB 父设备是否仍为 usbccgp
  • 当前设备是否登记 libusb0 UpperFilter;
  • libusb0.sys 文件和服务是否正常;
  • libusb0 是否能够按当前设备序列号完成精确枚举。

任一检查失败都会停止本次有线投屏启动,并自动打开驱动管理器。修复完成并按提示 重新插拔设备后,再回到主程序点击“开始投屏”。驱动管理器界面日志位于 %LOCALAPPDATA%\iPhoneMirror.Driver\Logs\driver-ui.log,管理员操作日志位于 %ProgramData%\iPhoneMirror.Driver

如果电脑完全没有 Apple USB 支持,驱动管理器会优先通过 winget 从 Microsoft Store 安装固定产品 ID 的 Apple Devices;Store 不可用时,再从 Apple 官方 HTTPS 下载并验证 Apple 签名的桌面版 iTunes 安装包。项目不会重新分发 Apple 专有二进制文件。完整驱动 依赖清单见 docs/DRIVER_DEPENDENCIES.md

诊断日志

主程序会把托管界面与业务错误写入 %LOCALAPPDATA%\iPhoneMirror\Logs\application.log,把 USB、解码和渲染核心日志写入 同目录的 capture.log。启动失败会额外写入 startup.log;一键更新启动安装程序时会 生成 installer-update-时间.log。如果 LocalAppData 暂时不可写,关键托管错误会回退到 %TEMP%\iPhoneMirror-fallback.log

“关于 → 诊断”可以直接打开日志目录或立即清理日志和已下载的更新缓存。程序也会自动 轮转日志,清理超过 14 天的旧文件,并将主日志目录总量限制在 64 MB。清理时正在使用的 文件会安全跳过,不会中断投屏。

Note

以上自动检查只针对 USB 有线设备。无线 AirPlay 来源不会读取或要求 libusb0, 也不会因为驱动状态自动打开驱动管理器。

无线 AirPlay

AirPlay 接收服务随主程序自动启动,不需要点击“开始投屏”才能被 iPhone 发现。 未连接时,左侧不会显示一个空的 AirPlay 设备;连接成功后才创建无线设备卡片, 并只在刚连接时自动切换一次。

  1. 将 Windows 电脑与 iPhone/iPad 连接到同一可信局域网。
  2. 在右侧“无线 AirPlay”区域设置接收端名称和连接分辨率。
  3. 选择最高 5120×2880 60 fps、1080p 60 fps(默认)、720p 30 fps 或 540p 30 fps。
  4. 点击“应用”。名称和分辨率修改会在同一个统一弹窗中汇总。
  5. 在 iOS 控制中心打开“屏幕镜像”,选择设置好的接收端名称。
  6. 连接后可使用右上角“停止投屏”结束当前无线会话;接收服务继续常驻。

无线选项卡不显示有线的本地分辨率/FPS 上限。无线清晰度需要在连接前通过 AirPlay 广播规格声明;修改名称或规格会重启接收端,并断开当前所有无线会话,随后需要在手机上 重新选择接收端。无线来源仍可使用主预览、音量、截图、独立窗口、全屏、多窗口和 OBS。

当前实现没有固定的无线设备数量上限;实际同时连接数量取决于 CPU/GPU、内存和局域网带宽。

视频应用投屏

“视频应用投屏”与“无线 AirPlay 屏幕镜像”共用同一个网络接收端,避免 iOS 因设备身份、 配对信息或服务端口不一致而隐藏设备。程序会按请求类型分流:屏幕镜像帧进入原预览,视频 App 发送的播放地址进入主窗口内的专用播放界面,两条播放逻辑互不混用。

  1. 保持电脑和 iPhone/iPad 位于同一可信局域网,并启动 iPhoneMirror。
  2. 在支持 AirPlay 的视频 App 内点击投屏按钮。
  3. 在视频 App 中选择与“屏幕镜像”相同的 AirPlay 接收端;程序会按视频播放请求切换到主窗口内的专用播放界面,不会把它当作屏幕镜像。
  4. 关闭播放界面或在手机端停止投放即可结束,原有屏幕镜像会话不受影响。

部分 App 使用 DRM、登录态或私有播放协议,可能不会向第三方接收端提供可播放地址。

第三方依赖与许可证

依赖 用途 许可证/来源
.NET 10、WPF、Windows SDK 主界面、Windows API 和发布运行时 Microsoft 官方运行时
libusb 1.0.29 可选的 USB 传输兼容层 LGPL-2.1-or-later,见 third_party/libusb/
libusb-win32 1.2.6.0 独立驱动管理器的 libusb0 过滤驱动 LGPL-3.0 及上游许可证,见 src/DriverInstaller/Assets/
AirPlayServer 1.1.0 无线 AirPlay 接收、FairPlay/视频/音频解码 GPL-3.0、LGPL-2.1-or-later 及上游许可证,见 third_party/airplay-server/
FFmpeg 4.4.2 runtime AirPlay 视频/音频解码依赖 LGPL-2.1-or-later,随 AirPlayServer 发行物提供
quicktime_video_hack fixtures QuickTime 协议回归测试向量 MIT,仅用于 src/Core/tests/fixtures/

Apple Devices、Apple Mobile Device Support、iTunes 和 Windows 系统组件均不是本项目 重新分发的第三方软件。完整版权、来源、版本、哈希和许可证说明见 THIRD_PARTY_NOTICES.md 与 AirPlayServer 的 SOURCE.md

OBS

  1. 在 iPhoneMirror 中打开“独立窗口”。
  2. OBS → 来源 → 窗口采集。
  3. 选择标题包含 iPhoneMirror 和目标设备名称的独立窗口。
  4. Windows 11 推荐使用 Windows Graphics Capture。

OBS 30.1+ 还可以通过“应用程序音频捕获”选择 iPhoneMirror.exe。更多说明见 OBS 输出文档

快捷键

快捷键 操作
F11 / Esc 进入/退出全屏
F5 刷新设备
Ctrl+R 强制重绘
Ctrl+Shift+P 打开独立预览
Ctrl+L 显示/隐藏实时日志
Ctrl+M 静音/恢复
Ctrl+S 截图

已验证设备

ProductType / iOS 原生画面 真机结果
iPhone18,3 / iOS 26.5.2 1206×2622 约 58.6 FPS,常规解码 3–5 ms,48 kHz 双声道 PCM
iPhone13,1 / iOS 18.7.8 1082×2340 约 58.9 FPS,常规解码 3–6 ms,48 kHz 双声道 PCM

这些结果仅表示上述实机组合已验证,不构成对所有 iPhone/iOS 版本的兼容性保证。

从源码构建

要求:

  • Windows 10/11 x64
  • Visual Studio 2026 Build Tools:MSVC、Windows SDK、CMake
  • .NET 10 SDK 与 Windows Desktop 工作负载
git clone https://github.com/RayrenSX/iPhoneMirror.git
cd iPhoneMirror
./build.ps1 -Configuration Release

脚本会构建 C++20 核心、运行协议测试并发布自包含 WPF 应用:

outputs/iPhoneMirror/iPhoneMirror.exe
outputs/iPhoneMirror/iPhoneMirror.Driver.exe
outputs/iPhoneMirror/iPhoneMirror.Core.dll
outputs/iPhoneMirror/iPhoneMirror.VirtualCamera.dll
outputs/iPhoneMirror/iPhoneMirror.VirtualCamera.Admin.exe
outputs/iPhoneMirror/tools/ffmpeg/ffmpeg.exe
outputs/iPhoneMirror/Wireless/iPhoneMirror.WirelessHost.exe

生成完整 Release 资产(Setup、ZIP、SHA256 清单和 SBOM):

./scripts/package_release.ps1 -Version 1.5.5 -GenerateSbom

Inno Setup 6.7.3 及其简体中文翻译会按固定 SHA256 下载到 work/tools,无需全局安装。

只构建并运行核心测试:

./build.ps1 -Configuration Debug -NoPublish

架构

iPhone/iPad
  ├─ USB / QuickTime ─► H.264 / PCM decode ─┐
  └─ AirPlay ─► WirelessHost ─► I420 / PCM ─┤
                                             └─► native session
                                                  ├─► D3D11 main/detached/fullscreen preview
                                                  ├─► screenshot
                                                  ├─► WASAPI audio
                                                  └─► OBS Window Capture

当前限制

  • 内建录制与 RTMP、SRT、WebRTC/WHIP 推流在 PCM 音频可用时会同时输出画面和声音;音频暂不可用时仍可立即输出纯视频。MP4、RTMP 和 SRT 使用 AAC,WHIP 使用 Opus。
  • 主程序尚未商业签名。
  • 外部采集驱动的干净 Win10/Win11 安装矩阵仍需更广泛验证。
  • QuickTime Screen Capture 并非 Apple 公开、稳定的第三方 API。
  • AirPlay 兼容实现并非 Apple 官方接口,未来 iOS 更新可能需要适配。
  • 本项目不提供对 iPhone 的触控或远程控制。

参与项目

提交问题前请阅读 支持说明。开发贡献请阅读 CONTRIBUTING.md,安全问题请使用仓库的 私密漏洞报告,不要公开粘贴 UDID、配对记录或完整 USB 抓包。

许可与致谢

iPhoneMirror 自有代码采用 GNU General Public License v3.0 only。分发修改版 或衍生作品时必须遵守 GPLv3 的源码提供、版权声明和同许可证分发要求。随源码和发布包 分发的第三方组件仍受各自许可证约束,详见 THIRD_PARTY_NOTICES.md

无线接收器作为独立 GPLv3 进程分发,通过命名管道向 GPLv3 主程序传递解码后的媒体帧。 发布包的 Wireless/licenses 包含固定版本、源码链接、二进制哈希与完整许可文本。

协议研究参考:

Apple、iPhone、iOS、QuickTime 是 Apple Inc. 的商标。本项目与 Apple Inc. 无隶属、赞助 或认可关系。

About

Local Windows iPhone/iPad mirroring over USB and AirPlay with D3D11 preview, multi-device sessions, OBS output, and a standalone driver manager.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages