Raspberry PiなどのデバイスでFFMpegを使用する

Raspberry PiなどのデバイスでFFMpegを使用する

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%で、ストリームが深刻に遅れます。チャンネル入力とマイクを1つだけ使用してサウンドカードをUSBカードに変更でき、うまくいきました。

私はこれがおそらく私がテストしているパイがmp3のステレオリアルタイムエンコーディングとストリーミングを行うことができないためであることに気づきました。それで私の質問は、ラズベリーパイ3b+で動作させるために私ができることがありますか?または、そのデバイスのチャンネルが1つだけ制限されており、ステレオエンコーディングの場合は別のものにアップグレードする必要があります。

alsaを使用してオーディオを録音してからffmpegに送信できますが、4〜5秒の遅延が発生します。私はこのような状況を避けたい。

ビットレートを上げ、サンプルレートを下げ、コーデックを変更するなどの作業を試してみました。少し圧倒されました。

できるだけコストを削減しようとしますが、何かを見逃す可能性があることを決して知りません。

テストするRPi4がありますが、明らかに高価です。必要なプロセッサ性能を持つSBCはありますか?

ベストアンサー1

GPIOを介して接続されたオーディオキャプチャデバイスを使用していたことがわかりましたが、2つのオーディオストリームを処理するのに十分高速ではないようです。高度なUSBキャプチャADCに切り替えたときの結果は素晴らしかった。

おすすめ記事