オーディオソースからパイプへのオーディオ(stdout / stdin)

オーディオソースからパイプへのオーディオ(stdout / stdin)

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

ffmpegaplay -LBluetoothソースが見つからず、必要な操作を実行できないようです。しかし、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

おすすめ記事