私は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-sink
pulseaudio(システムの基本的なオーディオ機器になる)に送信します。 - 出力には、ヌルシンクでプッシュされたオーディオを取り、マイクなどの入力デバイスのように再び「キャプチャ」できるソースが
module-null-sink
あります。.monitor
- Pulseaudioは、mpd、Webブラウザ、Pulseaudioを使用するすべてを含む、コンピュータ全体ですべてのオーディオプログラムの動的ソフトウェアミキシングを実行します。
tribblify
私はGStreamerを使用して、システム上の他のプログラムとmpdミックスオーディオを含むpulseaudioヌルシンクモニタオーディオをキャプチャし、MP3エンコーディングを実行し、それをShoutcast / icecastサーバーにストリーミングするプログラムを作成しました。tribblify
本質的に「ストリーミングソース」になります。- プログラムは、
tribblify
mpdが再生しているオーディオのタグを変更した時点を自動的に検出し、そのタグを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