Meneruskan audio seperti X di SSH

27

Meskipun dimungkinkan untuk menggunakan aplikasi X dari jarak jauh dengan menggunakan -X switch dalam ssh, suara sedang diputar hanya di speaker mesin jarak jauh. Sebagai contoh jika saya melihat film dalam VLC / Totem hanya video yang terlihat dan saya tidak dapat mendengar audio. Apakah ada cara untuk meneruskan audio juga? [tanpa menggali melalui pengaturan Pulse-audio, maksud saya; Seperti bagaimana ssh memahami penerusan X dengan sendirinya.]

Saya telah mencoba ini hanya di Ubuntu (dalam berbagai versi Ubuntu dari 9,10 hingga 10.10), jika itu membantu.

Akilan
sumber

Jawaban:

30

Pertama, jalankan paprefs, buka Server Jaringan dan centang Aktifkan akses jaringan ke perangkat suara lokal . Ini akan memuat "module-native-protocol-tcp" di PulseAudio.

Anda sekarang dapat mengakses server PulseAudio dengan beberapa cara:

Teruskan secara manual koneksi TCP melalui SSH

  1. Gunakan pax11publishuntuk menemukan port pendengar PulseAudio Anda (biasanya 4713);
  2. Sambungkan ke komputer lain dengan ssh -R 24713:localhost:4713(port jauh '24713' dipilih secara sewenang-wenang);
  3. Salin cookie autentikasi Anda (~ / .config / pulse / cookie) ke komputer itu;
  4. Akhirnya jalankan export PULSE_SERVER="tcp:localhost:24713"dan uji dengan pactl info.

Gunakan koneksi langsung otomatis dengan penemuan berbasis X11

Setiap kali Anda SSH dengan penerusan X11 diaktifkan, program PulseAudio menggunakan X11 untuk menemukan server suara Anda (gunakan pax11publishatau xprop -root PULSE_SERVERlihat sendiri). Mereka akan mencoba membuat koneksi langsung (non-SSH, tidak terenkripsi) ke komputer Anda untuk streaming audio.

Gunakan koneksi langsung otomatis dengan penemuan DNS-SD

Jika Anda menginstal avahi-daemon dan pulseaudio-zeroconf, Anda dapat mengaktifkan "Izinkan mesin lain menemukan perangkat lokal". Ini akan memuat "module-zeroconf-publish".

Komputer lain, dengan opsi "Jadikan perangkat jaringan yang dapat ditemukan tersedia secara lokal" diaktifkan (module-zeroconf-discover), akan secara otomatis mendaftar output (sink) yang diekspor komputer Anda. Mereka akan menggunakan koneksi langsung (tidak terenkripsi) untuk streaming audio.

Metode ini juga membutuhkan ~ / .config / pulse / cookie agar identik di seluruh host.

grawity
sumber
2
Di mana ~/.pulse_cookieada? Di remote atau lokal?
HSchmale
2
Kedua. Ini dihasilkan oleh daemon pulseaudio, lalu baca dengan menghubungkan klien (seperti kata sandi), jadi Anda ingin menyalinnya dari server ke klien. (Perhatikan bahwa jalan tersebut telah diubah menjadi ~/.config/pulse/cookie; jika yang satu tidak berfungsi, coba yang lain.)
grawity
2
Perhatikan bahwa setelah mengubah pengaturan di paprefs, Anda harus memulai ulang secara manual setidaknya pulseaudio. Dalam kasus saya, setelah menghabiskan berjam-jam mencoba mencari tahu apa yang salah, saya hanya reboot, dan kemudian semuanya berhasil :).
crazy2be
Ini berhasil untuk saya, terima kasih. Menggunakan pi raspberry jarak jauh dengan rtl-sdr, maka ingin mendapatkan audio lebih dari ssh bekerja.
Paul M