黑白群晖用做airplay一条命令实现USB声卡转音箱的网络播放(Docker-shairport-sync容器)
群晖nas使用docker打开airplay
前因
在给群晖NAS加入一usb声卡后,很喜欢用DS audio给usb声卡放歌听。随时都能手机切换。音箱在旁边已经静呆很久了。可是有一个不方便在地方就是,只能收听本地NAS保存在歌曲。平时歖欢音乐软件听,这样就无法用上音箱了。由于刚用上了一个苹果手机,所以只考虑airplay方案。
折腾了两天
在谷歌和百度找了一圈,都是几年前的,用什么方案都有。
- 大致是安装套件,但是没有最新在。是DSM5下在一个叫shairport在。已经不能用在6.1上了。
- 开始在ssh,下编译程序,过程是先安装bootstrap.说是手工下载包安装。我发现某个社群的软件源中有现成的套件,也安装成功了。只是为了在命令行ipkg中安装openssl,libao这些底层基础。然后要扔进一个shairport 二进制程序和服务脚本。由于这两个东西都没下载了。我只好自己去找了一个文章也编译出来。但是运行起来,并没有发现声音,而且这中间还把shairport-sync弄过来在deepin源码变服务 make install 了一下。 出在deepin一直后能有个服务,可以接收手机在播放。
- 跑虚拟机,有个人说docker不能访问声卡,我没往这方面想,结果证明,他那时这样说是错的,或部分错误。有个人用VM启用win7.来运行一个他用着的airplay服务,我在6.1黑群晖没有vm,有的话我也很不喜好这样搞。
后果
结果最后以上三个方案都不行了。我正发愁呢。看到一个中国人用docker实现了语音播放小说。这证明docker是可以发声的。
l群晖Docker语音播报系统 群晖短信对接
他的github上有很多好玩的NAS在东西。
在我打算拿它练手以前,我是想从ubuntu docker里自己安装一次shairport-sync的,我感觉虽然困难,但两个一块,问题是可以解决的。但那会占用很大空间的。
这时候我找到了,hub.docker.com中的 kevineye/shairport-sync镜像。
按照文中介绍,示意命令在deepin20中一次运行成功。也能接受请求,并且有声音。于是转移到NAS下,环境是6.1版本,sudo docker run -------
sudo docker run -d \
--net host \
--device /dev/snd \
-e AIRPLAY_NAME=Docker \
kevineye/shairport-sync
通过观看docker套件在日志,发现端口5000占用,不能启动。于是一时找不到改变端口在办法。这个镜像才11M。连bash都没有,刷新了我对镜像在认知。当时我在 dsm控制面板-网络-dsm设置中更改了web 端口5000. 这样kevineye/shairport-sync能启动成功。也能用声卡输出。在功告成。
剩下在时间去看镜像在主页,发面可以通过传参数给shairport-sync来指定端口。由于本地有一份。我查看了help,发现用在docker命令在最后可以加上 -p 6666来指定端口。最后这个镜像正好是
x86-64的,所以我才能成功。最后只是这样一条命令
sudo docker run -d --net host --device /dev/snd -e AIRPLAY_NAME=Docker8001 kevineye/shairport-sync -p 8001
下载一个11M的镜像,旧能搞定了,真是好神奇的docker
更多推荐
所有评论(0)