RFC 3984 - RTP Payload Format for H.264 Video(7)

时间:2006-10-31 来源: 作者: 点击:
ofdeint-buf-capMUSTbeanintegerinthe rangeof0to4294967295,inclusive. Informativenote:deint-buf-capindicates themaximumpossiblesizeofthe deinterleavingbufferofthereceiveronly. Whennetworkjittercanoccur
  
                        of deint-buf-cap MUST be an integer in the
                        range of 0 to 4294967295, inclusive.

                            Informative note: deint-buf-cap indicates
                            the maximum possible size of the
                            deinterleaving buffer of the receiver only.

                            When network jitter can occur, an
                            appropriately sized jitter buffer has to
                            be provisioned for as well.

       sprop-init-buf-time:
                        This parameter MAY be used to signal the
                        properties of a NAL unit stream.  The parameter
                        MUST NOT be present, if the value of
                        packetization-mode is equal to 0 or 1.

                        The parameter signals the initial buffering
                        time that a receiver MUST buffer before
                        starting decoding to recover the NAL unit
                        decoding order from the transmission order.
                        The parameter is the maximum value of
                        (transmission time of a NAL unit - decoding
                        time of the NAL unit), assuming reliable and
                        instantaneous transmission, the same
                        timeline for transmission and decoding, and
                        that decoding starts when the first packet
                        arrives.

                        An example of specifying the value of sprop-
                        init-buf-time follows.  A NAL unit stream is
                        sent in the following interleaved order, in
                        which the value corresponds to the decoding
                        time and the transmission order is from left to
                        right:

                        0  2  1  3  5  4  6  8  7 ...

                        Assuming a steady transmission rate of NAL
                        units, the transmission times are:

                        0  1  2  3  4  5  6  7  8 ...

                        Subtracting the decoding time from the
                        transmission time column-wise results in the
                        following series:

                        0 -1  1  0 -1  1  0 -1  1 ...

                        Thus, in terms of intervals of NAL unit
                        transmission times, the value of
                        sprop-init-buf-time in this
                        example is 1.

                        The parameter is coded as a non-negative base10
                        integer representation in clock ticks of a 90-
                        kHz clock.  If the parameter is not present,
                        then no initial buffering time value is
                        defined.  Otherwise the value of sprop-init-
                        buf-time MUST be an integer in the range of 0
                        to 4294967295, inclusive.

                        In addition to the signaled sprop-init-buf-
                        time, receivers SHOULD take into account the
                        transmission delay jitter buffering, including
                        buffering for the delay jitter caused by
                        mixers, translators, gateways, proxies,
                        traffic-shapers, and other network elements.

       sprop-max-don-diff:
                        This parameter MAY be used to signal the
                        properties of a NAL unit stream.  It MUST NOT
                        be used to signal transmitter or receiver or
                        codec capabilities.  The parameter MUST NOT be
                        present if the value of packetization-mode is
                        equal to 0 or 1.  sprop-max-don-diff is an
                        integer in the range of 0 to 32767, inclusive.
                        If sprop-max-don-diff is not present, the value
                        of the parameter is unspecified.  sprop-max-
                        don-diff is calculated as follows:

                        sprop-max-don-diff = max{AbsDON(i) -
                        AbsDON(j)},
                        for any i and any j>i,

                        where i and j indicate the index of the NAL
                        unit in the transmission order and AbsDON
                        denotes a decoding order number of the NAL
                        unit that does not wrap around to 0 after
                        65535.  In other words, AbsDON is calculated as
                        follows: Let m and n be consecutive NAL units
                        in transmission order.  For the very first NAL
                        unit in transmission order (whose index is 0),
                        AbsDON(0) = DON(0).  For other NAL units,
                        AbsDON is calculated as follows:

                        If DON(m) == DON(n), AbsDON(n) = AbsDON(m)

                        If (DON(m) < DON(n) and DON(n) - DON(m) <
                        32768),
                        AbsDON(n) = AbsDON(m) + DON(n) - DON(m)

                        If (DON(m) > DON(n) and DON(m) - DON(n) >=
                        32768),
                        AbsDON(n) = AbsDON(m) + 65536 - DON(m) + DON(n)

                        If (DON(m) < DON(n) and DON(n) - DON(m) >=
                        32768),

                        AbsDON(n) = AbsDON(m) - (DON(m) + 65536 -
                        DON(n))

                        If (DON(m) > DON(n) and DON(m) - DON(n) <
                        32768),
                        AbsDON(n) = AbsDON(m) - (DON(m) - DON(n))

                        where DON(i) is the decoding order number of
                        the NAL unit having index i in the transmission
                        order.  The decoding order number is specified
                        in section 5.5 of RFC 3984.

                            Informative note: Receivers may use sprop-
                            max-don-diff to trigger which NAL units in
                            the receiver buffer can be passed to the
                            decoder.

     max-rcmd-nalu-size:
                        This parameter MAY be used to signal the
                        capabilities of a receiver.  The parameter MUST
                        NOT be used for any other purposes.  The value
                        of the parameter indicates the largest NALU
                        size in bytes that the receiver can handle
                        efficiently.  The parameter value is a
                        recommendation, not a strict upper boundary.
                        The sender MAY create larger NALUs but must be
                        aware that the handling of these may come at a
                        higher cost than NALUs conforming to the
                        limitation.

                        The value of max-rcmd-nalu-size MUST be an
                        integer in the range of 0 to 4294967295,
                        inclusive.  If this parameter is not specified,
                        no known limitation to the NALU size exists.
                        Senders still have to consider the MTU size
                        available between the sender and the receiver
                        and SHOULD run MTU discovery for this purpose.

                        This parameter is motivated by, for example, an
                        IP to H.223 video telephony gateway, where
                        NALUs smaller than the H.223 transport data

                        unit will be more efficient.  A gateway may
                        terminate IP; thus, MTU discovery will normally
                        not work beyond the gateway.

                            Informative note: Setting this parameter to
                            a lower than necessary value may have a
                            negative impact.

   Encoding considerations:
                        This type is only defined for transfer via RTP
                        (RFC 3550).

                        A file format of H.264/AVC video is defined in
                        [29].  This definition is utilized by other
                        file formats, such as the 3GPP multimedia file
                        format (MIME type video/3gpp) [30] or the MP4
                        file format (MIME type video/mp4).

   Security considerations:
                        See section 9 of RFC 3984.

   Public specification:
                        Please refer to RFC 3984 and its section 15.

   Additional information:
                        None

   File extensions:     none
   Macintosh file type code: none
   Object identifier or OID: none

   Person & email address to contact for further information:
                        stewe@stewe.org

   Intended usage:      COMMON

   Author:
                        stewe@stewe.org
   Change controller:
                        IETF Audio/Video Transport working group
                        delegated from the IESG.

8.2.  SDP Parameters

8.2.1.  Mapping of MIME Parameters to SDP

   The MIME media type video/H264 string is mapped to fields in the
   Session Description Protocol (SDP) [5] as follows:

   o  The media name in the "m=" line of SDP MUST be video.

   o  The encoding name in the "a=rtpmap" line of SDP MUST be H264 (the
      MIME subtype).

   o  The clock rate in the "a=rtpmap" line MUST be 90000.

   o  The OPTIONAL parameters "profile-level-id", "max-mbps", "max-fs",
      "max-cpb", "max-dpb", "max-br", "redundant-pic-cap", "sprop-
      parameter-sets", "parameter-add", "packetization-mode", "sprop-
      interleaving-depth", "deint-buf-cap", "sprop-deint-buf-req",
      "sprop-init-buf-time", "sprop-max-don-diff", and "max-rcmd-nalu-
      size", when present, MUST be included in the "a=fmtp" line of SDP.
      These parameters are expressed as a MIME media type string, in the
      form of a semicolon separated list of parameter=value pairs.

   An example of media representation in SDP is as follows (Baseline
   Profile, Level 3.0, some of the constraints of the Main profile may
   not be obeyed):

      m=video 49170 RTP/AVP 98
      a=rtpmap:98 H264/90000
      a=fmtp:98 profile-level-id=42A01E;
                sprop-parameter-sets=Z0IACpZTBYmI,aMljiA==

8.2.2.  Usage with the SDP Offer/Answer Model

   When H.264 is offered over RTP using SDP in an Offer/Answer model [7]
   for negotiation for unicast usage, the following limitations and
   rules apply:

   o  The parameters identifying a media format configuration for H.264
      are "profile-level-id", "packetization-mode", and, if required by
      "packetization-mode", "sprop-deint-buf-req".  These three
      parameters MUST be used symmetrically; i.e., the answerer MUST
      either maintain all configuration parameters or remove the media
      format (payload type) completely, if one or more of the parameter
      values are not supported.

         Informative note: The requirement for symmetric use applies
         only for the above three parameters and not for the other
         stream properties and capability parameters.

      To simplify handling and matching of these configurations, the
      same RTP payload type number used in the offer SHOULD also be used
      in the answer, as specified in [7].  An answer MUST NOT contain a
      payload type number used in the offer unless the configuration
      ("profile-level-id", "packetization-mode", and, if present,
      "sprop-deint-buf-req") is the same as in the offer.

         Informative note: An offerer, when receiving the answer, has to
         compare payload types not declared in the offer based on media
         type (i.e., video/h264) and the above three parameters with any
         payload types it has already declared, in order to determine
         whether the configuration in question is new or equivalent to a
         configuration already offered.

   o  The parameters "sprop-parameter-sets", "sprop-deint-buf-req",
      "sprop-interleaving-depth", "sprop-max-don-diff", and "sprop-
      init-buf-time" describe the properties of the NAL unit stream that
      the offerer or answerer is sending for this media format
      configuration.  This differs from the normal usage of the
      Offer/Answer parameters: normally such parameters declare the
      properties of the stream that the offerer or the answerer is able
      to receive.  When dealing with H.264, the offerer assumes that the
      answerer will be able to receive media encoded using the
      configuration being offered.

         Informative note: The above parameters apply for any stream
         sent by the declaring entity with the same configuration; i.e.,
         they are dependent on their source.  Rather then being bound to
         the payload type, the values may have to be applied to another
         payload type when being sent, as they apply for the
         configuration.

   o  The capability parameters ("max-mbps", "max-fs", "max-cpb", "max-
      dpb", "max-br", ,"redundant-pic-cap", "max-rcmd-nalu-size") MAY be
      used to declare further capabilities.  Their interpretation
      depends on the direction attribute.  When the direction attribute
      is sendonly, then the parameters describe the limits of the RTP
      packets and the NAL unit stream that the sender is capable of
      producing.  When the direction attribute is sendrecv or recvonly,
      then the parameters describe the limitations of what the receiver
      accepts.

   o  As specified above, an offerer has to include the size of the
      deinterleaving buffer in the offer for an interleaved H.264
      stream.  To enable the offerer and answerer to inform each other
      about their capabilities for deinterleaving buffering, both
      parties are RECOMMENDED to include "deint-buf-cap".  This
      information MAY be used when the value for "sprop-deint-buf-req"
      is selected in a second round of offer and answer.  For
      interleaved streams, it is also RECOMMENDED to consider offering
      multiple payload types with different buffering requirements when
      the capabilities of the receiver are unknown.

   o  The "sprop-parameter-sets" parameter is used as described above.
      In addition, an answerer MUST maintain all parameter sets received
      in the offer in its answer.  Depending on the value of the
      "parameter-add" parameter, different rules apply: If "parameter-
      add" is false (0), the answer MUST NOT add any additional
      parameter sets.  If "parameter-add" is true (1), the answerer, in
      its answer, MAY add additional parameter sets to the "sprop-
      parameter-sets" parameter.  The answerer MUST also, independent of
      the value of "parameter-add", accept to receive a video stream
      using the sprop-parameter-sets it declared in the answer.

         Informative note: care must be taken when parameter sets are
         added not to cause overwriting of already transmitted parameter
         sets by using conflicting parameter set identifiers.

   For streams being delivered over multicast, the following rules apply
   in addition:

   o  The stream properties parameters ("sprop-parameter-sets", "sprop-
      deint-buf-req", "sprop-interleaving-depth", "sprop-max-don-diff",
      and "sprop-init-buf-time") MUST NOT be changed by the answerer.
      Thus, a payload type can either be accepted unaltered or removed.

   o  The receiver capability parameters "max-mbps", "max-fs", "max-
      cpb", "max-dpb", "max-br", and "max-rcmd-nalu-size" MUST be
      supported by the answerer for all streams declared as sendrecv or
      recvonly; otherwise, one of the following actions MUST be
      performed: the media format is removed, or the session rejected.

   o  The receiver capability parameter redundant-pic-cap SHOULD be
      supported by the answerer for all streams declared as sendrecv or
      recvonly as follows:  The answerer SHOULD NOT include redundant
      coded pictures in the transmitted stream if the offerer indicated
      redundant-pic-cap equal to 0.  Otherwise (when redundant_pic_cap
      is equal to 1), it is beyond the scope of this memo to recommend
      how the answerer should use redundant coded pictures.

   Below are the complete lists of how the different parameters shall be
   interpreted in the different combinations of offer or answer and
   direction attribute.

   o  In offers and answers for which "a=sendrecv" or no direction
      attribute is used, or in offers and answers for which "a=recvonly"
      is used, the following interpretation of the parameters MUST be
      used.

      Declaring actual configuration or properties for receiving:

         - profile-level-id
         - packetization-mode

      Declaring actual properties of the stream to be sent (applicable
      only when "a=sendrecv" or no direction attribute is used):

         - sprop-deint-buf-req
         - sprop-interleaving-depth
         - sprop-parameter-sets
         - sprop-max-don-diff
         - sprop-init-buf-time

      Declaring receiver implementation capabilities:

         - max-mbps
         - max-fs
         - max-cpb
         - max-dpb
         - max-br
         - redundant-pic-cap
         - deint-buf-cap
         - max-rcmd-nalu-size

      Declaring how Offer/Answer negotiation shall be performed:

         - parameter-add

   o  In an offer or answer for which the direction attribute
      "a=sendonly" is included for the media stream, the following
      interpretation of the parameters MUST be used:

      Declaring actual configuration and properties of stream proposed
      to be sent:

         - profile-level-id
         - packetization-mode
         - sprop-deint-buf-req

         - sprop-max-don-diff
         - sprop-init-buf-time
         - sprop-parameter-sets
         - sprop-interleaving-depth

      Declaring the capabilities of the sender when it receives a
      stream:
------分隔线----------------------------
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容