Звук через соединение SSH в MobaXTerm

Я пытаюсь переслать WAV-звук через соединение ssh с сервера linux на локальный ноутбук Windows. I ssh через MobaXTerm и переадресация X11 включена.

Цель состоит в том, чтобы выводить звук из программы, работающей в ящике linux, на моем местном динамике. На данный момент воспроизведения звука будет достаточно.

$ paplay sound.wav не вызывает ошибок.

Pulse настроен с помощью paprefs, чтобы найти локальные колонки … но это не так.

WAV-файл отлично воспроизводится на локальном компьютере, устанавливая каталог, а затем воспроизводя его с помощью встроенного в Windows игрока.

Есть ли добавление в MobaXTerm для поддержки пересылки аудио? Как захватить перенаправленный звук на моей машине Windows, чтобы исправить то, что я воспринимаю, в настоящее время является рабочим, но не полностью выполненным решением?

Сам SSH не имеет возможности для передачи графики или звука. Протокол X11 готов к работе в сети¹, что позволяет очень легко перенаправлять приложения GUI по сети: все, что нужно сделать SSH, – это перенаправить сетевое соединение. Сторона, на которой отображаются приложения, должна иметь сервер X11; помимо того, что он является клиентом SSH, MobaXterm включает как эмулятор терминала, так и сервер X11.

Звук не работает таким образом, но вы можете заставить его работать таким образом, используя звуковой сервер] ( http://en.wikipedia.org/wiki/Sound_server ). Это означает указание звуковому приложению использовать сетевой протокол, инструктируя SSH пересылать сетевое соединение и иметь приложение, которое воспроизводит звуки, полученные по сетевому соединению на стороне клиента. MobaXterm не включает в себя часть воспроизведения звука, а сама Windows тоже не делает (конечно, нет), поэтому вам нужно будет установить ее.

paplay разговаривает с звуковым сервером PulseAudio , и вы можете перенаправить это соединение через SSH. На удаленной машине запустите

 pacmd load-module module-native-protocol-tcp 

(возможно, он уже включен в систему). Вы также можете сделать это через paprefs. Теперь у вас должен быть файл с именем ~/.pulse-cookie или ~/.config/pulse/cookie зависимости от вашего дистрибутива. Скопируйте этот файл на компьютер Windows.

С помощью соединения SSH переместите порт на порт 4713 на сервере, скажем, 4714. (Вы можете выбрать 4713 с обеих сторон, а на стороне сервера – порт, в котором PulseAudio прослушивает, а по умолчанию – 4713.) (С командной строки OpenSSH, вы должны сделать ssh -L 4714:localhost:4713 ).

В Windows установите порт PulseAudio . Я не знаю, как они работают, поскольку я никогда не использовал их; вам нужно указать их в файл cookie и на перенаправленное соединение (порт 4714).

См. Также официальные инструкции (не все, что полезно) и сообщение о грамотности на Super User, в котором также объясняется, как передавать соединение PulseAudio без использования SSH (это означает, что это меньше латентности, но небезопасно и может быть заблокировано брандмауэром).

¹ Под этим я подразумеваю, что он использует протокол, который является протоколом сетевой связи в первую очередь.