RTP\H.264的时间戳

use*_*206 2 video rtp video-streaming h.264

我对I,P,B帧及其时间戳有疑问.

我知道RTP数据包的时间戳假设是单调增加的.我也知道(纠正我,如果我错了)在h.264 B_5帧中可以在P_4帧之前发送但在(P_4然后是B_5)之后显示,因此解码器将使用B帧来解码P帧.

我有一个RTP\H.264流的pcap捕获,我可以看到时间戳增加\减少...而不是单调增加.

所以我的问题是什么值的RTP数据包(I,P,B帧)应该在h264传输上得到什么?

我很乐意对此事做一些澄清.

谢谢.

Ral*_*alf 5

我知道RTP数据包的时间戳假设是单调增加的.

根据RFC3550

如果数据不是按照采样的顺序传输,则连续的RTP分组可以包含不是单调的时间戳,如MPEG内插视频帧的情况.(传输的数据包的序列号仍然是单调的.)

此外,您的陈述不正确

我也知道(纠正我,如果我错了)在h.264 B_5帧可以在P_4帧之前发送但在(P_4然后B_5)之后显示(因此解码器将使用B帧来解码P帧).

首先,B帧依赖于I帧或P帧,即B帧不用于解码P帧,反之亦然 - > B5取决于P4.在P4之前没有理由发送B5.请注意,这取决于您的GOP结构.

如果以解码顺序发送媒体样本(这取决于RFC6184中定义的分组化模式)并且GOP类似于I-B1-B2-B3-P,则这些帧将被发送IP-B2-B1-B3.

如果使用交错分组化模式,则必须使用解码顺序号(DON)来恢复解码顺序.您可以在RFC6184中阅读相关内容.