⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc3984.txt

📁 完整的RTP RTSP代码库
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   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.  MANEsWenger, 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                01Wenger, 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               ig5.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      always follows an FU-B, which sets its DON.      Informative note: If a transmitter wants to encapsulate a single      NAL unit per packet and transmit packets out of their decoding      order, STAP-B packet type can be used.   In the single NAL unit packetization mode, the transmission order of   NAL units, determined by the RTP sequence number, MUST be the same as   their NAL unit decoding order.  In the non-interleaved packetization   mode, the transmission order of NAL units in single NAL unit packets,   STAP-As, and FU-As MUST be the same as their NAL unit decoding order.   The NAL units within an STAP MUST appear in the NAL unit decoding   order.  Thus, the decoding order is first provided through the   implicit order within a STAP, and second provided through the RTP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -