0

我已经使用服务器-客户端设计在 WLAN 上使用 netcat 连接了两台 Linux 机器。现在我可以在他们之间发送和接收消息了。在服务器上,我使用 UDP 套接字创建:

$ nc -u -l 3333

在客户端,我使用端口号和目标IP连接到端口:

$ nc -u 192.168.178.160 3333

这导致服务器和客户端之间的双向连接。一个无法分辨,但我想它是非常实时的。现在我想开发功能并尝试在双方之间建立实时语音连接。arecord通过将语音数据写入文件的命令也可以通过麦克风进行录音.wav。只有在完全记录后才能传输.wav文件,但这没有用,因为所需要的是实时通信。当然,接收到的语音信号必须立即在另一端播放。有谁知道如何使它成为实时的

4

1 回答 1

0

保真度意味着大量缓冲区计数以保持声音连续性,尽管网络延迟和延迟变化,接近实时的低声音延迟意味着较小的缓冲区计数以减少整体延迟。你不能两者兼得。

IME,您需要保持最大约 250 毫秒。在两端缓冲的声音以保持“实时”语音的错觉。该缓冲区队列需要以再现语音所需的固定速率清空,并在必要时由网络协议保持充值。如果网络延迟太低而无法填充该大小的缓冲池,则必须使缓冲池更大,队列更长,并且感知的实时性能将受到影响。

TCP/UDP 问题是大多数网络连接上的一个红鲱鱼。

只是感谢您没有流式传输视频:)

于 2013-11-13T18:04:36.387 回答