收起左侧

飞牛 NAS 部署 Shairport Sync 实现 AirPlay2 音频接收(适合所有AUX,蓝牙等音箱)

0
回复
64
查看
[ 复制链接 ]

6

主题

43

回帖

0

牛值

初出茅庐

飞牛 NAS 部署 Shairport Sync 实现 AirPlay2 音频接收(适合所有AUX,蓝牙等音箱)

本教程以飞牛 NAS 为例,通过 Docker 部署 Shairport Sync,实现将 iOS/macOS 设备的音频通过 AirPlay2 推送到小米音箱 Pro,全程适配小米音箱硬件特性。

1920-封面.jpg

前置准备

1. 安装 ALSA 音频工具包

飞牛 NAS 系统默认缺少aplay/amixer等音频工具,需先安装:

# 登录你的飞牛NAS终端,切换到root用户(输入NAS管理员密码确认)
sudo -i
# 执行以下命令安装ALSA工具包
apt update && apt install -y alsa-utils

2. 确认音频设备信息(关键)

安装完成后,查询本地音频设备编号(小米音箱 Pro 对应的声卡):

# 列出所有音频设备
aplay -l  # 列出混音器控制项(确认PCM控制名称)
amixer -c 2 controls  # 替换2为实际声卡编号

记录输出中的card 2: xxx(声卡编号)和PCM(混音器名称),后续配置需用到。

Shairport Sync 部署步骤

  1. 创建配置目录及文件
# 创建工作目录
mkdir -p /vol1/1000/shairport-sync && cd /vol1/1000/shairport-sync
# 创建shairport-sync.conf配置文件
vim shairport-sync.conf

将以下配置粘贴到文件中(根据实际声卡编号修改):

# 通用配置段
general = {
  name = "小米音箱Pro AirPlay2";  # AirPlay设备名称(蓝牙搜索显示)
  volume_range_db = 40;            # 扩大音量调节范围(更细腻)
  volume_max_db = 0;               # 软件音量上限拉满(无衰减)
  mdns_backend = "avahi";          # Linux设备发现服务
  output_format = "S16LE";         # 音频输出格式(16位小端序)
  output_rate = 44100;             # 标准音频采样率
  playback_mode = 0;               # 默认播放模式
};

# ALSA音频后端配置(核心)
alsa = {
  output_device = "plughw:2,0";    # 替换为实际声卡编号(card:device)
  mixer_control_name = "PCM";      # 替换为查询到的混音器名称
  mixer_device = "hw:2";           # 声卡编号
  mixer_index = 0;                 # 默认索引
  ignore_alsa_mixer_errors = "yes";# 忽略小错误避免服务崩溃
};

# 禁用未使用的音频后端
pipewire = { enabled = "no"; };
pulse = { enabled = "no"; };
  1. 创建 docker-compose.yml 文件

vim docker-compose.yml
粘贴以下配置(适配飞牛 NAS 环境):

# Shairport Sync (AirPlay2音频接收服务)
services:
  shairport-sync:
    image: mikebrady/shairport-sync:latest  # 官方最新镜像
    container_name: shairport-sync          # 容器名称
    restart: unless-stopped                 # 异常退出自动重启
    network_mode: host                      # 宿主机网络(确保AirPlay发现)
    volumes:
      - /etc/localtime:/etc/localtime:ro    # 同步宿主机时区
      - ./shairport-sync.conf:/etc/shairport-sync.conf:ro  # 挂载自定义配置
    environment:
      - TZ=Asia/Shanghai                    # 时区配置
      - PULSE_SERVER=disable                # 禁用PulseAudio
      - AUDIO_BACKEND=alsa                  # 指定ALSA音频后端
    devices:
      - /dev/snd:/dev/snd                   # 挂载音频设备
      - /dev/bus/usb:/dev/bus/usb           # 挂载USB音频设备
    group_add:
      - audio                               # 添加音频组权限
    privileged: true                        # 特权模式(解决设备访问权限)
    command: --verbose                      # 开启详细日志(便于调试)
  1. 启动容器
# 启动容器(后台运行)
docker-compose up -d
# 查看容器状态
docker-compose ps
# 查看日志(验证是否正常启动)
docker logs shairport-sync

验证使用

  1. 打开 iOS/macOS 设备的控制中心,找到「隔空播放」选项;
  2. 选择显示的「小米音箱 Pro AirPlay2」设备;
  3. 播放音频,验证小米音箱是否正常出声;
  4. 若音量异常,可通过amixer -c 2 set PCM 80%(替换 2 为声卡编号)调整硬件音量。

常见问题

  1. 设备搜索不到:检查容器是否启动、network_mode: host是否配置,飞牛 NAS 防火墙是否放行 5000/7000 端口;
  2. 无声音输出:核对output_device声卡编号是否正确,确保小米音箱 Pro 已正确连接 NAS;
  3. 音量调节无效:确认mixer_control_name与实际混音器名称一致。
收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则