パソコン鳥のブログ

アクセスカウンタ

zoom RSS LinuxのサウンドをリモートのWindowsマシンで鳴らす

<<   作成日時 : 2017/11/28 23:18   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

LinuxのサウンドをリモートのWindowsマシンで鳴らす方法です。
PulseAudio を使用します。

RaspberryPi で再生したサウンドも Windowsマシンから鳴らせます。
例えば下記記事での mp3再生もWindows でできます。

RaspberryPiでひかり電話の着信音をmp3で鳴らす パソコン鳥のブログ/ウェブリブログ


Windows側での作業


PulseAudio ダウンロード


PulseAudioを次のいずれかで用意します。
  • freedesktop.orgから入手する

  • PulseAudio のバージョンは 1.1 です。
    https://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/Support/
    「zipfile containing preview binaries」のリンクからダウンロード・展開します。

  • ThinLincのバンドル版を入手する

  • PulseAudio のバージョンは 6.0 です。
    ThinLinc という Linuxのリモートデスクトップ製品で PulseAudio は使用されています。
    https://www.cendio.com/thinlinc/download の 「Client Bundle」のリンクからダウンロード・展開します。


PulseAudio の設定


次の内容の default.pa を作成します。

default.pa

load-module module-waveout sink_name=output source_name=input record=0
load-module module-native-protocol-tcp auth-anonymous=1


作成する場所は、次の個所です。

  • freedesktop.orgから入手した場合

  • etcディレクトリの中の default.pa を上記のもので置きかえます。

  • ThinLincのバンドル版を入手する

  • PulseAudio をダウンロード・展開したディレクトリをたどっていき、ファイル pulseaudio と同じディレクトリに置きます。


default.pa で load-module module-waveout〜 の行の末尾の record=0 が無いと、pulseaudio 実行時に次のエラーが出て起動できないので、忘れないようにして下さい。


E: [(null)] modules/module-waveout.c: Failed to open WaveIn.
E: [(null)] pulsecore/log.c: Invalid UTF-8 string following below:
E: [(null)] modules/module-waveout.c: Error: システムにとって範囲外のデバイス ID を使用しました。
E: [(null)] pulsecore/module.c: Failed to load module "module-waveout" (argument: "sink_name=output source_name=input"): initialization failed.



ファイアウォールの設定


PulseAudio は TCP の 4713番ポートを使用します。
外部から 4713番へ接続できるように、ファイアウォールのルールを設定します。

次のコマンドを管理者権限のコマンドプロンプトから実行すると、ルールが追加されます、

netsh advfirewall firewall add rule name="PulseAudio" dir=in action=allow protocol=TCP localport=4713


なお、この設定が不要になった場合は、次のコマンドでルールを削除します。

netsh advfirewall firewall delete rule name="PulseAudio"



PulseAudio の実行


次のコマンドを実行します。
いくつか Warning が出ますが、問題無いので、気にしないでください。


pulseaudio.exe -F .\default.pa


この状態で、リモートの Linuxマシンで再生した音が、Windowsマシンで鳴ります。
(リモートの Linuxマシンで必要な設定は、後述の「Linux側での作業」を見てください)

なお、pulseaudio は音を鳴らした後、アイドル状態がデフォルトで20秒続くと、実行を終了します。
この時間を延ばす場合は、--exit-idle-time オプションで秒単位で時間を指定します。
次の例では、600秒間アイドルで終了します。


pulseaudio.exe -F .\default.pa --exit-idle-time=600


または、バッチファイルで次のようにしておくと、終了してもすぐ pulseaudio を再実行します。
この場合は、--exit-idle-time を短くしても問題ありません。

exec.bat

:loop
pulseaudio.exe -F .\default.pa --exit-idle-time=600
goto loop




Linux側での作業


PulseAudio の設定


PulseAudio をインストールします。


apt-get install pulseaudio


次のいずれかを実施します。
ここでリモートのWindowsのIPアドレスを指定しています。

  • client.confで設定する

  • 設定ファイルをコピーします。

    mkdir ~/.pulse
    cp /etc/pulse/client.conf ~/.pulse/


    ~/.pulse/client.conf に次の行を追加します。
    xx.xx.xx.xx は、リモートのWindowsのIPアドレスを指定します。

    default-server = xx.xx.xx.xx


  • 環境変数 PULSE_SERVER で設定する

  • 次の行を実行します。
    xx.xx.xx.xx は、リモートのWindowsのIPアドレスを指定します。

    export PULSE_SERVER="xx.xx.xx.xx"


もし現在実行中の pulseaudioデーモンがあれば終了しておきます。

pulseaudio -k


実行中の pulseaudioデーモンが無い場合は、次のような表示が出ます。

E: [pulseaudio] main.c: デーモンのキルに失敗しました: そのようなプロセスはありません


これでサウンドを鳴らす準備は整いました。


サウンドの再生


これまでの設定で、Linux でサウンドを再生すると、リモートの Windows のスピーカから再生されます。

例えば次のコマンドを実行してみて下さい。
「フロント」「レフト」「フロント」「レフト」・・・と英語音声が流れます。

speaker-test -t wav


mp3 もリモートで再生できます。(apt-get install mpg321 でインストールしておいてください)


mpg321 test.mp3



その他


リモートのWindowsで音が途切れ途切れになる場合は、ネットワークが不安定で無いか確認して下さい。
無線LANでつないでいた場合は、有線LANで試してみて下さい。

mpg321 では -o オプションが指定できますが、下記のように pulse を指定しても音が雑音まみれになります。
mpg321 は本記事中のように使用して下さい。


mpg321 hoge.mp3 -o pulse



参考


Windows-Ubuntu間でスピーカーを共有する方法 - nishio-dens's diary
読む価値があるのかどうか… : PulseaudioでUbuntuのサウンドをWindowsで出力する話
Windows Pulseaudio failure · Issue #8 · aseering/wsl_gui_autoinstall · GitHub
Windows用 pulseaudio 6.0のバイナリと設定 | hellokitty68
PulseAudioで他の端末から音を出す - Qiita
PulseAudio/サンプル - ArchWiki

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
LinuxのサウンドをリモートのWindowsマシンで鳴らす パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる