오디오 소스에서 파이프로의 오디오(stdout/stdin)

오디오 소스에서 파이프로의 오디오(stdout/stdin)

블루투스에서 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

ffmpegaplay -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

관련 정보