Áudio da fonte de áudio para o canal (stdout / stdin)

1

Estou tentando obter um fluxo de áudio do Bluetooth para o stdin de fm_transmitter no meu Raspberry Pi 3 / up- até agora o alongamento Raspbano.

So far, I got FM-Transmitter running with an ICE-Cast-Stream using ffmpeg & my Pi is playing Music from Spotify via bluetooth (I installed blueman next to the things I followed from this Tutorial).

Para arquivar isso, tentei usar ffmpeg -f s16le -i hw:0 - | fm_transmitter -f 87.6 - como mencionado nos tutoriais e testei com todos os outros dispositivos listados com aplay -L . Mas não pode ouvir nenhuma das fontes / não consegue encontrá-lo.

Então, como preocupação principal, estou querendo saber qual ferramenta pode vincular uma fonte de áudio ao canal.

    
por x.NET Development 05.11.2017 / 01:23

1 resposta

1

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
    
por 07.11.2017 / 02:20