按需将音频流式传输到另一台机器(Linux)

按需将音频流式传输到另一台机器(Linux)

tl;dr 如何通过网络在两台 Linux 机器之间可靠地按需传输音频?


您好,有时我想通过家庭音响系统的大扬声器播放笔记本电脑中的某些内容。该系统连接到另一台主要用于观看视频的笔记本电脑。最初,我打算为家庭音响系统购买一个无线接收器,但对我来说,关闭多媒体笔记本电脑并向其传输内容似乎比更改音响系统输入等更简单。

由于两台机器都运行的是最新的 Fedora Linux,我以为这很容易,但结果却并非如此。最初,我尝试使用 PulseAudio 流。它确实有效,但由于多媒体笔记本电脑较旧,并且只有 54mbit 的 wifi 连接到网络,因此声音经常出现故障。此外,我还遇到了一个脉冲音频错误,即配置本地多播广播 PULSE_SINK 实际上会对本地网络造成 DoS(这里)(这里)

因此,我认为我需要一些比脉冲音频创建的原始流更专业的流式传输协议。我看到建议使用 VLC。但我希望只在需要时才能流式传输到远程服务器。这意味着当我将 $PULSE_SINK 设置为其他值时,远程服务器应该播放,否则声音应该像往常一样在本地播放。

我想知道是否有人这样做过 - 创建一个 vlc 监听器,然后创建一个本地 PulseAudio 接收器,如果使用,则将音频发送到那里。否则不要发送任何内容。我知道如何创建一个VLC 监听器但是我对 PulseAudio 不太熟悉,在我对它失去太多了解之前,我希望有人可以告诉我该怎么做,或者至少建议一些可行的方法,这样我就不会设置一些不能按预期安静运行的东西。

我愿意接受非 vlc 解决方案,只要它们不会淹没网络并且音频播放无故障。

谢谢你!

答案1

我个人的点播流媒体音频的方法是使用多普勒它有一个内置的 http 服务器,被设计成一个基于无头音乐数据库的音频应用程序,由数量惊人的客户端软件如果您还想从不在 LAN 上的主机进行访问,则此方法特别有用。

如果出于某种原因你真的想使用 VLC,那么使用 VLC 的 HTTP 或 Telnet 远程接口也是一个选择,尽管这样会多一点开销,客户端软件的多样性也会少一点,这意味着灵活性会降低。我自己的经验仅限于 Android 应用程序“VLC Direct Pro”,但可以找到使用 VLC 的 http 服务器的一般说明这里 大致内容如下:

  1. 要激活 Web 界面,请单击 VLC 中的“工具”菜单并选择“首选项”。单击“显示设置”下的“全部”选项以查看 VLC 的高级设置。在高级设置列表中向下滚动并选择“接口”标题下的主要接口。单击“Web”复选框以启用 HTTP 接口。保存设置并重新启动 VLC。每次启动 VLC 时,Web 服务器都会在后台启动。

  2. 将你的网络浏览器指向以http://localhost:8080/访问 VLC 的网络界面。

  3. 要启用来自其他计算机的连接,请将它们添加到/usr/share/vlc/lua/http/.hosts文件中。如果您正在穿越 NAT 网关,请打开必要的端口。

  4. “VL​​C 2.1.0 简化了访问控制。您可以使用简单的密码来限制对 Web 界面的访问,该密码可在“工具”→“首选项(全部)”→“界面”→“主界面”→“Lua”→“Lua HTTP”→“密码”下设置”。(摘自 VLC 文档)这里)。请记住,这是一个 http 身份验证措施,而不是 https 身份验证措施,因此如果您担心安全性问题,则应考虑将其限制在 LAN/VPN 上。

除了这些选项之外,http 控制功能绝对是一个非常受欢迎的选项,可以在其他媒体播放器中找到,例如 Winamp 或 XBMC(只是我脑海中想到的......列表真的很长),因此您可以选择最适合您的选项。

相关内容