像 SSH 中的 X 一样转发音频

像 SSH 中的 X 一样转发音频

虽然可以通过 ssh 中的 -X 开关远程使用 X 应用程序,但声音只会在远程机器的扬声器中播放。例如,如果我在 VLC/Totem 中观看电影,则只能看到视频,听不到音频。有没有办法转发音频?[无需深入了解 Pulse-audio 的设置,我的意思是;就像 ssh 如何自行理解 X 转发一样。]

我只在 Ubuntu 上尝试过这个(从 9.10 到 10.10 的各个 Ubuntu 版本),如果有帮助的话。

答案1

首先,运行paprefs,转到网络服务器并检查启用本地声音设备的网络访问. 这将在 PulseAudio 中加载“module-native-protocol-tcp”。

您现在可以通过多种方式访问​​ PulseAudio 服务器:

通过 SSH 手动转发 TCP 连接

  1. 用于pax11publish发现您的 PulseAudio 监听端口(通常为 4713);
  2. 连接到另一台计算机ssh -R 24713:localhost:4713(远程端口‘24713’是任意选择的);
  3. 将您的身份验证 cookie(~/.config/pulse/cookie)复制到该计算机;
  4. 最后运行export PULSE_SERVER="tcp:localhost:24713"并测试pactl info

使用基于 X11 的发现进行自动直接连接

只要您启用 X11 转发功能,使用 SSH 时,PulseAudio 程序就会使用 X11 来发现您的声音服务器(使用pax11publishxprop -root PULSE_SERVER亲自查看)。它们会尝试建立直接的(非 SSH,未加密)连接到您的计算机以进行音频流。

使用 DNS-SD 发现的自动直接连接

如果您安装了 avahi-daemon 和 pulseaudio-zeroconf,您可以激活“允许其他机器发现本地设备”。这将加载“module-zeroconf-publish”。

其他计算机在启用“使可发现的网络设备在本地可用”选项 (module-zeroconf-discover) 的情况下,将自动列出您的计算机导出的输出(接收器)。它们将使用直接的(未加密)音频流连接。

此方法还要求 ~/.config/pulse/cookie 在各个主机之间相同。

相关内容