通过 mpd 流式传输系统音频

Pro*_*sch 4 streaming http pulseaudio mpd

我使用 mpd 通过 .mpd 将音乐流式传输到我的手机(连接到 Hi-Fi)http

然而,这只适用于我的 mpd 数据库中的歌曲。我经常想在我的浏览器中播放内容,也希望通过流式传输mpd

有没有办法将pulse audio输出路由到mpd而不是扬声器?

all*_*tic 5

mpd 不接受pulseaudio 输入源,因此没有通过mpd直接路由pulseaudio 的方法。

不过,你想要完成的事情还是可以的,借助 gstreamer 和一些聪明才智。几年前我完成了这个。

我编写了这个程序,它实现了该图的“Gstreamer 管道脚本”组件:

流程图 http://tiyukquellmalz.org/sean/stream.svg

总结一下图表,这是发生了什么:

  • mpd 从磁盘读取音乐文件,对它们进行解码,然后将它们“播放”到module-null-sinkpulseaudio 类型的音频输出中。
  • 你想在你的计算机上运行的任何其他输出声音的程序——Adobe Flash、来自 gnome shell 的哔哔声、网络浏览器等也会将它们的音频输出发送到module-null-sinkpulseaudio(它已成为系统的默认音频设备) .
  • module-null-sink输出具有.monitor源,它可以让你把多数民众赞成推到一个空汇音“捕获”它回来,就好像它是一个输入设备(如麦克风)。
  • Pulseaudio 可以在整个计算机上的所有音频程序(包括 mpd、Web 浏览器和其他所有使用 pulseaudio 的程序)中即时执行软件混音。
  • tribblify我编写的程序使用 GStreamer 来捕获 pulseaudio null sink 监视器音频,其中包含 mpd 以及系统上任何其他程序的混合音频;执行 MP3 编码;然后将其流式传输到shoutcast / icecast 服务器。tribblify本质上变成了“流媒体源”。
  • tribblify程序会自动检测 mpd 何时更改正在播放的音频的标签并将这些标签向下推送到 Shotcast 流。
  • icecast 或shoutcast 服务器可以在同一台计算机上或不同的计算机上,将结果流式传输到所有连接的客户端。