5.1. RTP Header Usage (Verwendung des RTP-Headers)
5.1. RTP Header Usage (Verwendung des RTP-Headers)
Das Format des RTP-Headers ist in RFC 3550 [5] spezifiziert und der Einfachheit halber in Abbildung 1 abgedruckt. Dieses Nutzdatenformat verwendet die Felder des Headers in einer Weise, die mit dieser Spezifikation übereinstimmt.
Wenn pro RTP-Paket eine NAL unit gekapselt wird, ist das EMPFOHLENE RTP-Nutzdatenformat in Abschnitt 5.6 spezifiziert. Die RTP-Nutzlast (und die Einstellungen einiger RTP-Headerbits) für Aggregationspakete und Fragmentierungseinheiten sind jeweils in den Abschnitten 5.7.2 und 5.8 spezifiziert.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT | sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| contributing source (CSRC) identifiers |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Abbildung 1. RTP-Header gemäß RFC 3550
Die gemäß diesem RTP-Nutzdatenformat zu setzenden RTP-Headerinformationen werden wie folgt gesetzt.
Marker bit (M): 1 Bit
Wird für das allerletzte Paket der durch den RTP-Zeitstempel angegebenen Access Unit gesetzt, im Einklang mit der üblichen Verwendung des M-Bits in Videoformaten, um eine effiziente Handhabung des Wiedergabepuffers zu ermöglichen. Bei Aggregationspaketen (STAP und MTAP) MUSS das Marker-Bit im RTP-Header auf den Wert gesetzt werden, den das Marker-Bit des letzten NAL unit des Aggregationspakets gehabt hätte, wäre es in einem eigenen RTP-Paket transportiert worden. Decoder DÜRFEN dieses Bit als frühe Anzeige des letzten Pakets einer Access Unit verwenden, DÜRFEN sich jedoch NICHT auf diese Eigenschaft verlassen.
Hinweis (informativ): Mit einem Aggregationspaket, das mehrere NAL units trägt, ist nur ein M-Bit verknüpft. Wenn ein Gateway ein Aggregationspaket in mehrere Pakete umgepacketisiert hat, kann es die M-Bits dieser Pakete nicht zuverlässig setzen.
Payload type (PT): 7 Bits
Die Zuweisung eines RTP-Nutzlasttyps für dieses neue Paketformat liegt außerhalb des Geltungsbereichs dieses Dokuments und wird hier nicht spezifiziert. Die Zuweisung eines Nutzlasttyps muss entweder über das verwendete Profil oder dynamisch erfolgen.
Sequence number (SN): 16 Bits
Wird gemäß RFC 3550 gesetzt und verwendet. Im Einzel-NALU- und im nicht verschränkten Packetisierungsmodus wird die Sequenznummer verwendet, um die Dekodierreihenfolge für die NALU zu bestimmen.
Timestamp: 32 Bits
Der RTP-Zeitstempel wird auf den Abtastzeitstempel des Inhalts gesetzt. Es MUSS eine Taktrate von 90 kHz verwendet werden.
Wenn die NAL unit keine eigenen zeitlichen Eigenschaften hat (z. B. Parameter-Set- und SEI-NAL units), wird der RTP-Zeitstempel auf den RTP-Zeitstempel des primär codierten Bildes der Access Unit gesetzt, in der die NAL unit enthalten ist, gemäß Abschnitt 7.4.1.2 von [1].
Die Setzung des RTP-Zeitstempels für MTAP ist in Abschnitt 5.7.2 definiert.
Empfänger SOLLTEN alle in Access Units enthaltenen Picture-Timing-SEI-Nachrichten ignorieren, die nur einen Anzeigezeitstempel haben. Stattdessen SOLLTEN Empfänger den RTP-Zeitstempel zur Synchronisation des Anzeigeprozesses verwenden.
Wenn eine Access Unit mehr als einen Anzeigezeitstempel in einer Picture-Timing-SEI-Nachricht trägt, SOLLTEN die Informationen in der SEI-Nachricht relativ zum RTP-Zeitstempel behandelt werden, wobei das früheste Ereignis zum durch den RTP-Zeitstempel angegebenen Zeitpunkt und nachfolgende Ereignisse später auftreten, gemäß der Differenz der in der Picture-Timing-SEI-Nachricht enthaltenen Bildzeitwerte.
Seien tSEI1, tSEI2, ..., tSEIn die in der SEI-Nachricht einer Access Unit enthaltenen Anzeigezeitstempel, wobei tSEI1 der früheste dieser Zeitstempel ist. Sei tmadjst() eine Funktion, die die Zeitskala der SEI-Nachrichten auf eine 90-kHz-Zeitskala anpasst. Sei TS der RTP-Zeitstempel. Dann ist die Anzeigezeit für das mit tSEI1 verknüpfte Ereignis TS. Die Anzeigezeit für das Ereignis mit tSEIx, wobei x in [2..n] liegt, ist TS + tmadjst(tSEIx - tSEI1).
Hinweis (informativ): Die Anzeige codierter Frames als Felder ist häufig in einer als 3:2-Pulldown bekannten Operation erforderlich, bei der Film-Inhalt aus codierten Frames auf einem interlace-gescannten Display angezeigt wird. Die Picture-Timing-SEI-Nachricht ermöglicht die Übertragung mehrerer Zeitstempel für dasselbe codierte Bild, sodass der 3:2-Pulldown-Prozess vollständig gesteuert werden kann. Der Mechanismus der Picture-Timing-SEI-Nachricht ist nötig, weil im RTP-Zeitstempel nur ein Zeitstempel pro codiertem Frame übermittelt werden kann.