为什么 RTP 的视频有效负载时间戳使用 90 kHz 时钟速率?

Why RTP's timestamp for video payload use a 90 kHz clock rate?

我发现很多 RFC 都说:

A 90 kHz clock rate MUST be used.

但我不明白这是什么原因。

您可以在 Colin Perkins 第 154 页的“RTP:互联网音频和视频”中找到答案

简而言之,选择这样的速率是为了使大多数格式通用的帧速率具有整数时间戳增量,即分区仍然可以有提醒,但范围可以忽略不计。

RTP 中的 90kHz 源自 mpeg 传输流中的呈现时间戳 (PTS)。 PTS 用于同步程序的独立流,例如视频、音频和字幕。

我觉得rfc3551的这个解释比较有说服力

All of these video encodings use an RTP timestamp frequency of 90,000 Hz, the same as the MPEG presentation time stamp frequency. This frequency yields exact integer timestamp increments for the typical 24 (HDTV), 25 (PAL), and 29.97 (NTSC) and 30 Hz (HDTV) frame rates and 50, 59.94 and 60 Hz field rates. While 90 kHz is the RECOMMENDED rate for future video encodings used within this profile, other rates MAY be used. However, it is not sufficient to use the video frame rate (typically between 15 and 30 Hz) because that does not provide adequate resolution for typical synchronization requirements when calculating the RTP timestamp corresponding to the NTP timestamp in an RTCP SR packet. The timestamp resolution MUST also be sufficient for the jitter estimate contained in the receiver reports.

For most of these video encodings, the RTP timestamp encodes the sampling instant of the video image contained in the RTP data packet. If a video image occupies more than one packet, the timestamp is the same on all of those packets. Packets from different video images are distinguished by their different timestamps.

Most of these video encodings also specify that the marker bit of the RTP header SHOULD be set to one in the last packet of a video frame and otherwise set to zero. Thus, it is not necessary to wait for a following packet with a different timestamp to detect that a new frame should be displayed.