nishio-dens's diary

Railsとかプログラミング関連の備忘録

Ubuntu9.10 リモート上にある音楽データをローカルで再生する方法( PulseAudioのネットワーク経由での利用 )

外部PCのIPアドレス(remote-pc): 123.222.xxx.xxx
自宅PCのIPアドレス(local-pc): 200.200.xxx.xxx (グローバルIPアドレス), 192.168.1.2 (ローカルIPアドレス)

sshでリモートPCにログインしてwavを再生,なんてことは普通はできない.
例えば次のような事は無理.

local-pc $ ssh 123.222.xxx.xxx
remote-pc $ play Sound.wav

これは不便.

そこで,pulseaudioをネットワーク経由で利用する.
pulseaudioには,音声の出力先を指定したアドレスに転送する機能が付いている.
ただし,出力先のPCはローカル限定である.インターネットを越えては利用できない.困った.

そこで,ssh ポートフォワーディングを利用すればいいことに気がつく.
まず初めに,リモート側のPCでポートフォワーディングを行う.pulseaudioは音の出力にTCP ポート4713を使っているようだ.
よって次のようなコマンドを入力.

remote-pc $ ssh -N -L 4713:192.168.1.2:4713 ユーザ名@200.200.xxx.xxx

次に,今度はローカルPCから リモートPCのpadevchooser を起動.

local-pc $ ssh 123.222.xxx.xxx -X
remote-pc $ padevchooser &

このようにすると,ローカルPCの通知スペースにリモートPCのPulseAudio Appletが起動するはず.
このAppletをクリック,Default Server -> Other... を選択.
表示されたテキストボックスに localhost と打ち込む.
(このようにPulseAudio Appletを起動しなくてもDefault Serverを変更できる方法があれば知りたいです)

もう一度,ssh経由でwavを再生してみる.

local-pc $ ssh 123.222.xxx.xxx
remote-pc $ play Sound.wav

無事音が流れれば成功.