我正在尝试从蓝牙获取音频流到标准输入fm_transmitter
在我的 Raspberry Pi 3 / 最新的 Raspbian Stretch 上。
到目前为止,我使用 ffmpeg 使 FM 发射器与 ICE-Cast-Stream 一起运行,并且我的 Pi 正在通过蓝牙播放 Spotify 中的音乐(我安装
blueman
在我关注的东西旁边)本教程)。
为了存档此内容,我尝试使用ffmpeg -f s16le -i hw:0 - | fm_transmitter -f 87.6 -
教程中提到的方法,并使用 列出的所有其他设备进行测试aplay -L
。但它无法收听任何来源/无法找到它。
因此,我主要关心的是,我想知道哪种工具可以将音频源连接到管道。
答案1
ffmpeg
似乎无法满足我的需要,aplay -L
无法找到蓝牙源。不过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