零成本用snapcast开源项目组建多房间音乐系统
最近搞了一套多房间音乐系统,实现任意设备播放的音乐流转到任何房间的设备播放或者同步播放,现在和大家一起分享。
想象这些场景,实现音频的流转自由
台式电脑没有蓝牙,我想用我的蓝牙耳机听歌,我可以用我的手机作为中介,播放电脑上的任何声音
电脑或手机上用麦克风喊话,各个房间的喇叭都会实时播放你的声音(比如叫起床,吃饭)
我在客厅听音乐,现在想到卧室休息,卧室的音箱同步播放客厅的音乐不间断
客厅的功放设备不支持airplay,但是我可以利用这个系统接收苹果的airplay隔空播放
蓝牙的音质不好,我想播放抖音的音频到音箱,通过wifi,立刻给你搞定
foobar播放的音乐,充满每个房间,同步播放
不管是安卓还是苹果手机,总能把音乐投送到指定设备
我想播放nas上的音乐,不管我用平板、手机、还是pc,只要能浏览网页,不用安装客户端
是不是很神奇?先了解下系统的实现原理
本系统的核心是snapcast开源项目,一个多房间的音频系统,分为服务端和客户端两部分。服务端捕获(snap)各种播放器播放的音频流,编码(flac,pcm,ogg,opus)后发送(cast)到各个安装有snapcast的客户端,可以是平板、手机、安卓机顶盒或者网页客户端。
音频流的来源,可以分为四大部分,安卓阵营的dlna,苹果的airplay,mopidy播放的本地文件和流媒体服务,手机或电脑的声卡直接捕获的流(只要能播放,就能做内容源)。这样几乎任何节目内容,都能被这个系统捕获,和蓝牙不同的是,它可以网络传输和无损编码,音质没有损失,理论上达到cd级别。
客户端安装到智能设备上,可以是平板、pc、手机、机顶盒、树莓派等。只要能安装snapcast客户端就行。接下来就是连接到你的现有音响系统,可以通过线缆,USBdac,蓝牙等方式。这个可能是唯一的硬件门槛。
一些截图:
具体的实现方式:
服务端需要运行在linux系统上,我是在Windows 上的虚拟机运行dietpi 系统,安装snapcast服务和shairport-sync(airplay接收端)、mopidy、upmpdcli(docker安装,用于接受dlna)。都是开源免费的软件,你也可以安装到群晖上。具体功能见图。
客厅的电视盒子和手机是安卓系统,安装了snap.net,一个开源的跨平台snapcast客户端带声卡采集广播功能(采集音频传输到snapcast服务器),pc也安装这个软件。snap.net也是控制中心,可以控制那个设备播放哪个音源(蓝色线框内的部分)。手机安装了MPd的客户端MALP,可以控制mopidy的各种功能,主要用于本地媒体播放和音乐串流服务(国外的多)。也可以访问mpd的网页客户端,进行控制,也可以打开snapcast的网页客户端控制音频的流转,同时只要能上网,你的设备就能临时变成播放终端,不用安装软件。
如果大家感兴趣,可以出详细的教程,也欢迎大家讨论这个平民版的多房间音乐系统。最大的好处是各种设备可以自由组合,充分利用老旧的现有设备,hifi设备,缺点是需要有一个设备充当服务器,可以是虚拟机、树莓派、软路由等。音质比蓝牙好(无损传输),延迟约1秒。听音乐没问题,但是播放视频延迟不可接受,解决办法是用可以调整音视频同步的播放软件,音频设置提前1秒。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~







校验提示文案
校验提示文案
校验提示文案
校验提示文案
音响端安装snapcast client.
能否具体出一个教程来将如何安装MPD,UPMPDCLI,SNAPCAST呢? 百度了一下,国内此方面教程很少
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
音响端安装snapcast client.
能否具体出一个教程来将如何安装MPD,UPMPDCLI,SNAPCAST呢? 百度了一下,国内此方面教程很少
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案