Quantcast
Channel: mattintosh note
Viewing all articles
Browse latest Browse all 878

iPhone を Raspberry Pi のリモートスピーカーにする

$
0
0

Raspberry Pi の音声出力を RTP(Real-time Transport Protocol)で同一ネットワーク上のデバイスに転送する。今回は X11 Forwarding を使って Raspberry Pi 上で実行している Chromiumの音声を iPhoneで再生できるようにしてみた。


pulseaudioが起動していなければ起動しておく。pactl load-module module-rtp-send port=12345でリニア PCM で送信することもできるけど、無線環境が良くないとブツブツ切れてしまうので、この後にエンコーダを経由させる。

pulseaudio --start

FFmpegを使用する場合

入力フォーマットを -f pulseで指定し、入力デバイスは -i ''-i 0で指定する。出力フォーマットを -f rtp_mpegtsで指定しておかないとクライアント側で SDP ファイルを要求されるかもしれない。

ffmpeg -f pulse -i''-c:a libmp3lame -f rtp_mpegts rtp://224.0.0.56:12345

VLCを使用する場合

入力デバイスに pulse://0を指定する。

cvlc pulse://0--sout='#transcode{acodec=mp3}:rtp{mux=ts,dst=224.0.0.56,port=12345}'

iPhoneで RTP ストリームを開く。ここでは VLCを使う。

メニューの "Network" -> "Network Stream"開く。

f:id:mattintosh4:20160102171417p:plain:h480

rtp://{アドレス}:{ポート}を入力したら "Open Network Stream"を開く。

f:id:mattintosh4:20160102171426p:plain:h480

Raspberry Pi 上のサウンドが iPhoneで再生される。

f:id:mattintosh4:20160102171432p:plain:h480

VLCはバックグラウンドで動作してくれるので画面ロックしてもサウンドはそのまま再生される。

f:id:mattintosh4:20160102171437p:plain:h480


Chromiumにかかわらず、Raspberry Pi 上で Pulse Audio を使っているものであればすべて iPhone側で再生することができるので、VLCなんかを実行させておいてジュークボックス代わりに使うこともできる。

iPhone側は Bluetoothアダプタのような感じになる。一番いいのは Pulse Audio の module-rtp-sendで直接受信することなんだけど、端末のスペック不足なんだか、うちの無線LAN環境がしょぼいのかイマイチ帯域が安定しない…。

VNCだと普通音が鳴らないけどこの方法だとお音声ありでゲームもできるかなぁ。


Viewing all articles
Browse latest Browse all 878

Trending Articles