Shairport Sync 构建与安装完全指南

Shairport Sync 构建与安装完全指南

shairport-sync shairport-sync 项目地址: https://gitcode.com/gh_mirrors/sh/shairport-sync

前言

Shairport Sync 是一款优秀的开源 AirPlay 音频接收器实现,能够将你的 Linux/FreeBSD 设备变成支持 AirPlay 协议的无线音箱。本文将详细介绍如何从源码构建和安装 Shairport Sync,包括 AirPlay 2 和经典 AirPlay 两种模式的配置方法。

准备工作

清理旧版本

在开始构建前,必须彻底清理系统中可能存在的旧版本:

  1. 查找并删除所有 shairport-sync 可执行文件

    $ which shairport-sync
    # rm /path/to/shairport-sync
    
  2. 删除所有服务文件(位于以下位置):

    • /etc/systemd/system/
    • /etc/systemd/user/
    • /lib/systemd/system/
    • /lib/systemd/user/
    • /etc/init.d/
  3. 清理完成后建议重启系统

依赖安装

根据你的操作系统选择对应的安装命令:

Debian/Ubuntu/Raspberry Pi OS

对于 AirPlay 2 版本:

# apt update
# apt install --no-install-recommends build-essential git autoconf automake libtool \
    libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev \
    libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd

对于经典 AirPlay 版本:

# apt install --no-install-recommends build-essential git autoconf automake libtool \
    libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev

Fedora

注意:AirPlay 2 需要启用 RPM Fusion 非自由仓库

# yum install --allowerasing make automake gcc gcc-c++ \
    git autoconf automake avahi-devel libconfig-devel openssl-devel popt-devel soxr-devel \
    ffmpeg ffmpeg-devel libplist-devel libsodium-devel libgcrypt-devel libuuid-devel vim-common \
    alsa-lib-devel

Arch Linux

# pacman -Sy git base-devel alsa-lib popt libsoxr avahi libconfig \
    libsndfile libsodium ffmpeg vim libplist

启用 Avahi 服务:

# systemctl enable --now avahi-daemon

FreeBSD

  1. 更新系统:

    # freebsd-update fetch install
    # pkg update
    
  2. 安装 Avahi:

    # pkg install avahi-app nss_mdns
    
  3. 修改配置文件后重启

构建过程

NQPTP(仅 AirPlay 2 需要)

AirPlay 2 需要 NQPTP 作为时间同步服务,需单独构建安装。

Shairport Sync 构建

  1. 获取源码:

    $ git clone https://github.com/mikebrady/shairport-sync.git
    $ cd shairport-sync
    
  2. 生成配置脚本:

    $ autoreconf -fi
    
  3. 配置选项(关键参数说明):

    • --sysconfdir=/etc:配置文件目录
    • --with-alsa:启用 ALSA 音频后端
    • --with-soxr:启用 SOXR 重采样
    • --with-avahi:启用 Avahi 服务发现
    • --with-ssl=openssl:使用 OpenSSL
    • --with-systemd:生成 systemd 服务文件
    • --with-airplay-2:启用 AirPlay 2 支持(可选)

    完整配置命令:

    $ ./configure --sysconfdir=/etc --with-alsa \
        --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-airplay-2
    
  4. 编译安装:

    $ make
    # make install
    

测试与运行

手动测试

以普通用户运行:

$ shairport-sync -v --statistics
  • -v:显示详细日志
  • --statistics:显示音频统计信息

系统服务配置

Linux 系统:

# systemctl enable --now shairport-sync

FreeBSD 系统: 在 /etc/rc.conf 中添加:

shairport_sync_enable="YES"

常见问题排查

  1. WiFi 电源管理

    # iwconfig wlan0 power off
    或
    # iw dev wlan0 set power_save off
    
  2. 防火墙设置:确保不阻挡 Shairport Sync 和 NQPTP 所需端口

  3. 电源管理:禁用系统的自动挂起功能

  4. 音频设备:使用 alsamixer 检查音量设置

高级配置

安装完成后,可以通过以下方式进一步优化:

  1. 编辑 /etc/shairport-sync.conf 配置文件
  2. 调整音频同步参数
  3. 配置多房间音频(AirPlay 2)
  4. 集成到 Apple Home 系统

结语

通过本文的详细步骤,你应该已经成功构建并运行了 Shairport Sync。无论是作为简单的 AirPlay 接收器,还是构建多房间音频系统,Shairport Sync 都能提供出色的音频体验。如需更高级的功能配置,可以参考项目的详细文档。

shairport-sync shairport-sync 项目地址: https://gitcode.com/gh_mirrors/sh/shairport-sync

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尤瑾竹Emery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值