Bluetoothからstdinにオーディオストリームを取得しようとしています。fm_transmitter
私のRaspberry Pi 3/最新のRaspbian Stretchから。
これまで私はffmpegを使ってICE-Cast-StreamでFMトランスミッタを実行し、PiはBluetooth経由でSpotifyで音楽を再生しています(
blueman
私がフォローしているものの横にインストールしました)。このチュートリアル)。
これをアーカイブするために、ffmpeg -f s16le -i hw:0 - | fm_transmitter -f 87.6 -
チュートリアルで説明されている方法を試してみて、リストされている他のすべてのデバイスでテストしましたaplay -L
。しかし、どのソースも聞くことができないか見つかりません。
だから私の主な関心事は、どのツールがオーディオソースをパイプに接続できるかを知りたいと思います。
答え1
ffmpeg
aplay -L
Bluetoothソースが見つからず、必要な操作を実行できないようです。しかし、pactl list sources short
ついにA2DPソースを見つけました。
とにかく、いたずらの終わりにsox
ついにベースデバイスからbashでオーディオ信号を取得しましたが、次のコマンドを使用すると停止します。
$ sox -d -t raw -r 22.05k -b 8 - gain -5 | fm_transmitter -f 87.6 -
私は最初の場所のサンプルレートが44.8kで、パイプ速度が22.05k(正確に分割することはできません)であることに気づいた後、さまざまなケイデンス速度を試しました。
私はこれが私にうまくいくことを知っていましたtempo 0.97
が、最初の数秒間はまだ少し壊れていましたが、後でうまくいきました。
唯一の問題は、スピードが低下するために少しスタッキング遅延が追加されることです。これは完璧でもリアルタイムでもありません。
$ sox -d -t raw -b 8 -r 22050 - gain -5 tempo 0.97 | fm_transmitter -f 87.6 -
Playing: stdin, 22050 Hz, 16 bits, mono
Input File : 'default' (alsa)
Channels : 2
Sample Rate : 48000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
In:0.00% 00:07:15.97 [00:00:00.00] Out:9.90M [ =====|===== ] Hd:4.4 Clip:0