[心得] 使用netJACK串流至Hifiberry DAC+

楼主: twetto912 (左手食指的那个茧)   2019-02-22 19:02:18
大家好,耳机板首po就决定是这个主题了
大概一年前吧,家里多了台不知名综扩,
刚好之前就有使用小电脑作为电视用HTPC的想法,
于是就选择了树莓派+Hifiberry的组合。
用volumio播了一段时间之后...
扩就坏了(′・ω・`)
所以我就拿回宿舍自己把玩了嘻嘻
摸了几个月总算有点心得了,想说来分享一下
首先,要把电脑音讯透过LAN串流到树莓派上,大概有三种方法:
1. AirPlay (使用ShairportSync实作,大部分的音乐用OS都有内建,如Volumio,
RuneAudio等)
2. PulseAudio (Linux专用)
3. JACK audio connection kit (使用netJACK协议,大部分OS皆适用)
AirPlay的缺点是延迟大,无法影音同步,且只有48kHz
PulseAudio...别提了,bug超多
于是我们只剩下一条路...
先来总结一下流程吧:
1. 树莓派SD卡装Raspbian
2. 树莓派设定好Hifiberry DAC+,将它设为默认卡
3. 树莓派安装JACK,开启jackd netmanager等待PC连线
4. PC安装JACK,连上树莓派
细部设定:
1. 树莓派SD卡装Raspbian:
可以使用NOOBS或者直接抓映像档塞进去,这边我是直接抓映像档,并使用Etcher写入。
Etcher的好处是它会直接把整片SD卡的空间都用完,不用再自己扩充partition
映像档的部份,我选择headless的Lite版本,毕竟只是要听音乐嘛,桌面环境就不用装了

烧完进去boot partition,创造一个名字叫ssh的空档案,以后就用PC终端机连线就好了

改好插进树莓派,插上网络线跟电源,完成。
2. 树莓派设定好Hifiberry DAC+,将它设为默认卡:
PC端打开终端机,找树莓派的ip(个人使用nmap),用ssh登入。
之后请参考这篇官方教学:
https://www.hifiberry.com/build/documentation/configuring-linux-3-18-x/
随便scp个音乐进来放,有声音就成功囉~
成功之后,可以选择要不要开启超取样:
先用alsacap确认声卡最高支援什么格式
https://imgur.com/uYzAjiI
可以看到384000Hz S32_LE是ALSA对这块板子的最高支援;
虽然pcm5122本身只有到192kHz/24bit,不过ALSA可以做padding;
网络跟PC端够力的话,可以试试调到最高
如果有更改,要再reboot一次套用
可以参考这篇:
https://unix.stackexchange.com/questions/74558/change-sampling-rate-in-alsa
3. 树莓派安装JACK,开启jackd netmanager等待PC连线
可以装JACK囉
sudo apt-get install jackd2 qjackctl xserver-xorg
装Xorg的目的是使用qjackctl的GUI,这样比较方便设定
登出pi,使用ssh -X 再进去一次以启用X11 forwarding
qjackctl这边,可以设定取样率,直接拉到192k
https://imgur.com/BGCx9Bo
之后按下start套用成功就可以stop & quit了(也可以进~/.jackdrc 强制拉到384kHz做极
限测试)
最后开server等待:
jack_load netmanager -i -c
这样pi这边就算设定完成了
4. PC安装JACK,连上树莓派
以Arch Linux为例,先将user加入realtime跟audio的group,再装jack2_dbus跟cadence
进入cadence,configure -> driver点到net -> OK,点选start就连上了
https://imgur.com/SgligZu
DSP load有点高...上传速度3MiB多也有点高...之后应该会调低一点
Windows 就去抓JACK官方的installer,
之后照着教学,开启net driver 用ASIO Bridge连到jack server就好了。
你问我音质如何?
我听不出来(′・ω・`)老实讲,直插GH2时,跟AirPlay听起来一样
但是可以低延迟/影音同步+浪费电脑资源
哈哈 爽啦
老实讲,我也不知道什么人会有这种需求
就当作是一个setup的纪录好了
感谢各位的阅读

Links booklink

Contact Us: admin [ a t ] ucptt.com