如何设置到 DLNA 兼容设备的实时音频流?

Tak*_*kat 58 upnp pulseaudio dlna streaming rygel

有没有办法将声卡的实时输出从我们的 12.04.1 LTS amd64 桌面流式传输到我们网络中符合 DLNA 标准的外部设备?使用 Rygel、miniDLNA 和 uShare 在共享目录中选择媒体内容总是没问题的——但到目前为止,我们完全无法通过 DLNA 将实时音频流传输到客户端。

Pulseaudio 声称拥有一个 DLNA/UPnP 媒体服务器,与 Rygel 一起应该可以做到这一点。但是我们无法让它运行。

我们遵循了live.gnome.org 中概述的步骤,这里的答案,以及另一个类似的指南


12.04 LTS 中,我们可以在 DLNA 客户端中选择本地音频设备或我们的 GST-Launch 流,但 Rygel 显示以下消息并且客户端声明它已到达播放列表的末尾:

(rygel:7380): Rygel-WARNING **: rygel-http-request.vala:97: Invalid seek request
Run Code Online (Sandbox Code Playgroud)

无法在客户端上收听实时音频流。


只有在发行版升级到14.04 LTS 之后,我们才能从下面的答案中很好地概述的设置中选择我们的 DLNA 渲染器上的实时流。尽管如此,我们启动 rygel仍需要选择一个已建立的流并且无法将新流推送到我们的 UPnP 设备。未传输音频元数据。


是否有其他替代方法可以将我们声卡的音频作为实时流发送到 DLNA 客户端?

Mas*_*imo 68

Pulseaudio-DLNA

我创建了一个小服务器,它会发现您网络中的所有 upnp 渲染器,并将它们作为接收器添加到脉冲音频中。因此,您可以通过 pavucontrol 控制每个应用程序在您的 upnp 设备上播放。

这是我在 linux 下处理 upnp 设备时一直想要的那种舒适感。

该应用程序可以从源代码或可从 git 下载的DEB 包中安装,或者在我们将项目的官方ppa:qos/pulseaudio-dlna 添加到我们的源代码之后:

sudo apt-get update && sudo apt-get install pulseaudio-dlna
Run Code Online (Sandbox Code Playgroud)

然后我们使用以下选项从命令行运行pulseaudio-dlna:

pulseaudio-dlna [--host <host>] [--port <port>] [--encoder <encoder>] [--renderer-urls <urls>] [--debug]
pulseaudio-dlna [-h | --help | --version]
Run Code Online (Sandbox Code Playgroud)

另请参阅pulseaudio-dlna“关于”了解更多信息。

当存在 DLNA 渲染器时,我们可以从声音菜单中选择它作为输出接收器:

在此处输入图片说明

  • 很棒的应用程序 - 谢谢!在我的设备上运行良好,包括三星智能电视 (UE40ES6100)。请注意:我们还需要`python-requests`作为依赖项,我们可以从默认音频控件中选择渲染器-无需安装pavucontrol。 (3认同)
  • 很好的解决方案。谢谢。但我有一个问题:有几秒钟的播放延迟(在 VLC 中按下暂停后 10 秒)。这是 DLNA 的“功能”还是有什么办法可以减少它?所以 DLNA 对视频播放或游戏没有意义?:( (3认同)
  • 延迟来自填充 HTTP 缓冲区。如果您的连接出现问题(wifi 弱等),它会保持流播放。如果您想减少延迟,请使用需要大量带宽 (_wav_) 的编解码器来更快地填充该缓冲区。电缆连接总是有帮助的。否则,这非常特定于您的制造商固件实现。例如,我与 Cocy 有大约 1 秒的延迟。Sonos Play 1 带 wav:1 秒,带 mp3:5 秒。全部通过电缆连接。但你不会完全摆脱它。主要用途是音乐和有声读物。一切不需要同步。 (2认同)

jum*_*bli 8

Pavucontrol 是这个拼图游戏中缺少的项目!我还正确设置了所有内容,并且外部设备(LG 电视)显示正在播放声音,但我没有听到任何声音。今天我安装了 pavucontrol,当我打开它时,我发现了通过 DLNA 服务器引导声音的选项。DLNA 选项仅在播放器有声音输出到pulseaudio 时显示。 在此处输入图片说明