ネットワーク経由で複数のコンピューターに音楽をストリーミングする方法は?


78

結果

ある部屋から別の部屋に歩いて行き、同じ歌が聞こえるようにしたい。あなたがすべての部屋でラジオを聞いていたのと同じように。

その効果が欲しいのですが、自分の音楽を聴きたいのですが、これはできますか?

材料

  • Ubuntuラップトップ。
  • Macコンピューター。

最初の選択肢

  • 私はこの答えに従ってソフトウェアを見つけてセットアップしました
  • コンピューターとサーバーの両方のソフトウェアはすべてセットアップされているので、どうすれば続行できますか? http://www.pulseaudio.org/wiki/FirstSteps

回答:


48

はい、pulseaudioを使えば簡単にできます。ネットワーク経由でサウンドデバイスを使用できるようにするpaprefs をインストールして実行する必要がありpaprefsをインストールするます。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

これらの設定により、音源とシンクの両方をネットワーク経由で、理想的には別のpulseaudioサーバーに公開できます。

デスクトップマネージャーなしでサーバーをセットアップする場合は、まずサウンドシステムをインストールする必要があります(この質問を参照)。その後/etc/pulse/default.pa、[ ネットワークアクセス]セクションでこれらの行のコメントを解除して編集できます

load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp
load-module module-zeroconf-publish

RTPセンダを使用する場合は、RTPセンダモジュールセクションのこれらの行のコメントを解除します

load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description="RTP Multicast Sink"
load-module module-rtp-send source=rtp.monitor

pulseaudioサーバーは、pulseaudio -Dまだ実行されていない場合に備えてデーモンとして起動する必要があります。音質設定を最適化/etc/pulse/daemon.confするために、個人のニーズに合わせて調整することができます。

ネットワークでオーディオをストリーミングする別の方法は、Icecastサーバーをセットアップすることです(この質問を参照)。


14
ヘッドレスクライアント(たとえば、キッチンの食器棚にスピーカーがあるPi)の場合、設定ファイルやシェルコマンドを介してこれを完全に設定する方法を知っていると便利です。
ラファエル14

このガイドは、Ubuntu CLIで従うのに十分な汎用性があります。wiki.archlinux.org/index.php/PulseAudio/...
goetzc

11

最適なオプションは、Music Player Daemon(mpd)と呼ばれます。

https://secure.wikimedia.org/wikipedia/en/wiki/Music_Player_Daemon

クライアントサーバーアプリケーションです。音楽をサーバーに保存し、クライアントと接続して(多くの人が一度にそれを行うことができます)、サーバーを制御します。

すでにubuntuにあり、apt-get install mpd

また、いくつかの優れたドキュメント:https : //wiki.archlinux.org/index.php/Mpd

MPDは音楽をストリーミングできるので、音楽を再生するために多数のクライアント(または必要に応じてスピーカー)を使用できます。

しかし、本当に良い品質を期待しないでください。ストリーミングのネタバレはひどく聞こえます(mpdとpulseaudioのどちらを使用しても)。実際のスピーカーをサーバーに接続し、それを制御するためだけにラップトップを使用することをお勧めします。


2
私の家は大きすぎてワイヤーを使用できないので、サウンドをストリーミングしたいのです。
アルヴァ

あなたはそれがあなたのワイヤレス接続が十分に強力で考えると、あまり重要文句を言わない、品質を心配いけない、ストリーミングすることができ
ラウール・プラサード

ストリーミングは音質をどのように損なうのですか?WiFiはデジタル転送媒体です。MPDはロスレス圧縮を行いますか?今日のWiFiネットワークにはこれは必要ないと思います。
-nvd

うわー、古い答え。私はその頃からMPDを使用していないので、それ以上覚えていません。
ロックス

11

普通に何かをする必要はありませんでした。PulseAudioを搭載したツインネットブックと、Intelのハードウェアはほとんどありません。私がそれをどのように設定したかは、このような小さなものでした。

サーバーとクライアントの両方でpaprefsを実行します。サーバーで、マルチキャスト設定が有効になっており、サーバービットがチェックされていることを確認してください。そのようです ここに画像の説明を入力してください

マルチキャストビット ここに画像の説明を入力してください

クライアントで、ネットワーク対応デバイスの検索に関するビットを有効にし、 ここに画像の説明を入力してください pavucontrolを介して出力デバイスを仮想ネットワークデバイスに設定します。 ここに画像の説明を入力してください

ビオラあなたは今いくつかの魔法を持つ必要があります


1
これはRTPとは関係ありません。
キレラギン14年

この素晴らしいチュートリアルをありがとう。「pavucontrolを介して出力デバイスを仮想ネットワークデバイスに設定できない」ことを除いて、すべてのボックスをチェックしました。私が理解しているように、これはスクリーンショットで「charmes @ nanoの内部オーディオアナログステレオ」と書かれているビットを介して行われます。しかし、私のシステムでは、そのようなボタンはまったくありません。何が間違っていますか?
user69748

2011年以降これらの手順を確認していないため、パルスオーディオデーモンの設定が変更された可能性があります。
lazyPower

(再起動後)私が現在持っているのは、クライアントにルーティングされているように見える「pulseaudio」と呼ばれる別のチャネルです。ただし、音声は流れません。そして、私のRhythmboxチャンネルには、まだ「user @ client」に関する言及がありません。
user69748

1

このソリューションを使用すると、システムオーディオを好きな場所にストリーミングできます。
ここで重要なのは、ALSAループバック機能です。そのため、最初にALSAでループバックデバイスを有効にする必要があります。これは、PulseAudioボリュームコントロールに入力デバイス(および出力デバイス)として表示されます。

sudo modprobe snd_aloop

このデバイスは、mpdサーバーに追加できます。

mpc add alsa://hw:1,1

ここで、hw:1,1は、次のコマンドでリストできるループバック入力デバイスです。 aplay -l

次に、mpdのhttp出力プラグインを構成する必要があります。次の例は次のようになります/etc/mpd.conf

 audio_output {
    type            "httpd"
    name            "My HTTP Stream"
    encoder         "vorbis"          # optional, vorbis or lame
    port            "8000"
    bind_to_address "192.168.1.38"               # optional, IPv4 or IPv6
    quality         "5.0"                   # do not define if bitrate is d$
#   bitrate         "128"                   # do not define if quality is d$
    format          "44100:16:1"
    max_clients     "0"                     # optional 0=no limit
 }  

それだ。[ボリュームコントロールの再生]タブで、オーディオソースのloobackデバイスを選択します。
最後に、httpdのurlアドレスを使用して、VLCまたは他のストリームレンダラーを宛先ポイントで使用http://192.168.1.38:8000
できます。この回答はここでも利用できます。


0

DLNA / UPnPでこのようなことを達成できるかどうかはわかりませんが、私はそれについてよく知らないのですが、助けになる場合はここにいくつかのリンクを投げます:

けれども迅速な検索結果は、それが同期することはできませんことを示唆しています...


2
DLNAは再生を同期できないため、お勧めしません。
スパラフーク14

0

良い解決策はありません(まだ)。AVBがありますが、802.11のサポートは時刻同期に制限されています。


-2

Androidスマートフォンにストリーミングする場合は、サーバーでFoobar2000を使用し、クライアントでBubbleUPnPペイウェア)を使用できます。

  1. ワインを手に入れる
  2. 取得する foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. 次、次、次... :)
  5. foo_upnpを取得
  6. foob​​ar2000のcomponentsフォルダーに抽出します(おそらくにあります~/.wine/drive_c/Program Files/
  7. foob​​ar2000を起動します
  8. [ライブラリ]→[設定]→[再生]→[出力]→[デバイス]に移動し、[Null出力]を選択します
  9. ufw関連するトラフィックをブロックしていないことを確認してください
  10. BubbleUPnPの場合:
    1. [デバイス]→[ライブラリ]に移動し、foobar2000サーバーを選択します
    2. 「ライブラリ」で「再生ストリームキャプチャ」を選択します

このアプローチには、Androidで一時停止すると、バッファーが蓄積されるという利点があります(サーバーがまだ送信しているため)。

Ubuntu(ワインバージョン1.5.28-0ubuntu1~ppa1)およびWindowsでテスト済み。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.