블루투스에서 stdin으로 오디오 스트림을 가져오려고 합니다.fm_transmitter
내 Raspberry Pi 3/최신 Raspbian Stretch에서.
지금까지 나는 ffmpeg를 사용하여 ICE-Cast-Stream으로 FM 송신기를 실행했고 내 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