在SSH中转发X之类的音频


27

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

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

Answers:


30

首先,运行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在主机之间相同。


2
哪里~/.pulse_cookie存在?在远程或本地?
HSchmale 2015年

2
都。它由pulseaudio守护程序生成,然后通过连接客户端(如密码)读取,因此您需要将其从服务器复制到客户端。(注意路径已被更改为~/.config/pulse/cookie;如果一个不起作用,请尝试另一个。)
grawity 2015年

2
请注意,更改paprefs中的设置后,必须至少手动重启pulseaudio。在我的情况下,花了几个小时试图弄清楚什么是错的,我只是重新启动,然后一切正常:)。
crazy2be 2016年

这对我有用,谢谢。使用带有rtl-sdr的远程覆盆子pi,因此希望通过ssh工作获得音频。
保罗M
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.