使用gmediarender-resurrect搭建DLNA音箱
官方提供的软件包 gmediarender 好像无法发音,于是使用 gmrender-resurrect
github地址
https://github.com/hzeller/gmrender-resurrect
安装依赖
sudo apt-get install libupnp-dev libgstreamer1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
#音频sink
sudo apt install gstreamer1.0-alsa gstreamer1.0-pulseaudio
编译依赖
sudo apt-get install build-essential autoconf automake libtool pkg-config
git clone https://github.com/hzeller/gmrender-resurrect.git
编译
cd gmrender-resurrect
./autogen.sh
./configure
make
安装到系统
sudo make install
测试启动
运行 ./src/gmediarender -f “My Renderer”
防火墙
- 根据 --port 指定端口 监听 ipv4 tcp 默认 49152
- 监听 upnp 1900 组播
sudo iptables -t filter -A INPUT -p tcp --dport 49152 -j ACCEPT
sudo iptables -t filter -A INPUT -p udp --dest 239.255.255.250 --dport 1900 -j ACCEPT
音量
0db 100 *设置为0 100%音量-6db 85 -6 85%-10db 75 -10 75%-20db 50 -20 50%-40db 25 -40 25% -60db 0 -60 0% 静音
创建运行用户 需要创建home目录以保存数据
sudo adduser --system --home /var/gmrender gmrender
日志文件
sudo touch /var/log/gmediarender.log
sudo chown gmrender:gmrender /var/log/gmediarender.log
配置选项文件 由init.d加载使用
/etc/default/gmediarender
#基于alsa
DAEMON_USER=“gmrender:audio”
UPNP_DEVICE_NAME="$(hostname)-PLAY"
INITIAL_VOLUME_DB=-40
GS_SINK_PARAM=“alsasink”
#alsa 使用 aplay -L #pulseaudio 使用 pacmd list-sinks|grep name:
ALSA_DEVICE=“sysdefault”
LISTEN_PORT=49152
DAEMON_EXTRA_ARGS="–mime-filter=audio"
对原始 /etc/init.d/gmediarender 经过修改
创建或替换 /etc/init.d/gmediarender
chmod +x /etc/init.d/gmediarender
#!/bin/sh### BEGIN INIT INFO
# Provides: gmediarender
# Required-Start: $remote_fs $syslog $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start GMediaRender at boot time
# Description: Start GMediaRender at boot time.
### END INIT INFODESC="gmRender"
DAEMON_USER="nobody:audio"
UPNP_DEVICE_NAME="Raspberry"
INITIAL_VOLUME_DB=-10
LISTEN_PORT=49152#---------------------------------------
#对于原始版本的gmediarender -I 指定的是ipv4地址 这个与下面的LISTEN 二选一
#LISTEN=`ip -4 route list default|awk -F " " '{print $5}'`; LISTEN=`ip -4 addr |grep $LISTEN|grep inet|awk -F " " '{print $2}'|awk -F "/" '{print $1}'`#gmediarender-resurrect 的-I 指定的是接口名
LISTEN=`ip -4 route list default|awk -F " " '{print $5}'`LOG_FILE="/var/log/gmediarender.log"
ALSA_DEVICE="sysdefault"NAME=gmediarender#deb包安装路径 ------------------------------------------
#DAEMON=/usr/bin/$NAME
#gmRender-resurrect 编译安装的路径
DAEMON=/usr/local/bin/$NAMEPIDFILE=/var/run/$NAME.pid
DAEMON_EXTRA_ARGS=""[ -x "$DAEMON" ] || exit 0[ -r /etc/default/$NAME ] && . /etc/default/$NAME
. /lib/init/vars.sh
. /lib/lsb/init-functionsif [ -n "$ALSA_DEVICE" ] ; thenGS_SINK_PARAM="--gstout-audiosink=alsasink"GS_DEVICE_PARAM="--gstout-audiodevice=$ALSA_DEVICE"
fi# A simple stable UUID, based on this systems' first ethernet devices MAC address,
# only using tools readily available to generate.
UPNP_UUID=`ip link show | awk '/ether/ {print "salt:)-" $2}' | head -1 | md5sum | awk '{print $1}'`case "$1" instart)echo "Starting GMediaRender"start-stop-daemon --start --quiet --exec $DAEMON -c "$DAEMON_USER" --pidfile $PIDFILE -- \
-f "$UPNP_DEVICE_NAME" -d -u "$UPNP_UUID" $GS_SINK_PARAM $GS_DEVICE_PARAM \
--gstout-initial-volume-db=$INITIAL_VOLUME_DB -I "$LISTEN" -p "$LISTEN_PORT" \
--logfile "$LOG_FILE" "$DAEMON_EXTRA_ARGS";;stop)echo "Stopping GMediaRender"start-stop-daemon -x $DAEMON -K;;*)echo "Usage: /etc/init.d/gmediarender {start|stop}"exit 1;;
esac
服务启动
sudo systemctl start gmediarender.service
前台运行
sudo -H -u gmrender bash -c "gmediarender -I ens3 --port=49152 --friendly-name=DOPLAY --gstout-initial-volume-db=0.0 --gstout-audiodevice=sysdefault --uuid=20b7e477-9f8a-4ba0-9b3c-b2b342dd2f45 --logfile=stdout --mime-filter=audio -d"
Android播放体验
网易云 dlna 只能播放一首 —可以连续播放
qq音乐 可以使用 dlna 但是遇到不支持qplay播放的就会暂停播放 这时需要打开界面 下一首
应用管理 -> QQ音乐 -> 电池->启动管理-> 去掉选中 自动管理
但是碰到收费音乐就会停止 需要手动下一首
电池 或者
自动管启动 选中
关联启动 选中
后台运行 选中
如果/dev/snd被独占了 例如docker --device /dev/snd 宿主的gmediarender 就不能播放声音
使用gmediarender-resurrect搭建DLNA音箱相关推荐
- 从零开始,搭建 AI 音箱 Alexa 语音服务
本文来自作者 Mike 在 GitChat 上分享 「从零开始,搭建 AI 音箱 Alexa 语音服务」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 一.概述 生活场景的引入: 物联网的 ...
- DLNA 和如何在xp win7 搭建 DLNA服务器
1. DLNA 介绍 目录: 一.DNLA的建立 二.DLNA的成员 三.DLNA标准的制定 四.DLNA的设备 五.DLNA的架构 六.云时代的数字家庭(待填坑) 扩展阅读I: UPnP的工作过程- ...
- 7 centos 查看程序文件数量_「动手打造家庭媒体网络平台」安装篇-centos搭建DLNA媒体服务...
大家好,我是路程lucky,热爱开发.设计.学习.生活.爱捣鼓的web前后端工程师~ 本文的重点是在之前文章提到创建的centos基础上继续搭建DLNA媒体服务.由于centos的系统是从零开始初步安 ...
- linux搭建dlna媒体服务器,[ubuntu]dlna平台搭建(在家里,寝室搭建自己的影音平台)...
0.家里,寝室搭建自己的影音学习平台 之前下载了很多国内外的公开课和ESL podcast音频,一直放在移动硬盘中睡觉,最近搞了块小平板,于是乎想到在寝室软路由ubuntu系统上搭建了搭建个NAS,当 ...
- 同网络的计算机能共享音箱吗,2019年PC“老爷机”局域网内DLNA共享音乐到小度智能音箱全记录...
2019年PC"老爷机"局域网内DLNA共享音乐到小度智能音箱全记录 2019-10-07 11:34:17 18点赞 72收藏 7评论 创作立场声明:非IT领域从业人员,不足之处 ...
- 在实际项目中,如何选择合适的机器学习模型?
https://blog.csdn.net/gitchat/article/details/78913235 本文来自作者 chen_h 在 GitChat 上分享 「在实际项目中,如何选择合适的机器 ...
- Jenkins 与 GitLab 的自动化构建之旅
本文来自作者 墨雪卿 在 GitChat 上分享 「Jenkins 与 GitLab 的自动化构建之旅」,「阅读原文」查看交流实录. 「文末高能」 上一篇:<Git 企业开发者教程> 1. ...
- Java 线上问题排查思路与工具使用
本文来自作者 蓬蒿 在 GitChat 上分享 「Java 线上问题排查思路与工具使用」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 一.前言 Java 语言是当前互联网应用最为广泛的语 ...
- 缓存为王:老码农眼中的分布式缓存
本文来自作者 老曹 在 GitChat 上分享 「缓存为王:老码农眼中的分布式缓存」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 世界是相似的,在商业的世界中,有一句经典语录叫 &quo ...
- 成为跨领域的「解决方案架构师」需要什么素养?
本文来自作者 凯哥 在 GitChat 上分享 「成为跨领域的"解决方案架构师"需要什么素养?」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 跨领域解决方案架构师的养 ...
最新文章
- 算法-----------计算二叉树的最大深度
- 关于java.math.BigDecimal的操作(亲测)
- lindex.php,Redis学习笔记:命令
- [coursera] [design] Hangman
- 鸿蒙系统天气主题,墨迹天气携手鸿蒙系统 以精细化气象服务助力全场景生态建设...
- linux 检查ntp版本,查看linux安装ntp服务器配置
- 微信小游戏Laya引擎声音Bug的解决方案
- 2019年下半年1+X 证书 Web 前端开发初级理论考试题目原题+答案(超详细分析)
- 最新校招笔试面试六十题
- linux有趣的命令播放电影,常用的Linux命令片段
- 上海翼长宽(长城-电信合作宽带)更改桥接pppoe拨号
- 听说你还不知道vip代表什么?
- Unreal Property System (Reflection) 虚幻属性系统(反射)
- 8 月最新编程语言排行榜
- maven 安装jar 及 下载jar地址
- CF31D Chocolate 解题报告 *
- 互联网网红经济从未消散,它只是影响力越来越低
- android微信分享走小程序流程,教你怎么把微信小程序分享到朋友圈
- UMeditor在线web编辑器 -- python版
- 淮海工学院linux实验二文件IO操作,淮海工学院计算机科学系
热门文章
- Progressive Domain Adaptation from Source Pre-trained Model
- Win7任务管理器进程一直在跳动选中不了的处理方法
- windows系统扩展C盘的工具推荐(解决了C盘和压缩卷不相邻无法扩展C盘问题)
- 但行好事,莫问前程。
- table.render 中 cols 属性 【【问题】】
- 华为移动应用引擎安装第三方apk教程
- 泰拉瑞亚服务器config修改,《泰拉瑞亚》游戏配置怎么修改 游戏配置修改办法推荐...
- CGCS2000/WGS84/ITRF关系
- Java并发编程学习篇3_读写锁ReadWriteLock、阻塞队列BlockingQueue、同步队列SynchronousQueue、线程池(三大方法、七大参数、四种拒绝策略、原生方式创建线程池)
- html中form表单的使用方法和介绍