从音频源到管道的音频(stdout/stdin)

从音频源到管道的音频(stdout/stdin)

我正在尝试从蓝牙获取音频流到标准输入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

相关内容