파이프라인 레코드 출력과 플레이 진입 사이의 지연

파이프라인 레코드 출력과 플레이 진입 사이의 지연

작동 시 스피커에서 나오는 소리가 눈에 띄게 지연됩니다.

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)

답변2

--buffer-size=0

왜냐면 arecord와 aplay 둘 다 나에게 적합하거든요.

관련 정보