web-dev-qa-db-ja.com

GNU / Linuxオーディオ出力をAndroidデバイスにWI-FI経由でストリーミングする方法は?

オーディオ出力をネットワーク(Wi-Fi)経由でAndroidデバイスにストリーミングしたい。音楽/ビデオストリーミングソリューションを探していないが、オーディオ出力をストリーミングしたいGNU/Linuxデスクトップを私のAndroid= Bluetoothヘッドフォンのように動作します。

私のGNU/LinuxデスクトップはDebian Wheezyで、サウンドはPulseAudioによって提供されます。

Pulseaudioのraopモジュールを試してみました(そしてパプリフで有効にしました)+ AndroidのAirBuddleアプリですが、オーディオがストリーミングされません(pulseaudioはAirBuddleに接続しますが、サウンドが再生されません。一部のソフトウェアでは、接続エラーが発生します他のソフトウェアは音が立ち往生している)。

40
semente

PulseAudioには必要なツールがすべて揃っているため、非常にシンプルなソリューションがあります。

  1. コマンドpactl list | grep Nameでソースデバイス名を取得します
  2. pashareという名前の次のスクリプトを作成します。

    #!/bin/sh
    case "$1" in
      start)
        $0 stop 
        pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2 source=<source_name_here> record=true port=8000
        ;;
      stop)
        pactl unload-module `pactl list | grep tcp -B1 | grep M | sed 's/[^0-9]//g'`
        ;;
      *)
        echo "Usage: $0 start|stop" >&2
        ;;
    esac
    
  3. いくつかの確認と準備を行います(スクリプトの実行を許可し、ポートが正常に開いたかどうかを確認します)。

    chmod 755 pashare
    ./pashare start
    netstat -nlt | grep 8000 
    telnet 127.0.0.1 8000
    
  4. ダウンロードしてインストール PulseDroid.apk

  5. スマートフォンでアプリを起動します。 IPアドレスをコンピューターに、ポートを8000に設定します。

追伸 このWikiページ をチェックして、Pulseaudioネットワークストリーミングに関する一般的な情報を確認することもできます このWikiページ についてRTPストリーミング。期待しないでください。生のオーディオをWiFi経由でストリーミングすることは多すぎます。これには、大量の帯域幅が必要です。強力な信号を備えたハイエンドワイヤレスルーター/ APを使用しても、音声を途切れさせるだけでは不十分です。最善の策はおそらく適切なメディアサーバー(Pulseaudioでうまく機能するRygelなど)をセットアップして、生のオーディオをMP3のようなものにトランスコードし、代わりにストリーミングします。

27
AlexAndersan

[〜#〜] vlc [〜#〜]を使用して、pulseaudioの出力のMP3ストリームをHTTP経由で提供できます。
主な利点は、リモートデバイスに特別なソフトウェアをインストールする必要がないことです。ストリームを再生するために必要なのはWebブラウザ(または音楽プレーヤー)だけです。欠点は、それがオーディオのみであり、数秒の遅れがビデオには役に立たないことです

  1. 次のコマンドを使用して、pulseaudioの出力名を検索します。

    pactl list | grep "Monitor Source" 
    
  2. VLC httpサーバーを起動し、XXXXを出力名に置き換えます。

    cvlc -vvv Pulse://XXXX --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
    
  3. 必要に応じて、ifconfigを使用してローカルIPアドレスを検索します

  4. リモートデバイスで、ブラウザー(またはオーディオストリーミングアプリ)を次のように指定します。

    http://your.local.ip.address:8888/pc.mp3
    

注:完全にミュートしない限り、ストリームはサーバーに設定された音量の影響を受けません。必要に応じて、レベルを0より少しだけ高くして、リモートデバイスのみを聞くことができます。


最初の2つのステップは polynomial_donut によって1つに結合されます。

cvlc -vvv Pulse://$(pactl list | grep "Monitor Source" | awk '{print $3}') --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
19
wilks

オーディオ出力をwifi経由でAndroid電話にストリーミングするには、PCにオーディオを送信するサーバーソフトウェアとAndroidデバイスにインストールする必要があります。利用可能なオプションは

WiFiオーディオワイヤレススピーカー

WiFiオーディオを実行Androidアプリとプレススタート。Windows/ Linuxアプリケーションを実行すると、下部にモバイルデバイスのIPアドレスが表示され、IPアドレスフィールドにモバイルデバイスのIPアドレスを入力して、 PCアプリケーションで起動します。これで、PCから出力されるすべてのオーディオがモバイルデバイスに送信され、モバイルデバイスでオーディオが聞こえます。
ダウンロード

SoundWire

PCから音楽や音声をAndroid電話、タブレット、またはその他のPCにワイヤレスで転送します
ホームページこちらもご覧ください

その他の便利なリンク
[〜#〜] xbmc [〜#〜]Android SE

10
totti

Soundwireを使用してラップトップまたはPCからwifiを送信する場合は、ifconfigを使用して、正しいIPアドレスを使用していることを確認してください。これは今でも機能しますが、ほとんどのLinuxディストリビューションでは、wifiを送信するために2番目のwifiアダプターが必要です。インターネットを受信するものではなく、Androidが接続されているものを使用する必要があります。 1つをOUTに送信します。

つまり、インターネットに接続するために "A" wifiアダプターを使用し、 "A"からwifiを送信するために "B"を使用している場合は、SoundWireをAndroid to "B" NOT "に接続しますA "。

Wifiを送信しないアダプターに接続した場合、SoundWireは接続またはストリーミングしません。そのため、それに応じて端末コマンドifconfigを使用して、AndoroidアプリにIPアドレスを入力してください。

はい、遅れはありますが、このアプリ、SoundWireは、最もシンプルな「マルチコネクトto ip and forget」システムです。クレイジーなメニューはありません。はい、複数の接続を受け入れます。先日2本使用しました。送信を送信するデバイスのメインウィンドウに、接続されているデバイスの数を追加します。

これを今日まで私の場所でマルチルーム/短距離無線LANシステムとして個人的に使用しています。

楽しい。

0
Roiikka