Пересилання аудіо типу X у SSH


27

Хоча можна використовувати програми X віддалено, використовуючи перемикач -X в ssh, звук відтворюється лише в динаміку віддаленої машини. Наприклад, якщо я переглядаю фільм у VLC / Totem, видно лише відео, і я не чую звук. Чи є спосіб переслати аудіо також? [я не маю на увазі налаштування імпульсного звуку; Як, наприклад, ssh розуміє переадресацію X самостійно.]

Я спробував це лише в Ubuntu (у різних версіях Ubuntu з 9.10 по 10.10), якщо це допомагає.

Відповіді:


30

Спочатку запустіть paprefs, перейдіть до мережевого сервера та встановіть прапорець Увімкнути мережевий доступ до локальних звукових пристроїв . Це завантажить "module-native-Protocol-tcp" в PulseAudio.

Тепер ви можете отримати доступ до сервера PulseAudio кількома способами:

Ручне пересилання TCP-з'єднання через SSH

  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-відкриттям

Щоразу, коли ви підтримуєте SSH з включеною переадресацією X11, програми PulseAudio використовують X11 для відкриття вашого звукового сервера (використовуйте pax11publishабо xprop -root PULSE_SERVERбачите для себе). Вони спробують встановити пряме (не-SSH, незашифроване) з'єднання з вашим комп’ютером для передачі аудіо.

Використовуйте автоматичне пряме з'єднання з виявленням DNS-SD

Якщо у вас встановлені avahi-daemon та pulseaudio-zeroconf, ви можете активувати "Дозволити іншим машинам відкривати локальні пристрої". Це завантажить "модуль-zeroconf-опублікувати".

Інші комп’ютери, з увімкненою опцією "Зробити доступні для відкриття мережі мережеві пристрої" (модуль-zeroconf-Discover), автоматично перераховують результати (раковини), які експортує ваш комп'ютер. Вони використовуватимуть пряме (незашифроване) з'єднання для передачі аудіо.

Цей метод також вимагає, щоб ~ / .config / pulse / cookie було ідентичним для хостів.


2
Де ~/.pulse_cookieіснує? На віддаленому або локальному?
HSchmale

2
І те й інше. Він генерується демоном pulseaudio, а потім зчитується підключенням клієнтів (наприклад, паролем), тому ви хочете скопіювати його з сервера до клієнтів. (Зверніть увагу, що шлях був змінений ~/.config/pulse/cookie; якщо один не працює, спробуйте інший.)
grawity

2
Зауважте, що після зміни налаштувань у папрефах ви повинні вручну перезапустити принаймні pulseaudio. У моєму випадку, витративши години, намагаючись з’ясувати, що не так, я просто перезавантажився, і тоді все спрацювало :).
crazy2be

Це працювало для мене, дякую. Використовуючи віддалений малиновий пі з rtl-sdr, отже, бажаючи, щоб звук над ssh працював.
Павло М
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.