我正在开发一种视频流代理,现在正在处理与无序接收的数据包(无丢失)相关的问题。这个问题(可能)是视频播放时经常出现噪音的原因。
您是否偶然知道 VLC 是否能够对数据包重新排序?如果是这样,那就意味着播放中有一些噪音的原因是别的原因,如果不是,我应该开发一个额外的层来确保以正确的顺序接收。
谢谢。
最佳答案
假设您正在谈论基于 UDP 的 RTP,AFAIK VLC 使用 live555 库来实现客户端 RTSP/RTP 功能,并且 live555 有一个内置的 jitter buffer ,可以为您处理重新排序。我不记得手的 jitter buffer 的大小,但 100ms 似乎敲响了警钟。
如果您不知道:在开发媒体流应用程序(尤其是通过 UDP)时,增加接收器缓冲区的大小非常重要。如果它已满并且数据包被丢弃,这可以解释您的工件。
此外,UDP 不可靠意味着如果数据包丢失/损坏,并且您没有合适的机制来处理它,您将遇到伪影。
关于streaming - UDP 视频流的数据包顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11330318/