Chuyển tiếp âm thanh như X trong SSH


27

Mặc dù có thể sử dụng các ứng dụng X từ xa bằng cách sử dụng công tắc -X trong ssh, nhưng âm thanh chỉ được phát trong loa của máy từ xa. Ví dụ: nếu tôi xem phim bằng VLC / Totem thì chỉ có video và tôi không thể nghe thấy âm thanh. Có cách nào để chuyển tiếp âm thanh quá? [không cần đào qua thiết lập của Pulse-audio, ý tôi là; Giống như cách ssh hiểu X chuyển tiếp của chính nó.]

Tôi đã thử điều này chỉ trong Ubuntu (trong các phiên bản Ubuntu khác nhau từ 9.10 đến 10.10), nếu điều đó có ích.

Câu trả lời:


30

Đầu tiên, chạy paprefs, đi đến Máy chủ mạng và kiểm tra Cho phép truy cập mạng vào các thiết bị âm thanh cục bộ . Điều này sẽ tải "mô-đun-giao thức-tcp" trong PulseAudio.

Bây giờ bạn có thể truy cập máy chủ PulseAudio theo nhiều cách:

Chuyển tiếp thủ công kết nối TCP qua SSH

  1. Sử dụng pax11publishđể khám phá cổng nghe PulseAudio của bạn (thường là 4713);
  2. Kết nối với một máy tính khác với ssh -R 24713:localhost:4713(cổng từ xa '24713' được chọn tùy ý);
  3. Sao chép cookie xác thực của bạn (~ / .config / Pulse / cookie) vào máy tính đó;
  4. Cuối cùng chạy export PULSE_SERVER="tcp:localhost:24713"và kiểm tra với pactl info.

Sử dụng kết nối trực tiếp tự động với khám phá dựa trên X11

Bất cứ khi nào bạn kích hoạt tính năng chuyển tiếp SSH với X11, các chương trình PulseAudio sẽ sử dụng X11 để khám phá máy chủ âm thanh của bạn (sử dụng pax11publishhoặc xprop -root PULSE_SERVERđể tự mình xem). Họ sẽ cố gắng thiết lập kết nối trực tiếp (không phải SSH, không được mã hóa) đến máy tính của bạn để truyền phát âm thanh.

Sử dụng kết nối trực tiếp tự động với khám phá DNS-SD

Nếu bạn đã cài đặt avahi-daemon và pulseaudio-zeroconf, bạn có thể kích hoạt "Cho phép các máy khác khám phá các thiết bị cục bộ". Điều này sẽ tải "mô-đun-zeroconf-xuất bản".

Các máy tính khác, với tùy chọn "Cung cấp các thiết bị mạng có thể phát hiện được cục bộ" được kích hoạt (module-zeroconf-Discover), sẽ tự động liệt kê các đầu ra (chìm) mà máy tính của bạn xuất ra. Họ sẽ sử dụng kết nối trực tiếp (không được mã hóa) để truyền phát âm thanh.

Phương pháp này cũng yêu cầu ~ / .config / Pulse / cookie giống hệt nhau trên các máy chủ.


2
Nơi nào ~/.pulse_cookietồn tại? Trên điều khiển từ xa hay cục bộ?
HSchmale

2
Cả hai. Nó được tạo bởi trình nền pulseaudio, sau đó đọc bằng cách kết nối máy khách (như mật khẩu), vì vậy bạn sẽ muốn sao chép nó từ máy chủ sang máy khách. (Lưu ý rằng đường dẫn đã được thay đổi thành ~/.config/pulse/cookie; nếu một đường dẫn không hoạt động, hãy thử đường dẫn khác.)
grawity

2
Lưu ý rằng sau khi thay đổi cài đặt trong paprefs, bạn phải khởi động lại thủ công ít nhất là pulseaudio. Trong trường hợp của tôi, sau khi dành hàng giờ cố gắng để tìm ra những gì sai, tôi chỉ cần khởi động lại, và sau đó mọi thứ đã hoạt động :).
crazy2be

Điều này làm việc cho tôi, cảm ơn. Sử dụng một raspberry pi từ xa với rtl-sdr, do đó muốn có được âm thanh qua ssh làm việc.
Paul M
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.