使用树莓派做局域网DTS音乐播放器,附家用组网图

背景介绍

前段时间发现DTS音乐搭配5.1声道音箱效果十分震撼,用的是坚果G1投影仪光纤直通输出到功放播放,但是有些歌曲总是会出现无法解码的情况,问题出在投影仪上,但是原因找了很久也没有找到。同时还有另一个问题,投影仪不能关闭投影,就为了听歌开那么大功率的光机既浪费电,也损耗光机寿命。

于是花了一天时间想办法解决这个问题,目的有2个:

  1. 实现播放局域网内共享的DTS 5.1声道音乐。
  2. 不开投影仪,因为没有屏幕了,希望可以使用手机能够控制。

如何输出数字音频到功放

DTS音频属于压缩后的数字音频,数字音频目前有3种比较主流的输出方式:HDMI,光纤,数字同轴线。
于是尝试了一下HDMI,使用PotPlayer播放一首DTS音乐,配置如下:


正确配置后,右键查看音频属性,应该可以看到声道是6->6了:

使用树莓派作为音乐播放器

既然HDMI可以以源码方式输出DTS音频,那么家里闲置的一个树莓派A+应该也可以输出,树莓派的优点不用多说,价格低(100多点),功率低(<10W),功能强大(可以安装完整的Debian甚至Ubuntu),视频硬解码,网上资料也丰富。
于是找出树莓派,随便找个4G的SD卡,刷个鼎鼎有名的KODI(以前叫XBMC)播放器,在树莓派上目前叫OSMC(以前叫Raspbmc)。这个播放器是跨平台的,距今已经发展了十几年,并且可以使用局域网内的手机遥控和Web遥控,民间也有很多遥控APP提供选择,不过试用过几款APP,还是官方的Official Kodi Remote最好用。所以使用树莓派播放音乐不需要外接接显示器、鼠标和键盘,简直是理想的音乐播放器。
树莓派的KODI播放器是基于Debian系统的,所以还可以直接SSH连上去继续折腾:

IMG镜像从OSMC官网下载页面下载,注意选择直接下载IMG镜像,不要下载安装器,安装器也是帮你直接下载,而且速度更慢。


下载完后使用win32diskimager可以将镜像写入SD卡,然后通电就会自动安装好系统了。具体教程可以参考这篇文章

家庭组网结构

整个家庭组网结构如上图所示(右键打开可查看大图)。

  • Ubuntu低功耗服务器
    使用联想Miix2 8,安装Ubuntu后,作为家用小型服务器使用,上面跑了很多服务,包括现在看到的这个Blog,具体安装方法可以参考这篇文章,目前使用很稳定,上面挂了个移动硬盘作为文件存储,支持迅雷远程下载,所以有新电影,可以直接下载到硬盘上,用投影仪直接播放。DTS音乐一个大约有50多M,也是存放在这个硬盘里。
    整机功耗特别低,使用5V-2A的电源供电即可。
  • 树莓派
    树莓派使用功放自带的USB口供电,因此功放打开后,树莓派自动启动,功放关闭后,树莓派也断电关闭,由于上面基本上不存储什么文件,所以断电几乎无影响。使用功放供电也省去一个额外的电源。
    KODI如果要输出数字音频,需要把配置设置为专家模式,在系统——音频设置中将直通输出和下面的几个DTS,杜比兼容功放全勾上即可。
    KODI支持AirPlay协议(iOS 9以上只能支持音频),因此可以直接使用AirPlay播放音乐。
    如果对文件服务器性能要求不高,可以使用树莓派连接移动硬盘替代上面的Ubuntu服务器,也可以支持迅雷远程下载和Samba服务,这样的话,需要一个外部电源不间断供电。
  • 蓝牙音频接收器
    这个是为了让功放支持蓝牙连接音频播放音乐配置的,使用AUX线连接功放,在使用树莓派之前,都是使用蓝牙播放,功放开启自动供电启动,也不需要额外的电源。
    蓝牙受限于传输距离,也容易被人体挡住信号受到干扰,因此效果并不是特别好,优点是比AirPlay速度快一些,几乎无延迟。
  • 书房路由器
    由于一个路由器覆盖范围不够,而且常用PC最好使用有线网络连接,所以增加了书房的路由器,这个路由器是桥接模式,具体操作是:LAN口连接主路由器的LAN口,关闭DHCP,无线SSID和密码与主路由器保持一致。这样无线设备可以无缝切换,切换接入点也不会切换IP,不会造成明显的网络闪断。
  • 安防监控器
    使用的是乔安监控器,这个监控器挺稳定的,支持手机移动侦测告警和监控。缺点也很多,推送不及时,检测容易误报,而且监控使用的是他们的服务器中转,可能会泄露隐私。于是在Ubuntu服务器上写了个脚本,当家人的手机连上Wifi,则断开监控器的网络。所以有人回来了,监控器就被断网,最大程度避免隐私泄露。
    脚本代码如下,可以放到Crontab中每隔3分钟执行一次,原理是使用arping检测手机IP是否联通,然后SSH上路由器的iptables对监控器网络进行控制。

    结语

    其实我蛮喜欢折腾这些乱七八糟的东西的☺