LyraNest 品牌 LogoLyraNest
官网已启用新域名 lyranest.top,请更新你的书签。旧域名 lyranest.cc.cd 继续作为备用站保留并可正常访问,功能与内容完全一致,也会同步更新。
LyraNest AirPlay 2 Bridge 0.1.0

把音乐,推给客厅的音箱

把律巢推给 HomePod 与 AirPlay 2 音箱,独立进程、独立更新。

What it is

为什么要单独一个桥接器

把 LyraNest 正在播放的音频实时推送到局域网里的 HomePod、HomePod mini、AirPlay 2 音箱,以及任何兼容 RAOP 的接收端。主服务只做一层轻量反向代理,推流与时钟同步全部发生在桥接器进程内。

AirPlay 推流属于高频实时任务:常驻 RTP 帧缓存、音频重编码管线、UDP 时钟应答、每两秒一次的 RTSP 心跳。把这些塞进律巢主服务会同时打破内存红线与镜像体积,还会让不用苹果音箱的用户白白承担全部协议开销。 所以它采用与小爱桥接器完全一致的 Sidecar 模式:主服务零侵入,资源完全隔离。

HomePod

HomePod mini · AirPlay 2 音箱

双引擎

cliairplay · 纯 Go RAOP

8092

控制端口(需 host 网络)

Features

已经能做到什么

当前版本(0.1.0)的能力清单。

推送到 HomePod、HomePod mini、AirPlay 2 音箱与兼容 RAOP 的接收端

mDNS 自动发现(_airplay._tcp / _raop._tcp),设备注册表 60 秒 TTL 自动清理

双推流内核:cliairplay(成熟内核,推荐真机)与内置纯 Go RAOP 发送端,可切换

播放控制:播放 / 暂停 / 下一首 / 音量 / 状态查询

主服务零侵入 —— 只增加一个反向代理网关,镜像体积 0 增长,不做数据库迁移

资源完全隔离:mDNS、解码、RTP 分帧、NTP 时钟应答、/feedback 心跳都在桥接器进程内

Deploy

怎么装起来

两条路:飞牛 fnOS 直接装原生包,或者任何支持 Docker 的机器上跑一个独立容器。

D

Docker

任何装了 Docker 的机器都能跑。注意:容器只做控制面,音频路径与网络要求见右侧的使用前提。

docker run -d --name lyranest-airplay-bridge \
  --net=host \
  --restart unless-stopped \
  -e LYRANEST_SERVER_URL=http://127.0.0.1:8080 \
  -e BRIDGE_TOKEN=change-me \
  lyranest/airplay-bridge:latest

镜像随插件仓库发布;镜像还没拉到时,可以在仓库里用docker build 自行构建。

飞

飞牛 fnOS

下载 FPK 原生包,在飞牛的应用中心安装即可,端口与目录都在向导里配置。

  1. 1下载并安装 LyraNest-AirPlay-Bridge-0.1.0-fnos-x86.fpk。
  2. 2确认应用以 host 网络运行(fnOS 原生包已按此配置)。
  3. 3打开桥接器后台,等待 mDNS 扫出局域网内的 AirPlay 设备;扫不到就手动登记 IP。
  4. 4回到律巢「插件中心 → AirPlay 桥接器」,填入 http://宿主机IP:8092 并测试。
前往下载页

Requirements

使用前提

这几条踩过坑,先看一遍能省不少时间。

  • 必须使用 host 网络(--net=host):AirPlay 靠 mDNS 组播发现音箱,音箱还会反连随机 UDP 端口做时钟同步与收流;Docker bridge 网络只能 NAT 出站,收不到这些入站数据报,会出现「扫不到设备」或「连上但无声」。
  • 默认控制端口 8092;音频由桥接器直接向律巢拉取,不经过反向代理。
  • 组播被过滤的网络(跨网段、部分交换机)可以用 AIRPLAY_STATIC_DEVICES 手动登记设备,填 IP 或 IP:端口,且永不过期。
  • 多网卡机器可能需要指定 BRIDGE_IFACE(mDNS 走哪张网卡)与 BRIDGE_PUBLISH_IP(音箱该回连哪个地址)。
  • 可选 BRIDGE_TOKEN:主服务用 x-bridge-token 头鉴权,留空则信任内网。

让 HomePod 唱你自己的歌

装好桥接器,律巢里点播放,声音就落到客厅的音箱上。