Snapcast是一个开源的多房间音频同步播放器。你可以把它理解成一个"音频版的AirPlay",但比AirPlay强太多了。它采用服务器-客户端的架构,服务器负责把音频抓过来、编好码、打上时间戳,然后通过网络发给各个客户端。客户端收到音频之后,根据时间戳精确控制什么时候播放,所以不管你在客厅、卧室还是厨房,所有音箱放出来的声音都是完全同步的,延迟能控制在0.2毫秒以内,基本上人耳根本感知不到差别。

Snapcast宣传图

【功能特色】

  1. 多房间同步播放

  这是它的核心功能。你可以在家里每个房间放一个客户端,所有设备同时播放同一首歌,声音完美同步,不会出现"客厅已经唱到副歌了,卧室还在前奏"的尴尬。

  2. 支持多种音频源

  它不挑音频来源,MPD、Mopidy、Spotify(通过librespot)、AirPlay、本地文件、甚至系统的线路输入,统统都能接进来。你家里原来用的音乐播放器基本都能无缝对接。

  3. 分组管理

  你可以把不同房间的客户端分成不同的组。比如客厅和厨房是"观影组",卧室是"音乐组",不同组可以播放不同的内容,也可以一键全屋同步,非常灵活。

  4. 音量独立控制

  每个客户端的音量都可以单独调,也可以一键全部同步音量。配合Web控制界面,手机上就能操作,特别方便。

  5. Web控制界面

  服务器自带一个Web管理页面(默认1780端口),打开浏览器就能管理所有客户端、切换音频源、调音量,界面还是响应式的,手机平板都能用。

  6. 低延迟模式

  对于打游戏、看电影这种对音画同步要求极高的场景,它支持把延迟压到20毫秒以内,Opus编码加上小缓冲区,基本上做到音画完美同步。

功能特色配图1

【使用说明】

  【配置服务器】

  服务器的配置文件在 /etc/snapserver.conf,最基础的配置就是这样:

  [server]

  port = 1704

  controlPort = 1780

  [stream]

  source = pipe:///tmp/snapfifo?name=default&codec=flac

  如果你用MPD当音乐源,就在MPD的配置里加一个FIFO输出指向 /tmp/snapfifo,然后重启MPD就行。

  【客户端连接】

  客户端安装好之后,最简单的连接方式:

  snapclient -h 192.168.1.100

  把那个IP换成你服务器的IP就行。它还支持Avahi自动发现,局域网里直接输 snapclient 就能自动找到服务器,连IP都不用填。

  【Web界面操作】

  服务器启动后,打开浏览器访问 http://服务器IP:1780,就能看到所有客户端和音频流,点点鼠标就能切歌、调音量、分组,比命令行方便多了。

使用说明配图1

下载地址

远程下载