airplay2-win 教程:如何 3 步把 Windows 变成 AirPlay 2 接收器

📅 2026/8/24 18:26:28
airplay2-win 教程:如何 3 步把 Windows 变成 AirPlay 2 接收器
airplay2-win 教程如何 3 步把 Windows 变成 AirPlay 2 接收器【免费下载链接】airplay2-winAirplay2 for windows项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win从一个下午开始iPhone 投屏到 Windows 有多麻烦你在 Windows 电脑上做 PPT想用手机拍的照片做素材或者想把 iPad 上的网课视频直接投到电脑上放大看。iPhone 控制中心里那个屏幕镜像图标默认只能投到 Apple TV 或其他苹果设备——Windows 电脑根本不出现。市面上的商业投屏软件不少但要么收费要么只能投个大概音频延迟高得让人着急。airplay2-win 是一个完全开源的 Windows 端 AirPlay 2 接收器它把苹果那套 AirPlay 2 协议包括设备发现、加密握手、音频/视频流接收完整搬到了 Windows 上。你只需要在 Windows 上跑起它iPhone、iPad、Mac 就能像发现 Apple TV 一样发现你的电脑直接投屏。它到底解决了什么问题问题Windows 无法出现在苹果设备的屏幕镜像列表里。方案项目在 Windows 上实现了 mDNS 服务广播基于 mDNSResponder主动向局域网宣告我是一个 AirPlay 设备于是 iOS 设备能正常发现并连接它。问题AirPlay 2 的加密握手太复杂自己实现成本极高。方案协议层移植自成熟的 shairplay 和 AirplayServer 项目RSA 密钥交换、AES 加密、FairPlay 配对逻辑都已内置在 airplay2/lib/ 中你不需要碰密码学细节。问题音频视频流接进来之后怎么播放方案内置 FDK-AAC 解码器处理 AAC 音频视频帧以 H.264 裸数据含 pts 时间戳、宽高、YUV 数据指针通过回调交给你演示程序用 SDL FFmpeg 解码渲染你可以换成任意自己的渲染方式。问题想集成到自己的 Windows 应用里不想重写整个协议栈。方案项目额外编译了一个airplay2dll动态库只暴露fgServerStart/fgServerStop/fgServerScale几个函数和一套回调接口Airplay2Head.h音频帧、视频帧、连接事件全部通过回调吐出。3 步跑起来第 1 步拿到源码git clone https://link.gitcode.com/i/68b3c47881cfb76e78ec431705514409第 2 步编译安装 Visual Studio 2019 或更高版本需勾选 C 桌面开发用 VS 打开 airplay2-win.sln右键airplay-dll-demo→ 设为启动项目然后CtrlB编译第 3 步运行并投屏编译完成后在输出目录找到airplay-dll-demo.exe并运行看到Startup complete即服务已就绪。此时在 iPhone 上下拉控制中心点屏幕镜像列表里会出现你的设备名点它开始投屏前提只有一个iOS 设备和 Windows 电脑在同一个 Wi-Fi、同一个网段。如果你在虚拟机里跑 Windows务必用桥接网络而不是共享网络否则一定连不上。它是怎么搭起来的整个项目可以拆成 4 个模块各司其职协议核心airplay2/lib/——最重的部分。airplay.c负责 AirPlay 2 的 HTTP 握手和会话管理raop.c负责 RAOPAirPlay 1 的音频协议会话raop_rtp.c处理 RTP 分包pairing.c和rsakey.c处理配对与 RSA 密钥。加密子库放在lib/crypto/、lib/ed25519/、lib/curve25519/下音频解码则由自带的 FDK-AAC 完成。对新手来说这里可以只看接口airplay.h、raop.h、stream.h三个头文件基本能看懂数据流向。服务发现dnssd/——这是 iOS 设备看得见你的关键。它把苹果官方的 mDNSResponder 裁剪后移植到 Windowsdnssd_register_airplay/dnssd_register_raop两个函数分别注册_airplay._tcp和 RAOP 服务。演示与播放airplay-dll-demo/——把 DLL 串起来的完整示例CAirServer负责启停服务CAirServerCallback接收回调CSDLPlayer用 SDL 建窗口、用 FFmpeg 解码 H.264 并播放音频。读懂这一个项目基本就懂整个调用链。对外接口airplay2dll/——编译成 DLL对外只有 include/Airplay2Head.h 里那几个函数。回调接口IAirServerCallback定义了outputAudio、outputVideo、connected、disconnected等方法帧数据结构采样率、声道、YUV 平面指针等在 Airplay2Def.h 中。真实落地场景谁学生 / 上班族。什么时机通勤路上或午休。做什么iPhone 上的播客、网课视频直接 AirPlay 到电脑音箱不用插线、不用 App 中转声音跟画面几乎同步。谁教师。什么时机上课。做什么用 iPad 写字、批作业实时投到教室电脑的大屏上学生也能把错题照片 AirPlay 上来全班讲评。谁内容创作者 / 直播主。什么时机开播前。做什么手机拍完的素材或 iPad 上的设计稿直接投屏进 OBS 采集省掉传到电脑这一步游戏党也可以把手机游戏画面投到电脑录屏。谁开发者。什么时机做软件。做什么用airplay2dll.dll把 AirPlay 接收能力塞进自己的播放应用、会议软件里回调拿到原始音视频帧后可以接任意解码、渲染、录屏管线。上手容易踩的坑现象iOS 设备列表里看不到电脑。原因90% 是网络问题。两台设备不在同一网段、或者 Wi-Fi 路由开启了AP 隔离设备之间互不可见。 怎么办先确认同网段虚拟机用户切到桥接网络路由后台关掉 AP 隔离再试。现象能看到设备点连接却失败。原因防火墙拦截了默认端口RAOP 用 5000、AirPlay 用 7000见 main.c。 怎么办Windows 防火墙允许该程序通过专用网络或临时关闭防火墙测试确认。现象连上了控制台刷日志但没画面。原因demo 的video_process回调默认只打印数据长度不渲染见 airplay2-win/main.c而带窗口的完整演示在airplay-dll-demo工程里。 怎么办把启动项目换成airplay-dll-demo重新编译运行它才接了 SDL FFmpeg 渲染管线。现象画面卡顿、音画不同步。原因无线环境干扰或电脑性能不足。 怎么办优先用 5GHz Wi-Fi 或换有线网把 iOS 端投屏分辨率调低一档电源计划切到高性能。想再深入一点集成到自己应用把airplay2dll编译产物拷走包含Airplay2Head.h实现IAirServerCallback调fgServerStart传入设备名和两个端口即可。音频帧SFgAudioFrame带采样率/声道/位深视频帧SFgVideoFrame带宽高和 YUV 数据自己接 FFmpeg 解码就行。想改协议行为握手和会话逻辑在 airplay2/lib/airplay.c配对与加密在 pairing.c改之前建议先读airplay.h的回调结构体搞清楚每个钩子何时被触发。想贡献代码从airplay-dll-demo的回调实现入手最容易出小 PR比如完善音量、截图、多设备并发大改动建议在 Issue 里先讨论方案。写在最后回到开头那个场景iPhone 的屏幕镜像列表里终于出现了你的 Windows 电脑。airplay2-win 做的事不花哨——把一套成熟的 AirPlay 协议栈移植到 Windows再包一层好用的 DLL 接口——但正是这件事让免费、开源、自己可控成为可能。它适合三类人想用白嫖方案投屏的普通用户想学习 AirPlay 协议细节的开发者以及需要把 AirPlay 接收能力集成进自己产品的团队。源码里每个模块都带注释和清晰的头文件读代码不会比读文档痛苦多少。【免费下载链接】airplay2-winAirplay2 for windows项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考