ffmpeg
parece não ser capaz de fazer o que eu preciso e aplay -L
não foi capaz de encontrar fontes de Bluetooth. Mas com pactl list sources short
eu finalmente encontrei a fonte A2DP.
De qualquer forma, depois de brincar com sox
, finalmente consegui um sinal de áudio do dispositivo padrão para o bash, mas estava gaguejando quando usei o seguinte comando.
$ sox -d -t raw -r 22.05k -b 8 - gain -5 | fm_transmitter -f 87.6 -
Depois que eu pensei na taxa de amostragem no primeiro lugar sendo 44,8k, e a taxa de canalização sendo 22,05k - o que não é perfeitamente divisível - eu tentei taxas de tempo diferentes.
Eu achei tempo 0.97
sendo bom para mim, ainda gagueja nos primeiros segundos, mas depois funciona.
O único problema é que o tempo reduz um pequeno atraso no empilhamento - o que não é perfeito nem em tempo real.
$ 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