📄 rfc3984.txt
字号:
for interarrival jitter (section 6.4.1 of RFC 3550) assume that
the RTP timestamp of a packet is directly proportional to its
transmission time.
5.2. Common Structure of the RTP Payload Format
The payload format defines three different basic payload structures.
A receiver can identify the payload structure by the first byte of
the RTP payload, which co-serves as the RTP payload header and, in
some cases, as the first byte of the payload. This byte is always
structured as a NAL unit header. The NAL unit type field indicates
which structure is present. The possible structures are as follows:
Single NAL Unit Packet: Contains only a single NAL unit in the
payload. The NAL header type field will be equal to the original NAL
unit type; i.e., in the range of 1 to 23, inclusive. Specified in
section 5.6.
Aggregation packet: Packet type used to aggregate multiple NAL units
into a single RTP payload. This packet exists in four versions, the
Single-Time Aggregation Packet type A (STAP-A), the Single-Time
Aggregation Packet type B (STAP-B), Multi-Time Aggregation Packet
(MTAP) with 16-bit offset (MTAP16), and Multi-Time Aggregation Packet
(MTAP) with 24-bit offset (MTAP24). The NAL unit type numbers
assigned for STAP-A, STAP-B, MTAP16, and MTAP24 are 24, 25, 26, and
27, respectively. Specified in section 5.7.
Fragmentation unit: Used to fragment a single NAL unit over multiple
RTP packets. Exists with two versions, FU-A and FU-B, identified
with the NAL unit type numbers 28 and 29, respectively. Specified in
section 5.8.
Table 1. Summary of NAL unit types and their payload structures
Type Packet Type name Section
---------------------------------------------------------
0 undefined -
1-23 NAL unit Single NAL unit packet per H.264 5.6
24 STAP-A Single-time aggregation packet 5.7.1
25 STAP-B Single-time aggregation packet 5.7.1
26 MTAP16 Multi-time aggregation packet 5.7.2
27 MTAP24 Multi-time aggregation packet 5.7.2
28 FU-A Fragmentation unit 5.8
29 FU-B Fragmentation unit 5.8
30-31 undefined -
Wenger, et al. Standards Track [Page 11]
RFC 3984 RTP Payload Format for H.264 Video February 2005
Informative note: This specification does not limit the size of
NAL units encapsulated in single NAL unit packets and
fragmentation units. The maximum size of a NAL unit encapsulated
in any aggregation packet is 65535 bytes.
5.3. NAL Unit Octet Usage
The structure and semantics of the NAL unit octet were introduced in
section 1.3. For convenience, the format of the NAL unit type octet
is reprinted below:
+---------------+
|0|1|2|3|4|5|6|7|
+-+-+-+-+-+-+-+-+
|F|NRI| Type |
+---------------+
This section specifies the semantics of F and NRI according to this
specification.
F: 1 bit
forbidden_zero_bit. A value of 0 indicates that the NAL unit type
octet and payload should not contain bit errors or other syntax
violations. A value of 1 indicates that the NAL unit type octet
and payload may contain bit errors or other syntax violations.
MANEs SHOULD set the F bit to indicate detected bit errors in the
NAL unit. The H.264 specification requires that the F bit is
equal to 0. When the F bit is set, the decoder is advised that
bit errors or any other syntax violations may be present in the
payload or in the NAL unit type octet. The simplest decoder
reaction to a NAL unit in which the F bit is equal to 1 is to
discard such a NAL unit and to conceal the lost data in the
discarded NAL unit.
NRI: 2 bits
nal_ref_idc. The semantics of value 00 and a non-zero value
remain unchanged from the H.264 specification. In other words, a
value of 00 indicates that the content of the NAL unit is not used
to reconstruct reference pictures for inter picture prediction.
Such NAL units can be discarded without risking the integrity of
the reference pictures. Values greater than 00 indicate that the
decoding of the NAL unit is required to maintain the integrity of
the reference pictures.
In addition to the specification above, according to this RTP
payload specification, values of NRI greater than 00 indicate the
relative transport priority, as determined by the encoder. MANEs
Wenger, et al. Standards Track [Page 12]
RFC 3984 RTP Payload Format for H.264 Video February 2005
can use this information to protect more important NAL units
better than they do less important NAL units. The highest
transport priority is 11, followed by 10, and then by 01; finally,
00 is the lowest.
Informative note: Any non-zero value of NRI is handled
identically in H.264 decoders. Therefore, receivers need not
manipulate the value of NRI when passing NAL units to the
decoder.
An H.264 encoder MUST set the value of NRI according to the H.264
specification (subclause 7.4.1) when the value of nal_unit_type is
in the range of 1 to 12, inclusive. In particular, the H.264
specification requires that the value of NRI SHALL be equal to 0
for all NAL units having nal_unit_type equal to 6, 9, 10, 11, or
12.
For NAL units having nal_unit_type equal to 7 or 8 (indicating a
sequence parameter set or a picture parameter set, respectively),
an H.264 encoder SHOULD set the value of NRI to 11 (in binary
format). For coded slice NAL units of a primary coded picture
having nal_unit_type equal to 5 (indicating a coded slice
belonging to an IDR picture), an H.264 encoder SHOULD set the
value of NRI to 11 (in binary format).
For a mapping of the remaining nal_unit_types to NRI values, the
following example MAY be used and has been shown to be efficient
in a certain environment [13]. Other mappings MAY also be
desirable, depending on the application and the H.264/AVC Annex A
profile in use.
Informative note: Data Partitioning is not available in certain
profiles; e.g., in the Main or Baseline profiles.
Consequently, the nal unit types 2, 3, and 4 can occur only if
the video bitstream conforms to a profile in which data
partitioning is allowed and not in streams that conform to the
Main or Baseline profiles.
Table 2. Example of NRI values for coded slices and coded slice
data partitions of primary coded reference pictures
NAL Unit Type Content of NAL unit NRI (binary)
----------------------------------------------------------------
1 non-IDR coded slice 10
2 Coded slice data partition A 10
3 Coded slice data partition B 01
4 Coded slice data partition C 01
Wenger, et al. Standards Track [Page 13]
RFC 3984 RTP Payload Format for H.264 Video February 2005
Informative note: As mentioned before, the NRI value of non-
reference pictures is 00 as mandated by H.264/AVC.
An H.264 encoder SHOULD set the value of NRI for coded slice and
coded slice data partition NAL units of redundant coded reference
pictures equal to 01 (in binary format).
Definitions of the values for NRI for NAL unit types 24 to 29,
inclusive, are given in sections 5.7 and 5.8 of this memo.
No recommendation for the value of NRI is given for NAL units
having nal_unit_type in the range of 13 to 23, inclusive, because
these values are reserved for ITU-T and ISO/IEC. No
recommendation for the value of NRI is given for NAL units having
nal_unit_type equal to 0 or in the range of 30 to 31, inclusive,
as the semantics of these values are not specified in this memo.
5.4. Packetization Modes
This memo specifies three cases of packetization modes:
o Single NAL unit mode
o Non-interleaved mode
o Interleaved mode
The single NAL unit mode is targeted for conversational systems that
comply with ITU-T Recommendation H.241 [15] (see section 12.1). The
non-interleaved mode is targeted for conversational systems that may
not comply with ITU-T Recommendation H.241. In the non-interleaved
mode, NAL units are transmitted in NAL unit decoding order. The
interleaved mode is targeted for systems that do not require very low
end-to-end latency. The interleaved mode allows transmission of NAL
units out of NAL unit decoding order.
The packetization mode in use MAY be signaled by the value of the
OPTIONAL packetization-mode MIME parameter or by external means. The
used packetization mode governs which NAL unit types are allowed in
RTP payloads. Table 3 summarizes the allowed NAL unit types for each
packetization mode. Some NAL unit type values (indicated as
undefined in Table 3) are reserved for future extensions. NAL units
of those types SHOULD NOT be sent by a sender and MUST be ignored by
a receiver. For example, the Types 1-23, with the associated packet
type "NAL unit", are allowed in "Single NAL Unit Mode" and in "Non-
Interleaved Mode", but disallowed in "Interleaved Mode".
Packetization modes are explained in more detail in section 6.
Wenger, et al. Standards Track [Page 14]
RFC 3984 RTP Payload Format for H.264 Video February 2005
Table 3. Summary of allowed NAL unit types for each packetization
mode (yes = allowed, no = disallowed, ig = ignore)
Type Packet Single NAL Non-Interleaved Interleaved
Unit Mode Mode Mode
-------------------------------------------------------------
0 undefined ig ig ig
1-23 NAL unit yes yes no
24 STAP-A no yes no
25 STAP-B no no yes
26 MTAP16 no no yes
27 MTAP24 no no yes
28 FU-A no yes yes
29 FU-B no no yes
30-31 undefined ig ig ig
5.5. Decoding Order Number (DON)
In the interleaved packetization mode, the transmission order of NAL
units is allowed to differ from the decoding order of the NAL units.
Decoding order number (DON) is a field in the payload structure or a
derived variable that indicates the NAL unit decoding order.
Rationale and examples of use cases for transmission out of decoding
order and for the use of DON are given in section 13.
The coupling of transmission and decoding order is controlled by the
OPTIONAL sprop-interleaving-depth MIME parameter as follows. When
the value of the OPTIONAL sprop-interleaving-depth MIME parameter is
equal to 0 (explicitly or per default) or transmission of NAL units
out of their decoding order is disallowed by external means, the
transmission order of NAL units MUST conform to the NAL unit decoding
order. When the value of the OPTIONAL sprop-interleaving-depth MIME
parameter is greater than 0 or transmission of NAL units out of their
decoding order is allowed by external means,
o the order of NAL units in an MTAP16 and an MTAP24 is NOT REQUIRED
to be the NAL unit decoding order, and
o the order of NAL units generated by decapsulating STAP-Bs, MTAPs,
and FUs in two consecutive packets is NOT REQUIRED to be the NAL
unit decoding order.
The RTP payload structures for a single NAL unit packet, an STAP-A,
and an FU-A do not include DON. STAP-B and FU-B structures include
DON, and the structure of MTAPs enables derivation of DON as
specified in section 5.7.2.
Wenger, et al. Standards Track [Page 15]
RFC 3984 RTP Payload Format for H.264 Video February 2005
Informative note: When an FU-A occurs in interleaved mode, it
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -