找回密码
 立即注册
搜索
查看: 2010|回复: 10

[网络] 有没有结合虚拟声卡的DLNA软件?【解决了】

[复制链接]
     
发表于 2018-12-30 12:25 | 显示全部楼层 |阅读模式
本帖最后由 win8 于 2018-12-31 17:22 编辑

毕竟蓝牙的信号比不了wifi,也没办法跑网线,所以dlna传声音要比bt靠谱多了
但似乎dlna传媒体流到播放设备是一个文件一个文件 传的,首先要发送端的软件支持dlna,其次要接收端支持解码方式,最后还有播放完一个节目下一个节目可能不会自动播放(我刚用android网易云私人电台试的)
所以我在想有没有和虚拟声卡结合的dlna软件?
1. 我的windows播放器解码输出到虚拟声卡,虚拟声卡实时编码为流媒体,通过这个软件再发送到目标设备上。
2. android有没有能丢在后台的dlna接收软件?




解决了
0.如果需要同时推视频和音频,可以使用nginx-rtmp-module + obs实现推流。但是由于m3u8不是所有设备都能很好 兼容,所以并不是很好用。和dlna直接推屏幕相比,卡顿消失了但是延时很明显(毕竟是切片录制再推送嘛)
1. windows使用butt(https://sourceforge.net/projects/butt/)和icecast(https://icecast.org/download/) 完成本地音频推流和服务器。不需要做复杂操作。
特别地:icecast做如下配置修改,可以使用192.168.xx.x:8000/stream.mp3作为动态输出的文件。

然后使用dlna推送软件推送这个地址,就可以让设备远程播放本机声卡的内容了

  1.     <listen-socket>
  2.         <port>8000</port>
  3.         <shoutcast-mount>/stream.mp3</shoutcast-mount>
  4.     </listen-socket>
复制代码
2.android端推dlna/itv/miracast的软件,强烈推荐web video caster
android端接收dlna/airplay可以使用 airpin,功能强大但是服务有时会..崩溃

附图butt音频源采集、icecast推流、wmp从网络播放音频流
草图.png






回复

使用道具 举报

     
发表于 2018-12-30 13:45 | 显示全部楼层
DLNA是可以自动切换下一曲播放的,得先下载完毕的才行,不能一边上传给DLNA设备播放,一边又读取流媒体(这样估计需要双路网络),所以私人FM这种不能预下载的这种就不行。换个解决思路的话,可以用每日推荐来替代私人FM,当然这就得先下载完所有曲目了。

其实如果改用Airplay就不会存在这个问题
回复

使用道具 举报

     
 楼主| 发表于 2018-12-30 14:04 来自手机 | 显示全部楼层
紫苑 发表于 2018-12-30 13:45
DLNA是可以自动切换下一曲播放的,得先下载完毕的才行,不能一边上传给DLNA设备播放,一边又读取流媒体(这 ...

所谓流媒体就是没有下载完就能播放的啊。否则dlna放视频岂不炸了。我的想法是虚拟声卡重新编码  把接受的信号模拟成一个超长的流媒体文件
回复

使用道具 举报

头像被屏蔽
发表于 2018-12-30 15:59 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2018-12-30 16:18 | 显示全部楼层
win8 发表于 2018-12-30 14:04
所谓流媒体就是没有下载完就能播放的啊。否则dlna放视频岂不炸了。我的想法是虚拟声卡重新编码  把接受的 ...

DLNA播放文件是从服务终端上读取的,如果在本地就从PC读取,如果在网络那就是读取网络地址,二者选一。你现在你的服务终端设备虽然是PC,PC上没有保存你要读取的文件,PC还要从网易那里读取,所以走不通了。

网易云——PC——DLNA设备,要么在PC本地上保存好文件再推给DLNA设备,要么就是直接把网络地址给DLNA设备读取而跳过PC,前者上面已经说过,后者的话如果你的DLNA设备是安卓平台,也可以借助软件在安卓上直接获取地址。(网易云音乐的DLNA功能并不是把地址直接发送到DLNA那边,所以是前者)。

你的想法可以拿OBS这类推流软件+流媒体服务器一试,反正我是觉得这种二次编码很蛋疼
回复

使用道具 举报

     
 楼主| 发表于 2018-12-30 17:59 | 显示全部楼层
紫苑 发表于 2018-12-30 16:18
DLNA播放文件是从服务终端上读取的,如果在本地就从PC读取,如果在网络那就是读取网络地址,二者选一。你 ...

谢谢你的思路,初步实现了。
我用obs推到b站,从b站拿到m3u8,又用了一个软件把m3u8推到dlna客户端。

缺陷:
1. 需要两次转码,并且需要跑到互联网转一圈
2. 我忽然想起来android后边的版本不能直接内录,也就是说必须从android的speaker发声再从mic传回来。不过如果本身是从网页看的,或者能拿到m3u8,就可以避免这个问题了。

回复

使用道具 举报

     
 楼主| 发表于 2018-12-30 18:01 | 显示全部楼层
Ichthys 发表于 2018-12-30 15:59
想了下有nas自己搭个volumio应该能解决你的需求

还是有点差别 nas和声卡还是有差别的。
比如我在用网页看视频,你的法子就没办法处理了
回复

使用道具 举报

头像被屏蔽
发表于 2018-12-30 20:40 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
 楼主| 发表于 2018-12-31 14:44 | 显示全部楼层
更新下情况。
本地搭了个服务器,nginx-rtmp-module + obs实现推流。

但是我更想弄这种的(这是一个英文在线电台),但是不知道这是什么技术:


似乎把音频流变成了一个无线大的mp3文件,但是不管什么时间打开,都从当前时间开始播放。

回复

使用道具 举报

     
发表于 2018-12-31 14:57 来自手机 | 显示全部楼层
win8 发表于 2018-12-31 14:44
更新下情况。
本地搭了个服务器,nginx-rtmp-module + obs实现推流。

mp3这个比较复杂,和http flv直播是一样的。基本上没有拿来就能用的软件。
你这个需求,不如用soundwire来实现。

反向的话,Android端倒是有个bubble dlna,配合一个xposed插件可以捕获Android音频,然后通过dlna流推去别的设备。

— from HUAWEI DUK-AL20, Android 9 of S1 Next Goose v2.1.0-play
回复

使用道具 举报

发表于 2018-12-31 15:07 | 显示全部楼层
如果不是必须要走dlna,只是需要音频wifi到猴机的话,可以用vban:
https://www.vb-audio.com/Voicemeeter/vban.htm
限制是猴机端只能接收,lite免费版只能到stereo 16bit/44.1kHz,5刀解锁后可以支持到8通道24bit/96kHz
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-17 01:45 , Processed in 0.030797 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表