パイプラインレコード出力とプレイエントリの間の遅延

パイプラインレコード出力とプレイエントリの間の遅延

操作中にスピーカーからの音が著しく遅れます。

arecord | aplay

bashスクリプトを使用して低レイテンシのサウンドサーバーを作成したいので、待ち時間を減らしたいと思います。

arecord {parameters} | nc    {parameters}   --> in first host
nc      {parameters} | aplay {parameters}   --> in second host 

遅延を減らす方法はありますか?それとも、bashスクリプトを使用して待ち時間の短いサウンドサーバーを作成することは可能ですか?

ベストアンサー1

Netcat(nc)は実際にTCPの代わりにUDPプロトコルを使用する必要があるため、うまく機能しません。 TCPには常に待ち時間があり、時間の経過とともに悪化します。その理由は、パケットが失われるとTCPが自動的にパケットを回復しようとするため、リアルタイム転送でより多くの待ち時間が発生するためです。一方、UDPはドロップされたパケットを無視し、ライブインターフェイスを最新の状態に保ちます。 Wi-Fiではパケットロスが多いため、この問題は目立つように見えます。

GストリーマーUDPによる作業はとても簡単です。 gstreamerにarecordとaplayを使用させる方法があると確信していますが、gstreamerがサポートしているので必ずしも必要ではありません。アルザスまっすぐ。例:

クライアントのマイク(192.168.44.10)

おすすめ記事