airplay2-win:让Windows免费当AirPlay 2接收器的开源协议栈

📅 2026/8/24 16:29:07
airplay2-win:让Windows免费当AirPlay 2接收器的开源协议栈
airplay2-win让Windows免费当AirPlay 2接收器的开源协议栈【免费下载链接】airplay2-winAirplay2 for windows项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win想让 iPhone 屏幕镜像到 Windows 电脑商业投屏软件要收订阅费免费的又满屏广告。airplay2-win 做的事很直接把你的 Windows 电脑变成一个 AirPlay 2 接收器iPhone 在同一网络下的屏幕镜像列表里能发现它然后把屏幕和声音直接送进你的程序里全程免费、源码全开。它到底能干啥电脑向局域网广播一个AirPlay 接收器服务iOS 设备的屏幕镜像列表里能看到它连接后接收设备发来的 H.264 屏幕流和 AAC 音频流内置 FDK-AAC 解码器音频解成 PCM视频逐帧以 YUV 格式交给你的代码提供 DLL 封装集成进自己的应用只需要链接一个库一句话定位它本质是一套移植到 Windows 的开源 AirPlay 协议栈——把 Linux 上的 AirplayServer 协议库和 mDNS 服务发现组件搬过来再包成可调用的 DLL核心代码在 airplay2/ 和 dnssd/ 两个目录里。最短路径跑起来装好 Visual Studio 2019 或更高版本需要 C 工具链拿到代码# 获取源码 git clone https://gitcode.com/gh_mirrors/ai/airplay2-win打开仓库根目录的 airplay2-win.sln把 airplay-dll-demo 设为启动项目右键项目 → 设为启动项目CtrlShiftB 整体编译仓库自带 external/ 目录下的预编译库SDL、FFmpeg 等不用自己装依赖运行编译出的 airplay-dll-demo.exe按 s 启动接收服务iPhone 打开控制中心 → 屏幕镜像会看到一个叫 FgAirplay[你的电脑名] 的设备点它开始投屏内部到底怎么转的不看代码之前先看数据走向iPhone 的屏幕要经过四站才能到电脑窗口。iPhone ──同一局域网──▶ dnssd/ 广播我在这里mDNS 服务发现 ▶ airplay2/ 协议栈握手、配对、解密、音频解码 ▶ airplay2dll/ 把上面两样包成一个 DLL ▶ airplay-dll-demo/ 用 SDL 出画面、出声可跑通的 demodnssd先让别人发现你输入是一个设备名和两个端口组件用 mDNSResponder 协议在局域网里组播让整网包括 iOS 设备知道这里有个接收器可以连输出就是 Windows AirPlay接收器 出现在手机的镜像列表里。没有这一层后面协议栈再完善也没用相当于店开着但没挂招牌。airplay2协议栈本体输入是设备发来的加密 TCP 包流处理是全程最长的一段——先用 RSA/AES 密钥交换完成配对再解密包流音频走 FDK-AAC 解码器视频流拆成 H.264 帧输出是通过 IAirServerCallback 接口逐帧回调你的代码音频是 PCM 帧SFgAudioFrame视频是 YUV 帧SFgVideoFrame。加密在 airplay2/lib/crypto/配对在 pairing.c音频流在 raop_rtp.c想研究开源 AirPlay 协议实现的话这三个地方是主料。airplay-dll-demo帧的去处输入是回调送来的两类帧视频帧进 SDL_Overlay 显示音频帧进队列由音频设备消费输出就是你看到的画面。整个 demo 代码量不大核心逻辑集中在 airplay-dll-demo/ 目录适合从上到下读一遍。集成时只需要记住的接口IAirServerCallback ├─ outputVideo(SFgVideoFrame*) // YUV 视频帧回调 ├─ outputAudio(SFgAudioFrame*) // PCM 音频帧回调 └─ connected / disconnected // 设备连接、断开事件适合谁能怎么变如果你是普通用户就想让 iOS 投屏到电脑编译出 demo 直接用不用再买任何授权如果你是开发者想把 AirPlay 接收能力嵌进自己的产品——会议软件、投屏应用、投屏硬件的主机程序——看 airplay2dll 就够了实现 fgServerStart 和一个回调接口把 demo 里的 SDL 换成你自己的渲染管线如果你是协议研究者airplay2/ 目录里握手、加密、音频解码的细节都有比对着协议文档猜强得多。大概率会踩的坑发现得了连不上。十有八九是两台设备不在同一网段——Windows 在 5GHz、手机在 2.4GHz或者路由器开了访客网络隔离。Windows 跑在虚拟机里的话虚拟网卡必须选桥接共享网络模式不行官方 FAQ 也专门提了这条。防火墙在背后使坏。接收服务首跑需要允许防火墙弹窗mDNS 发现靠 UDP 广播如果点了允许还是发现不了设备去检查专用网络配置文件有没有被拦。编译报错基本都在路径上。工程文件已经配好了 external/ 下预编译库的路径别手动挪目录、改输出位置实在编不过就清理解决方案后重新生成而不是去翻 CMake 配置VS 工程才是主构建路径CMake 只服务 Linux 侧。边界在哪这个项目的交付物是协议库 最小 demo不是成品软件没有配置界面、没有系统托盘demo 里的音视频输出都是裸队列想做到丝滑的投屏体验渲染、缓冲和调度得自己补延迟敏感的场景比如远程玩游戏也不适合协议栈对网络抖动的容忍度有限。想动手的话最快路径是跑通 demo 后读 airplay-dll-demo/CAirServerCallback.cpp对着投屏时触发的 outputVideo 回调看你就能看到一帧画面从网络走到屏幕的全过程。开头那个场景最后会这样收场iPhone 的画面出现在电脑窗口里而你没为此花一分钱授权费。【免费下载链接】airplay2-winAirplay2 for windows项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考