Icecast 서버로 오디오를 스트리밍하는 애플리케이션을 구축 중입니다.
이것은 실제로 오디오를 보내는 현재 명령입니다.
nohup ffmpeg -f alsa -ac $CHANNELS -i hw:0 -codec libmp3lame -ab $BITRATE -ar 44100 -nostats -content_type 'audio/mpeg' -f mp3 icecast://$USERNAME:$PASSWORD@$ICECASTSERVER:$ICECASTSERVERPORT/$MOUNTPOINT &> /tmp/stl-app/icecast-source.log &
2채널 소스(예: 왼쪽 및 오른쪽 스테레오)를 사용할 때 인코더가 따라잡을 수 없습니다. ffmpeg 사용량이 100%이고 스트림이 심각하게 지연됩니다. 채널 입력과 마이크 하나만 사용하여 사운드 카드를 USB 카드로 변경할 수 있었고 잘 작동했습니다.
나는 이것이 아마도 내가 테스트하고 있는 파이가 mp3의 스테레오 실시간 인코딩과 스트리밍을 할 수 없기 때문이라는 것을 깨달았습니다. 그래서 제 질문은, 라즈베리 파이3b+에서 작동하게 하기 위해 제가 할 수 있는 일이 있나요?입니다. 아니면 해당 장치의 채널이 하나만 제한되어 있고 스테레오 인코딩의 경우 다른 것으로 업그레이드해야 합니다.
alsa를 사용하여 오디오를 녹음한 다음 ffmpeg로 전송할 수 있지만 4~5초 지연이 발생합니다. 나는 이런 상황을 피하고 싶다.
비트 전송률을 높이고, 샘플 속도를 낮추고, 코덱을 변경하는 등의 작업을 시도해 보았습니다. 약간 압도당했습니다.
최대한 비용을 줄이려고 노력하지만, 뭔가를 놓칠 수도 있다는 것을 결코 알지 못합니다.
테스트할 RPi4가 있지만 분명히 더 비쌉니다. 필요한 프로세서 성능을 갖춘 SBC가 있습니까?
답변1
GPIO를 통해 연결된 오디오 캡처 장치를 사용하고 있었던 것으로 밝혀졌지만 두 개의 오디오 스트림을 처리할 만큼 빠르지는 않은 것 같습니다. 고급 USB 캡처 ADC로 전환했을 때 결과는 훌륭했습니다.