1

我正在用c编写一个抖动缓冲程序来处理rtp数据包。这里RTP使用UDP进行传输,所以连接不可靠,数据包不会按顺序排列,也会有一些数据包丢失。如果数据包顺序发生变化,我将通过序列号(在 RTP 标头信息中)排列它们,但我如何处理或补偿丢包?(因为丢包不在我手中)

注意:我将 h264 作为有效负载处理,他们要求我仅使用 RTP 标头

4

2 回答 2

2

你不能。除了伪造丢失的数据之外,您无能为力。

希望 RTP 数据包中使用的实际编码可以帮助实际接收者更好地处理数据包丢失。如果您没有解码 RTP 有效负载并充当有效负载的编解码器,那么您无能为力,而编解码器无论如何都不会做。

对于 H.264,每个 RTP 数据包将包含一个完整的 NAL 单元、一个 NAL 单元片段,或者可能包含多个 NAL 单元。H.264 编解码器只希望接收 NAL 单元流,并且 IT 将知道如果出现数据包丢失该怎么办。

于 2015-03-27T09:07:11.973 回答
0

简而言之,正如其他人所说,你不能。

如果数据包在均匀分布后随机丢失,您可以通过向其添加 FEC 来保护您的流。

于 2019-02-18T12:50:39.093 回答