summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc4587.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc4587.txt')
-rw-r--r--doc/rfc/rfc4587.txt955
1 files changed, 955 insertions, 0 deletions
diff --git a/doc/rfc/rfc4587.txt b/doc/rfc/rfc4587.txt
new file mode 100644
index 0000000..e545c93
--- /dev/null
+++ b/doc/rfc/rfc4587.txt
@@ -0,0 +1,955 @@
+
+
+
+
+
+
+Network Working Group R. Even
+Request for Comments: 4587 Polycom
+Obsoletes: 2032 August 2006
+Category: Standards Track
+
+
+ RTP Payload Format for H.261 Video Streams
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2006).
+
+Abstract
+
+ This memo describes a scheme to packetize an H.261 video stream for
+ transport using the Real-time Transport Protocol, RTP, with any of
+ the underlying protocols that carry RTP.
+
+ The memo also describes the syntax and semantics of the Session
+ Description Protocol (SDP) parameters needed to support the H.261
+ video codec. A media type registration is included for this payload
+ format.
+
+ This specification obsoletes RFC 2032.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Even Standards Track [Page 1]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+Table of Contents
+
+ 1. Introduction ....................................................3
+ 2. Terminology .....................................................3
+ 3. Structure of the Packet Stream ..................................3
+ 3.1. Overview of the ITU-T Recommendation H.261 .................3
+ 3.2. Considerations for Packetization ...........................4
+ 4. Specification of the Packetization Scheme .......................5
+ 4.1. Usage of RTP ...............................................5
+ 4.2. Recommendations for Operation with Hardware Codecs .........8
+ 5. Packet Loss Issues ..............................................9
+ 6. IANA Considerations ............................................10
+ 6.1. Media Type Registrations ..................................10
+ 6.1.1. Registration of MIME Media Type video/H261 .........10
+ 6.2. SDP Parameters ............................................12
+ 6.2.1. Usage with the SDP Offer Answer Model ..............12
+ 7. Backward Compatibility to RFC 2032 .............................13
+ 7.1. Optional H.261-Specific Control Packets ...................13
+ 7.2. New SDP Optional Parameters ...............................13
+ 8. Security Considerations ........................................14
+ 9. Acknowledgements ...............................................14
+ 10. Changes from RFC 2032 .........................................14
+ 11. References ....................................................15
+ 11.1. Normative References .....................................15
+ 11.2. Informative References ...................................15
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Even Standards Track [Page 2]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+1. Introduction
+
+ ITU-T Recommendation H.261 [H261] specifies the encoding used by
+ ITU-T-compliant video-conference codecs. Although this encoding was
+ originally specified for fixed-data rate Integrated Services Digital
+ Network (ISDN) circuits, experiments [INRIA], [MICE] have shown that
+ they can also be used over packet-switched networks, such as the
+ Internet.
+
+ The purpose of this memo is to specify the RTP payload format for
+ encapsulating H.261 video streams in RTP [RFC3550].
+
+ This document obsoletes RFC 2032 and updates the "video/h261" media
+ type that was registered in RFC 3555.
+
+2. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in RFC 2119 [RFC2119] and
+ indicate requirement levels for compliant RTP implementations.
+
+3. Structure of the Packet Stream
+
+3.1. Overview of the ITU-T Recommendation H.261
+
+ The H.261 coding is organized as a hierarchy of groupings. The video
+ stream is composed of a sequence of images, or frames, which are
+ themselves organized as a set of Groups of Blocks (GOB). Note that
+ H.261 "pictures" are referred to as "frames" in this document. Each
+ GOB holds a set of 3 lines of 11 macro blocks (MB). Each MB carries
+ information on a group of 16x16 pixels: luminance information is
+ specified for 4 blocks of 8x8 pixels, whereas chrominance information
+ is given by two "red" and "blue" color difference components at a
+ resolution of only 8x8 pixels. These components and the codes
+ representing their sampled values are as defined in ITU-R
+ Recommendation 601 [BT601].
+
+ This grouping is used to specify information at each level of the
+ hierarchy:
+
+ - At the frame level, one specifies information such as the delay
+ from the previous frame, the image format, and various indicators.
+
+ - At the GOB level, one specifies the GOB number and the default
+ quantifier that will be used for the MBs.
+
+
+
+
+
+Even Standards Track [Page 3]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+ - At the MB level, one specifies which blocks are present and which
+ did not change, and, optionally, a quantifier and motion vectors.
+
+ Blocks that have changed are encoded by computing the discrete cosine
+ transform (DCT) of their coefficients, which are then quantized and
+ Huffman encoded (Variable Length Codes).
+
+ The H.261 Huffman encoding includes a special "GOB start" pattern,
+ which is a word of 16 bits, 0000 0000 0000 0001. This pattern is
+ included at the beginning of each GOB header (and also at the
+ beginning of each frame header) to mark the separation between two
+ GOBs and is in fact used as an indicator that the current GOB is
+ terminated. The encoding also includes a stuffing pattern, composed
+ of seven zero bits followed by four bits with a value of one; that
+ stuffing pattern can only be entered between the encoding of MBs, or
+ just before the GOB separator.
+
+3.2. Considerations for Packetization
+
+ H.261 codecs designed for operation over ISDN circuits produce a bit
+ stream composed of several levels of encoding specified by H.261 and
+ companion recommendations. The bits resulting from the Huffman
+ encoding are arranged in 512-bit frames, containing 2 bits of
+ synchronization, 492 bits of data and 18 bits of error correcting
+ code. The 512-bit frames are then interlaced with an audio stream
+ and transmitted over px 64 kbps circuits according to specification
+ H.221 [H221].
+
+ For transmitting over the Internet, we will directly consider the
+ output of the Huffman encoding. All the bits produced by the Huffman
+ encoding stage will be included in the packet. We will not carry the
+ 512-bit frames, as protection against bit errors can be obtained by
+ other means. Similarly, we will not attempt to multiplex audio and
+ video signals in the same packets, as UDP and RTP provide a much more
+ suitable way to achieve multiplexing.
+
+ Directly transmitting the result of the Huffman encoding over an
+ unreliable stream of UDP datagrams would, however, have poor error
+ resistance characteristics. The result of the hierarchical structure
+ of the H.261 bit stream is that one needs to receive the information
+ present in the frame header to decode the GOBs, as well as the
+ information present in the GOB header to decode the MBs. Without
+ precautions, this would mean that one has to receive all the packets
+ that carry an image in order to decode its components properly.
+
+ If each image could be carried in a single packet, this requirement
+ would not create a problem. However, a video image or even one GOB
+ by itself can sometimes be too large to fit in a single packet.
+
+
+
+Even Standards Track [Page 4]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+ Therefore, the MB is taken as the unit of fragmentation. Packets
+ must start and end on an MB boundary; that is, an MB cannot be split
+ across multiple packets. Multiple MBs may be carried in a single
+ packet when they will fit within the maximal packet size allowed.
+ This practice is recommended to reduce the packet send rate and
+ packet overhead.
+
+ To allow each packet to be processed independently for efficient
+ resynchronization in the presence of packet losses, some state
+ information from the frame header and GOB header is carried with each
+ packet to allow the MBs in that packet to be decoded. This state
+ information includes the GOB number in effect at the start of the
+ packet, the macroblock address predictor (i.e., the last macroblock
+ address (MBA) encoded in the previous packet), the quantizer value in
+ effect prior to the start of this packet (GQUANT, MQUANT, or zero in
+ the case of a beginning of GOB) and the reference motion vector data
+ (MVD) for computing the true MVDs contained within this packet. The
+ bit stream cannot be fragmented between a GOB header and MB 1 of that
+ GOB.
+
+ Moreover, since the compressed MB may not fill an integer number of
+ octets, the data header contains two 3-bit integers, SBIT and EBIT,
+ to indicate the number of unused bits in the first and last octets of
+ the H.261 data, respectively.
+
+4. Specification of the Packetization Scheme
+
+4.1. Usage of RTP
+
+ Each RTP packet starts with a fixed RTP header, as explained in RFC
+ 3550 [RFC3550]. The following fields of the RTP fixed header used
+ for H.261 video streams are further emphasized here:
+
+ - Payload type. The assignment of an RTP payload type for this
+ packet format is outside the scope of this document and will not be
+ specified here. It is expected that the RTP profile for a
+ particular class of applications will assign a payload type for
+ this encoding, or, if that is not done, then a payload type in the
+ dynamic range shall be chosen.
+
+ - The RTP timestamp encodes the sampling instant of the first video
+ image contained in the RTP data packet. If a video image occupies
+ more than one packet, the timestamp SHALL be the same on all of
+ those packets. Packets from different video images MUST have a
+ different timestamp so that frames may be distinguished by the
+ timestamp. For H.261 video streams, the RTP timestamp is based on
+ a 90-kHz clock. This clock rate is a multiple of the natural H.261
+ frame rate (i.e., 30000/1001 or approximately 29.97 Hz). That way,
+
+
+
+Even Standards Track [Page 5]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+ for each frame time, the clock is just incremented by the multiple,
+ and this removes inaccuracy in calculating the timestamp.
+ Furthermore, the initial value of the timestamp MUST be random
+ (unpredictable) to make known-plaintext attacks on encryption more
+ difficult; see RTP [RFC3550]. Note that if multiple frames are
+ encoded in a packet (e.g., when there are very few changes between
+ two images), it is necessary to calculate display times for the
+ frames after the first, using the timing information in the H.261
+ frame header. This is required because the RTP timestamp only
+ gives the display time of the first frame in the packet.
+
+ - The marker bit of the RTP header MUST be set to one in the last
+ packet of a video frame; otherwise, it MUST be zero. Thus, it is
+ not necessary to wait for a following packet (which contains the
+ start code that terminates the current frame) to detect that a new
+ frame should be displayed.
+
+ The H.261 data SHALL follow the RTP header, as in the following:
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ . .
+ . RTP header .
+ . .
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | H.261 header |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | H.261 stream ... .
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ The H.261 header is defined as follows:
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |SBIT |EBIT |I|V| GOBN | MBAP | QUANT | HMVD | VMVD |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ The fields in the H.261 header have the following meanings:
+
+ Start bit position (SBIT): 3 bits
+
+ Number of most significant bits that should be ignored in the
+ first data octet.
+
+
+
+
+
+
+Even Standards Track [Page 6]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+ End bit position (EBIT): 3 bits
+
+ Number of least significant bits that should be ignored in the
+ last data octet.
+
+ INTRA-frame encoded data (I): 1 bit
+
+ Set to 1 if this stream contains only INTRA-frame coded blocks.
+ Set to 0 if this stream may or may not contain INTRA-frame coded
+ blocks. The meaning of this bit should not be changed during the
+ course of the RTP session.
+
+ Motion Vector flag (V): 1 bit
+
+ Set to 0 if motion vectors are not used in this stream. Set to 1
+ if motion vectors may or may not be used in this stream. The
+ meaning of this bit should not be changed during the course of the
+ session.
+
+ GOB number (GOBN): 4 bits
+
+ Encodes the GOB number in effect at the start of the packet. Set
+ to 0 if the packet begins with a GOB header.
+
+ Macroblock address predictor (MBAP): 5 bits
+
+ Encodes the macroblock address predictor (i.e., the last MBA
+ encoded in the previous packet). This predictor ranges from 0 -
+ 32 (to predict the valid MBAs 1 - 33), but because the bit stream
+ cannot be fragmented between a GOB header and MB 1, the predictor
+ at the start of the packet shall not be 0. Therefore, the range
+ is 1 - 32, which is biased by -1 to fit in 5 bits. For example,
+ if MBAP is 0, the value of the MBA predictor is 1. Set to 0 if
+ the packet begins with a GOB header.
+
+ Quantizer (QUANT): 5 bits
+
+ Quantizer value (MQUANT or GQUANT) in effect prior to the start of
+ this packet. Set to 0 if the packet begins with a GOB header.
+
+ Horizontal motion vector data (HMVD): 5 bits
+
+ Reference horizontal motion vector data (MVD). Set to 0 if V flag
+ is 0 or if the packet begins with a GOB header, or when the MTYPE
+ of the last MB encoded in the previous packet was not motion
+ compensation (MC). HMVD is encoded as a 2s complement number, and
+ '10000' corresponding to the value -16 is forbidden (motion vector
+ fields range from +/-15).
+
+
+
+Even Standards Track [Page 7]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+ Vertical motion vector data (VMVD): 5 bits
+
+ Reference vertical motion vector data (MVD). Set to 0 if V flag
+ is 0 or if the packet begins with a GOB header, or when the MTYPE
+ of the last MB encoded in the previous packet was not MC. VMVD is
+ encoded as a 2s complement number, and '10000' corresponding to
+ the value -16 SHALL not be used (motion vector fields range from
+ +/-15).
+
+ Note that the I and V flags are hint flags; i.e., they can be
+ inferred from the bit stream. They are included to allow decoders to
+ make optimizations that would not be possible if these hints were not
+ provided before the bit stream was decoded. Therefore, these bits
+ cannot change for the duration of the stream. A conforming
+ implementation can always set V=1 and I=0.
+
+ The H.261 stream SHALL be used without BCH error correction and
+ without error correction framing.
+
+4.2. Recommendations for Operation with Hardware Codecs
+
+ Packetizers for hardware codecs can trivially figure out GOB
+ boundaries, using the GOB-start pattern included in the H.261 data.
+ (Note that software encoders already know the boundaries.) The
+ cheapest packetization implementation is to packetize at the GOB
+ level all the GOBs that fit in a packet. But when a GOB is too
+ large, the packetizer has to parse it to do MB fragmentation. (Note
+ that only the Huffman encoding must be parsed and that it is not
+ necessary to decompress the stream fully, so this requires relatively
+ little processing; examples of implementations can be found in some
+ public H.261 codecs, such as IVS [IVS] and VIC [VIC].) It is
+ recommended that MB level fragmentation be used when feasible in
+ order to obtain more efficient packetization. Using this
+ fragmentation scheme reduces the output packet rate and therefore
+ reduces the overhead.
+
+ At the receiver, the data stream can be depacketized and directed to
+ a hardware codec's input. If the hardware decoder operates at a
+ fixed bit rate, synchronization may be maintained by inserting the
+ stuffing pattern between MBs (i.e., between packets) when the packet
+ arrival rate is slower than the bit rate.
+
+
+
+
+
+
+
+
+
+
+Even Standards Track [Page 8]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+5. Packet Loss Issues
+
+ On the Internet, most packet losses are due to network congestion
+ rather than to transmission errors. Using UDP, no mechanism is
+ available at the sender to know whether a packet has been
+ successfully received. It is up to the application (i.e., coder and
+ decoder) to handle the packet loss. Each RTP packet includes a
+ sequence number field that can be used to detect packet loss.
+
+ H.261 uses the temporal redundancy of video to perform compression.
+ This differential coding (or INTER-frame coding) is sensitive to
+ packet loss. After a packet loss, parts of the image may remain
+ corrupt until all corresponding MBs have been encoded in INTRA-frame
+ mode (i.e., encoded independently of past frames). There are several
+ ways to mitigate packet loss:
+
+ (1) One way is to use only INTRA-frame encoding and MB-level
+ conditional replenishment. That is, only MBs that change
+ (beyond some threshold) are transmitted.
+
+ (2) Another way is to adjust the INTRA-frame encoding refreshment
+ rate according to the packet loss observed by the receivers.
+ The H.261 recommendation specifies that an MB be INTRA-frame
+ encoded at least every 132 times it is transmitted. However,
+ the INTRA-frame refreshment rate can be raised in order to speed
+ the recovery when the measured loss rate is significant.
+
+ (3) The fastest way to repair a corrupted image is to request an
+ INTRA-frame coded image refreshment after a packet loss is
+ detected. One means to accomplish this is for the decoder to
+ send to the coder a list of packets lost. The coder can decide
+ to encode every MB of every GOB of the following video frame in
+ INTRA-frame mode (i.e., full INTRA-frame encoded). If the coder
+ can deduce from the packet sequence numbers which MBs were
+ affected by the loss, it can save bandwidth by sending only
+ those MBs in INTRA-frame mode. This mode is particularly
+ efficient in point-to-point connection or when the number of
+ decoders is low.
+
+ The H.261-specific control packets FIR and NACK, as described in RFC
+ 2032, SHALL NOT be used to request image refreshment. Old
+ implementations are encouraged to use the methods described in this
+ section. Image refreshment may be needed due to packet loss or due
+ to application requirements. An example of application requirement
+ may be the change of the speaker in a voice-activated multipoint
+ video switching conference. There are two methods that can be used
+ for requesting image refreshment. The first method is by using the
+ Extended RTP Profile for RTCP-based Feedback and sending RTCP generic
+
+
+
+Even Standards Track [Page 9]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+ control packets, as described in RFC 4585 [RFC4585]. The second
+ method is by using application protocol-specific commands, such as
+ H.245 [ITU.H245] FastUpdateRequest.
+
+6. IANA Considerations
+
+ This section updates the H.261 media type described in RFC 3555
+ [RFC3555].
+
+ This section specifies optional parameters that MAY be used to select
+ optional features of the payload format. The parameters are
+ specified here as part of the MIME subtype registration for the ITU-T
+ H.261 codec. A mapping of the parameters into the Session
+ Description Protocol (SDP) [RFC4566] is also provided for those
+ applications that use SDP. Multiple parameters SHOULD be expressed
+ as a media type string, in the form of a semicolon-separated list of
+ parameters.
+
+6.1. Media Type Registrations
+
+ This section describes the media types and names associated with this
+ payload format. The section updates the previous registered version
+ in RFC 3555 [RFC3555]. This registration uses the template defined
+ in RFC 4288 [RFC4288]
+
+6.1.1. Registration of MIME Media Type video/H261
+
+ MIME media type name: video
+
+ MIME subtype name: H261
+
+ Required parameters: None
+
+ Optional parameters:
+
+ CIF. This parameter has the format of parameter=value. It
+ describes the maximum supported frame rate for CIF resolution.
+ Permissible values are integer values 1 to 4, and it means that
+ the maximum rate is 29.97/specified value.
+
+ QCIF. This parameter has the format of parameter=value. It
+ describes the maximum supported frame rate for QCIF resolution.
+ Permissible values are integer values 1 to 4, and it means that
+ the maximum rate is 29.97/specified value.
+
+
+
+
+
+
+
+Even Standards Track [Page 10]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+ D. Specifies support for still image graphics according to H.261,
+ annex D. If supported, the parameter value SHALL be "1". If not
+ supported, the parameter SHOULD NOT be used or SHALL have the
+ value "0".
+
+ Encoding considerations:
+
+ This media type is framed and binary, see Section 4.8 in
+ [RFC4288].
+
+ Security considerations: See Section 8
+
+ Interoperability considerations:
+
+ These are receiver options; current implementations will not send
+ any optional parameters in their SDP. They will ignore the
+ optional parameters and will encode the H.261 stream without annex
+ D. Most decoders support at least QCIF resolutions, and they are
+ expected to be available in almost every H.261-based video
+ application.
+
+ Published specification: RFC 4587
+
+ Applications that use this media type:
+
+ Audio and video streaming and conferencing applications.
+
+ Additional information: None
+
+ Person and email address to contact for further information:
+
+ Roni Even: roni.even@polycom.co.il
+
+ Intended usage: COMMON
+
+ Restrictions on usage:
+
+ This media type depends on RTP framing and thus is only defined
+ for transfer via RTP [RFC3550]. Transport within other framing
+ protocols is not defined at this time.
+
+ Author: Roni Even
+
+ Change controller:
+
+ IETF Audio/Video Transport working group, delegated from the IESG.
+
+
+
+
+
+Even Standards Track [Page 11]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+6.2. SDP Parameters
+
+ The MIME media type video/H261 string is mapped to fields in the
+ Session Description Protocol (SDP) 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 H261 (the
+ MIME subtype).
+
+ o The clock rate in the "a=rtpmap" line MUST be 90000.
+
+ o The optional parameters "CIF", "QCIF", and "D", if any, SHALL be
+ included in the "a=fmtp" line of SDP. These parameters are
+ expressed as a MIME media type string, in the form of as a
+ semicolon-separated list of parameters
+
+6.2.1. Usage with the SDP Offer Answer Model
+
+ When H.261 is offered over RTP using SDP in an Offer/Answer model
+ [RFC3264] the following considerations are necessary.
+
+ Codec options: (D) This option MUST NOT appear unless the sender of
+ this SDP message is able to decode this option. This option SHALL be
+ considered a receiver's capability even when it is sent in a
+ "sendonly" offer.
+
+ Picture sizes and MPI:
+
+ Supported picture sizes and their corresponding minimum picture
+ interval (MPI) information for H.261 can be combined. All picture
+ sizes may be advertised to the other party, or only a subset of it.
+ Using the recvonly or sendrev direction attribute, a terminal SHOULD
+ announce those picture sizes (with their MPIs) that it is willing to
+ receive. For example, CIF=2 means that receiver can receive a CIF
+ picture and that the frame rate SHALL be less then 15 frames per
+ second.
+
+ When the direction attribute is sendonly, the parameters describe the
+ capabilities of the stream that the sender can produce.
+
+ Implementations following this specification SHALL specify at least
+ one supported picture size.
+
+ If the receiver does not specify the picture size/MPI parameter, then
+ it is safe to assume that it is an implementation that follows RFC
+ 2032. In that case, it is RECOMMENDED to assume that such a receiver
+ is able to support reception of QCIF resolution with MPI=1.
+
+
+
+Even Standards Track [Page 12]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+ Parameters offered first are the most preferred picture mode to be
+ received.
+
+ An example of media representation in SDP is as follows CIF at 15
+ frames per second, QCIF at 30 frames per second and annex D
+
+ m=video 49170/2 RTP/AVP 31
+ a=rtpmap:31 H261/90000
+ a=fmtp:31 CIF=2;QCIF=1;D=1
+
+ This means that the sender of this message can decode an H.261 bit
+ stream with the following options and parameters: preferred
+ resolution is CIF (its MPI is 2), but if that is not possible, then
+ QCIF size is also supported. Still image using annex D MAY be used.
+
+7. Backward Compatibility to RFC 2032
+
+ The current document replaces RFC 2032. This section will address
+ the major backward compatibility issues.
+
+7.1. Optional H.261-Specific Control Packets
+
+ RFC 2032 defined two H.261-specific RTCP control packets, "Full
+ INTRA-frame Request" and "Negative Acknowledgement". Support of
+ these control packets was optional. The H.261-specific control
+ packets differ from normal RTCP packets in that they are not
+ transmitted to the normal RTCP destination transport address for the
+ RTP session (which is often a multicast address). Instead, these
+ control packets are sent directly via unicast from the decoder to the
+ encoder. The destination port for these control packets is the same
+ port that the encoder uses as a source port for transmitting RTP
+ (data) packets. Therefore, these packets may be considered "reverse"
+ control packets. This memo suggests generic methods to address the
+ same requirement. The authors of the documents are not aware of
+ products that support these control packets. Since these are
+ optional features, new implementations SHALL ignore them, and they
+ SHALL NOT be used by new implementations.
+
+7.2. New SDP Optional Parameters
+
+ The document adds new optional parameters to the H261 payload type.
+ Since these are optional parameters, we expect that old
+ implementations ignore these parameters, whereas new implementations
+ that receive the H261 payload type capabilities with no parameters
+ will assume that it is an old implementation and will send H.261 at
+ QCIF resolution and 30 frames per second.
+
+
+
+
+
+Even Standards Track [Page 13]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+8. Security Considerations
+
+ RTP packets using the payload format defined in this specification
+ are subject to the security considerations discussed in the RTP
+ specification [RFC3550], and in any appropriate RTP profile (e.g.,
+ [RFC3551]). This implies that confidentiality of the media streams
+ is achieved by encryption. SRTP [RFC3711] may be used to provide
+ both encryption and integrity protection of RTP flow. Because the
+ data compression used with this payload format is applied end to end,
+ encryption will be performed after compression, so there is no
+ conflict between the two operations.
+
+ A potential denial-of-service threat exists for data encoding using
+ compression techniques that have non-uniform receiver-end
+ computational load. The attacker can inject pathological datagrams
+ into the stream that are complex to decode and cause the receiver to
+ be overloaded. The usage of authentication of at least the RTP
+ packet is RECOMMENDED. H.261 is vulnerable to such attacks because
+ it is possible for an attacker to generate RTP packets containing
+ frames that affect the decoding process of future frames. Therefore,
+ the usage of data origin authentication and data integrity protection
+ of at least the RTP packet is RECOMMENDED; for example, with SRTP.
+
+ Note that the appropriate mechanism to ensure confidentiality and
+ integrity of RTP packets and their payloads is very dependent on the
+ application and on the transport and signaling protocols employed.
+ Thus, although SRTP is given as an example above, other possible
+ choices exist.
+
+9. Acknowledgements
+
+ This is to acknowledge the authors of RFC 2032, Thierry Turletti and
+ Christian Huitema. Special thanks for the work done by Petri
+ Koskelainen from Nokia and Nermeen Ismail from Cisco, who helped with
+ drafting the text for the new MIME types.
+
+10. Changes from RFC 2032
+
+ The changes from the RFC 2032 are:
+
+ 1. The H.261 MIME type is now in the payload specification.
+
+ 2. Added optional parameters to the H.261 MIME type
+
+ 3. Deprecated the H.261 specific control packets
+
+ 4. Editorial changes to be in line with RFC editing procedures
+
+
+
+
+Even Standards Track [Page 14]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+11. References
+
+11.1. Normative References
+
+ [H261] International Telecommunications Union, "Video codec for
+ audiovisual services at px 64 kbit/s", ITU Recommendation
+ H.261, March 1993.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
+ Jacobson, "RTP: A Transport Protocol for Real-Time
+ Applications", STD 64, RFC 3550, July 2003.
+
+ [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
+ with Session Description Protocol (SDP)", RFC 3264,
+ June 2002.
+
+ [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
+ Video Conferences with Minimal Control", STD 65,
+ RFC 3551, July 2003.
+
+ [RFC3555] Casner, S. and P. Hoschka, "MIME Type Registration of RTP
+ Payload Formats", RFC 3555, July 2003.
+
+ [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
+ Description Protocol", RFC 4566, July 2006.
+
+11.2. Informative References
+
+ [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and
+ Registration Procedures", BCP 13, RFC 4288,
+ December 2005.
+
+ [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J.
+ Rey, "Extended RTP Profile for Real-time Transport
+ Control Protocol (RTCP)-based Feedback (RTP/AVPF)", RFC
+ 4585, July 2006.
+
+ [ITU.H245] International Telecommunications Union, "CONTROL PROTOCOL
+ FOR MULTIMEDIA COMMUNICATION", ITU Recommendation H.245,
+ 2003.
+
+ [INRIA] Turletti, T., "H.261 software codec for videoconferencing
+ over the Internet", INRIA Research Report 1834,
+ January 1993.
+
+
+
+
+Even Standards Track [Page 15]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+ [IVS] Turletti, T., "INRIA Videoconferencing tool (IVS)",
+ available by anonymous ftp from zenon.inria.fr in the
+ "rodeo/ivs/last_version" directory. See also URL
+ <http://www.inria.fr/rodeo/ivs.html>.
+
+ [BT601] International Telecommunications Union, "Studio encoding
+ parameters of digital television for standard 4:3 and
+ wide-screen 16:9 aspect ratios", ITU-R Recommendation
+ BT.601-5, October 1995.
+
+ [MICE] Sasse, MA., Bilting, U., Schultz, CD., and T. Turletti,
+ "Remote Seminars through MultiMedia Conferencing:
+ Experiences from the MICE project", Proc. INET'94/JENC5,
+ Prague pp. 251/1-251/8, June 1994.
+
+ [VIC] MacCanne, S., "VIC Videoconferencing tool, available by
+ anonymous ftp from ee.lbl.gov in the "conferencing/vic"
+ directory".
+
+ [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
+ Norrman, "The Secure Real-time Transport Protocol
+ (SRTP)", RFC 3711, March 2004.
+
+ [H221] International Telecommunications Union, "Frame structure
+ for a 64 to 1920 kbit/s channel in audiovisual
+ teleservices", ITU Recommendation H.221, May 1999.
+
+Author's Address
+
+ Roni Even
+ Polycom
+ 94 Derech Em Hamoshavot
+ Petach Tikva 49130
+ Israel
+
+ EMail: roni.even@polycom.co.il
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Even Standards Track [Page 16]
+
+RFC 4587 H.261 RTP payload format August 2006
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2006).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is provided by the IETF
+ Administrative Support Activity (IASA).
+
+
+
+
+
+
+
+Even Standards Track [Page 17]
+