- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个客户端和一个服务器,服务器通过封装在 UDP 内的 RTP 数据包发送音频数据。客户端接收数据包。由于 UDP 没有流量控制,客户端会检查数据包的序列号,如果序列号不正确,则重新排列它们。我的问题是,我看到客户端从未收到带有某些序列号的数据包,如下图所示的wireshark -
如果是这种情况,当我在客户端播放音频时,它会失真(很明显)。我该如何避免它?哪些因素影响这些?我应该将套接字缓冲区大小设置为一个大值吗?
感谢提前回复。
编辑 1:此问题出现在 QNX 平台上,而不是在 Linux 上。我观察了“netstat -p udp”的输出,看看这是否给出了有关为什么数据包在 QNX 上而不是 Linux 上被丢弃的任何提示。
QNX:
SOCK=/dev/d_usb3/ netstat -p udp
udp:
8673 datagrams received
0 with incomplete header
60 with bad data length field
0 with bad checksum
0 dropped due to no socket
2 broadcast/multicast datagrams dropped due to no socket
0 dropped due to full socket buffers
8611 delivered
8592 PCB hash misses
在 Linux 上,我看到 netstat 显示相同服务器和相同音频没有丢包!
有线索吗?为什么会这样?驱动问题?网络堆栈?
最佳答案
您需要指定如何在客户端中处理丢失的数据包。
如果丢失数据包,则意味着音频流中丢失了数据。因此,您的客户必须在丢失数据的地方“做点什么”。一些选项是- 播放静音(由于尖锐的包络线为 0,会发出破裂的噪音)- 淡出至沉默- 通过检查相邻数据来估计波形- 播放噪音
您不能将数据包错位或在丢失数据包的情况下进行播放。例如,假设您获得数据包 1、2、3、4 和 6。您丢失了数据包 5。您无法播放数据包 4,然后播放数据包 6。必须发生某些事情来填充数据包 5 的空间。
关于c - RTP 丢包问题(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33087817/
我有一个嵌入式设备(源),它通过UDP数据包以20毫秒(约330字节)的块大小发送(音频)数据流。因此,网络容量相当低,约为16kBps(实际上由于UDP/IP开销而有所增加)。该设备正在运行lwIP
在一家视频 session 公司实习时,数据包丢失的话题很多。维基百科声明如下: Packet loss is typically caused by network congestion. 我知道因
如何使用 Ryu 发送流条目来删除包?我从教程中学习了如何将包发送出流条目: 我定义 Action :actions = [ofp_parser.OFPActionOutput(ofp.OFPP_FL
我搜索了很多关于这个主题的内容。 UDP 不可靠 UDP 无法发送大于 64kbs 或 65507 字节且没有 header 的数据包 MTU 通常为 1500 sysctl.confnet.core
我需要计算以下内容: 上传, 下载速度 丢包 抖动 各大洲服务器的延迟 本地和有关移动运营商的详细信息 谁能告诉我跟踪这些东西的最佳方法是什么? 我需要准确度才能高。 最佳答案 请找到获取延迟的代码。
我是一名优秀的程序员,十分优秀!