SSH에서 X와 같은 오디오 전달


27

ssh에서 -X 스위치를 사용하여 X 응용 프로그램을 원격으로 사용할 수 있지만 사운드는 원격 시스템의 스피커에서만 재생됩니다. 예를 들어 VLC / Totem에서 영화를 볼 때 비디오 만 표시되고 오디오를들을 수 없습니다. 오디오를 전달하는 방법이 있습니까? [Pulse-audio의 설정을 통하지 않고 내 말은; ssh가 X 포워딩 자체를 이해하는 방식과 같습니다.]

도움이된다면 우분투 (9.10에서 10.10까지 다양한 우분투 버전)에서만 이것을 시도했습니다.

답변:


30

첫째, 실행 paprefs, 이동 네트워크 서버 및 확인 지역 사운드 장치에 대한 네트워크 액세스를 활성화합니다 . PulseAudio에서 "module-native-protocol-tcp"를로드합니다.

이제 몇 가지 방법으로 PulseAudio 서버에 액세스 할 수 있습니다.

SSH를 통해 TCP 연결을 수동으로 전달

  1. pax11publishPulseAudio 리스너 포트 (일반적으로 4713)를 감지하는 데 사용 합니다.
  2. 다른 컴퓨터에 연결하십시오 ssh -R 24713:localhost:4713(원격 포트 '24713'이 임의로 선택됨).
  3. 인증 쿠키 (~ / .config / pulse / cookie)를 해당 컴퓨터에 복사하십시오.
  4. 마지막으로으로 실행 export PULSE_SERVER="tcp:localhost:24713"하고 테스트하십시오 pactl info.

X11 기반 감지와 자동 직접 연결 사용

X11 포워딩이 활성화 된 SSH를 사용할 때마다 PulseAudio 프로그램은 X11을 사용하여 사운드 서버를 검색합니다 (사용 pax11publish하거나 xprop -root PULSE_SERVER직접 확인). 그들은 오디오 스트리밍을 위해 컴퓨터에 직접 (SSH가 아닌, 암호화되지 않은) 연결을 시도합니다 .

DNS-SD 검색으로 자동 직접 연결 사용

avahi-daemon 및 pulseaudio-zeroconf가 설치되어 있으면 "다른 시스템이 로컬 장치를 검색하도록 허용"을 활성화 할 수 있습니다. "module-zeroconf-publish"가로드됩니다.

"탐색 가능한 네트워크 장치를 로컬에서 사용 가능하게 함"옵션 (module-zeroconf-discover)을 사용하는 다른 컴퓨터는 컴퓨터가 내보내는 출력 (싱크)을 자동으로 나열합니다. 오디오 스트리밍을 위해 직접 (암호화되지 않은) 연결을 사용합니다 .

이 방법을 사용하려면 ~ / .config / pulse / cookie가 호스트간에 동일해야합니다.


2
어디에 ~/.pulse_cookie존재합니까? 원격 또는 로컬?
HSchmale

2
양자 모두. pulseaudio 데몬에 의해 생성 된 다음 암호와 같은 클라이언트를 연결하여 읽으므로 서버에서 클라이언트로 복사하려고합니다. (경로가 변경되었으므로 ~/.config/pulse/cookie한 쪽이 작동하지 않으면 다른 쪽을 시도하십시오.)
grawity

2
paprefs에서 설정을 변경 한 후 최소한 pulseaudio를 수동으로 다시 시작해야합니다. 제 경우에는 잘못된 것을 알아 내려고 몇 시간을 보낸 후 방금 재부팅 한 다음 모든 것이 작동했습니다 :).
crazy2be 2016 년

이것은 나를 위해 일했습니다. 감사합니다. rtl-sdr과 함께 원격 라즈베리 파이를 사용하므로 ssh 작업을 통해 오디오를 얻고 싶습니다.
Paul M
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.