RTP数据包丢失处理

时间:2015-03-27 08:59:46

标签: c sockets udp rtp rtcp

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

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

2 个答案:

答案 0 :(得分:2)

你不能。如果没有制作丢失的数据,那么你无能为力。

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

对于H.264,每个RTP数据包将包含整个NAL单元,NAL单元片段或可能包含多个NAL单元。 H.264编解码器只是希望能够提供NAL单元流,并且如果存在数据包丢失,IT将知道该怎么做。

答案 1 :(得分:0)

简而言之,就像其他人所说的那样,你做不到。

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