mpd経由のストリーミングシステムオーディオ

mpd経由のストリーミングシステムオーディオ

私はmpdを使って.mpd経由で私の携帯電話(Hi-Fiに接続されている)に音楽をストリーミングしますhttp

しかし、これは私のmpdデータベースにある曲でのみ機能します。私はしばしばブラウザで何かを再生したいと思うし、mpdそれを介してストリーミングすることができます。

スピーカーの代わりにスピーカーpulse audioに出力をルーティングする方法はありますか?mpd

答え1

mpdはパルスオーディオ入力ソースを許可しないため、パルスオーディオをルーティングする直接的な方法はありません。渡すMPD。

しかし、gstreamerと少しの創造性を使用することで、達成したいことはまだ可能です。私は数年前にこれをしました。

私は書いたこのアプリグラフの「Gstreamerパイプラインスクリプト」コンポーネントを実装します。

ストリームグラフ http://tiyukquellmalz.org/sean/stream.svg

図を要約すると、次のことが起こります。

  • mpdはディスクから音楽ファイルを読み取り、デコードし、module-null-sinkパルスオーディオタイプのオーディオ出力に「再生」します。
  • Adobe Flash、gnome Shellのビープ音、Webブラウザなど、コンピュータからサウンドを出力する他のプログラムも、オーディオ出力をmodule-null-sinkpulseaudio(システムの基本的なオーディオ機器になる)に送信します。
  • 出力には、ヌルシンクでプッシュされたオーディオを取り、マイクなどの入力デバイスのように再び「キャプチャ」できるソースがmodule-null-sinkあります。.monitor
  • Pulseaudioは、mpd、Webブラウザ、Pulseaudioを使用するすべてを含む、コンピュータ全体ですべてのオーディオプログラムの動的ソフトウェアミキシングを実行します。
  • tribblify私はGStreamerを使用して、システム上の他のプログラムとmpdミックスオーディオを含むpulseaudioヌルシンクモニタオーディオをキャプチャし、MP3エンコーディングを実行し、それをShoutcast / icecastサーバーにストリーミングするプログラムを作成しました。tribblify本質的に「ストリーミングソース」になります。
  • プログラムは、tribblifympdが再生しているオーディオのタグを変更した時点を自動的に検出し、そのタグをshoutcastストリームにプッシュします。
  • Icecastサーバーまたはshoutcastサーバーは同じコンピューターまたは別のコンピューターに存在し、結果をすべての接続クライアントにストリーミングできます。

答え2

はい。ここで重要なのはALSAループバック機能です。したがって、まずALSAでループバックデバイスを有効にする必要があります。このデバイスは、PulseAudioボリュームコントロールの入力デバイス(および出力デバイス)として表示されます。

sudo modprobe snd_aloop

その後、デバイスをmpdサーバーに追加できます。

mpc add alsa://hw:1,1

ここで、hw:1、1はループバック入力デバイスであり、次のコマンドを使用して一覧表示できます。aplay -l

それから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
 }  

それはすべてです。音量調整再生タブで、オーディオソースの再生デバイスを選択します。
最後に、ターゲットポイントでhttpd URLアドレスを使用してVLCまたは他のストリームレンダラーを使用できます。http://192.168.1.38:8000

関連情報