官方提供的软件包 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”

防火墙

  1. 根据 --port 指定端口 监听 ipv4 tcp 默认 49152
  2. 监听 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音箱相关推荐

  1. 从零开始,搭建 AI 音箱 Alexa 语音服务

    本文来自作者 Mike 在 GitChat 上分享 「从零开始,搭建 AI 音箱 Alexa 语音服务」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 一.概述 生活场景的引入: 物联网的 ...

  2. DLNA 和如何在xp win7 搭建 DLNA服务器

    1. DLNA 介绍 目录: 一.DNLA的建立 二.DLNA的成员 三.DLNA标准的制定 四.DLNA的设备 五.DLNA的架构 六.云时代的数字家庭(待填坑) 扩展阅读I: UPnP的工作过程- ...

  3. 7 centos 查看程序文件数量_「动手打造家庭媒体网络平台」安装篇-centos搭建DLNA媒体服务...

    大家好,我是路程lucky,热爱开发.设计.学习.生活.爱捣鼓的web前后端工程师~ 本文的重点是在之前文章提到创建的centos基础上继续搭建DLNA媒体服务.由于centos的系统是从零开始初步安 ...

  4. linux搭建dlna媒体服务器,[ubuntu]dlna平台搭建(在家里,寝室搭建自己的影音平台)...

    0.家里,寝室搭建自己的影音学习平台 之前下载了很多国内外的公开课和ESL podcast音频,一直放在移动硬盘中睡觉,最近搞了块小平板,于是乎想到在寝室软路由ubuntu系统上搭建了搭建个NAS,当 ...

  5. 同网络的计算机能共享音箱吗,2019年PC“老爷机”局域网内DLNA共享音乐到小度智能音箱全记录...

    2019年PC"老爷机"局域网内DLNA共享音乐到小度智能音箱全记录 2019-10-07 11:34:17 18点赞 72收藏 7评论 创作立场声明:非IT领域从业人员,不足之处 ...

  6. 在实际项目中,如何选择合适的机器学习模型?

    https://blog.csdn.net/gitchat/article/details/78913235 本文来自作者 chen_h 在 GitChat 上分享 「在实际项目中,如何选择合适的机器 ...

  7. Jenkins 与 GitLab 的自动化构建之旅

    本文来自作者 墨雪卿 在 GitChat 上分享 「Jenkins 与 GitLab 的自动化构建之旅」,「阅读原文」查看交流实录. 「文末高能」 上一篇:<Git 企业开发者教程> 1. ...

  8. Java 线上问题排查思路与工具使用

    本文来自作者 蓬蒿 在 GitChat 上分享 「Java 线上问题排查思路与工具使用」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 一.前言 Java 语言是当前互联网应用最为广泛的语 ...

  9. 缓存为王:老码农眼中的分布式缓存

    本文来自作者 老曹 在 GitChat 上分享 「缓存为王:老码农眼中的分布式缓存」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 世界是相似的,在商业的世界中,有一句经典语录叫 &quo ...

  10. 成为跨领域的「解决方案架构师」需要什么素养?

    本文来自作者 凯哥 在 GitChat 上分享 「成为跨领域的"解决方案架构师"需要什么素养?」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 跨领域解决方案架构师的养 ...

最新文章

  1. 算法-----------计算二叉树的最大深度
  2. 关于java.math.BigDecimal的操作(亲测)
  3. lindex.php,Redis学习笔记:命令
  4. [coursera] [design] Hangman
  5. 鸿蒙系统天气主题,墨迹天气携手鸿蒙系统 以精细化气象服务助力全场景生态建设...
  6. linux 检查ntp版本,查看linux安装ntp服务器配置
  7. 微信小游戏Laya引擎声音Bug的解决方案
  8. 2019年下半年1+X 证书 Web 前端开发初级理论考试题目原题+答案(超详细分析)
  9. 最新校招笔试面试六十题
  10. linux有趣的命令播放电影,常用的Linux命令片段
  11. 上海翼长宽(长城-电信合作宽带)更改桥接pppoe拨号
  12. 听说你还不知道vip代表什么?
  13. Unreal Property System (Reflection) 虚幻属性系统(反射)
  14. 8 月最新编程语言排行榜
  15. maven 安装jar 及 下载jar地址
  16. CF31D Chocolate 解题报告 *
  17. 互联网网红经济从未消散,它只是影响力越来越低
  18. android微信分享走小程序流程,教你怎么把微信小程序分享到朋友圈
  19. UMeditor在线web编辑器 -- python版
  20. 淮海工学院linux实验二文件IO操作,淮海工学院计算机科学系

热门文章

  1. Progressive Domain Adaptation from Source Pre-trained Model
  2. Win7任务管理器进程一直在跳动选中不了的处理方法
  3. windows系统扩展C盘的工具推荐(解决了C盘和压缩卷不相邻无法扩展C盘问题)
  4. 但行好事,莫问前程。
  5. table.render 中 cols 属性 【【问题】】
  6. 华为移动应用引擎安装第三方apk教程
  7. 泰拉瑞亚服务器config修改,《泰拉瑞亚》游戏配置怎么修改 游戏配置修改办法推荐...
  8. CGCS2000/WGS84/ITRF关系
  9. Java并发编程学习篇3_读写锁ReadWriteLock、阻塞队列BlockingQueue、同步队列SynchronousQueue、线程池(三大方法、七大参数、四种拒绝策略、原生方式创建线程池)
  10. html中form表单的使用方法和介绍