SDP中Video属性fmtp的含义,比如a=fmtp:34 QCIF=1;CIF=1

本文定义了SDP语法用于描述H.263编码选项和参数,以便在IETF多媒体会议架构中进行交换。通过此文档,可以预先了解对方支持的H.263特性,包括图片大小、最大比特率、编码选项等,以优化会议体验。

 

SDP syntax for H.263 options

STATUS OF THIS MEMO This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To learn the current status of any Internet-Draft, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim). ABSTRACT This document defines the SDP syntax for H.263 codec options and parameters for IETF multimedia conferencing architecture. It is often useful to know beforehand (in call setup phase) what features of H.263 the other end supports. This document specifies the format spefic parameters for H.263, which exists in a=fmtp:<format> <format specific parameters> as defined in the SDP document. Moreover, the usage of this feature with SIP and SAP is specified.

1. Introduction

Internet multimedia conferencing is becaming a reality and new protocols have been defined to provide co-operation between different applications. Current IETF protocols SIP [3] and SAP [4] are quite widely used to simple MBone conferencing and Internet unicast conferencing is also taking its first steps. Today, the most widely used video codec in this environment is the ITU-T H.261 video standard, but a better and more efficient low-bit rate video standard, ITU-T H.263 [1] is becoming more and more popular. However, the usage of H.263 with current IETF multimedia conferencing architecture is difficult, since improved efficiency of H.263 depends on use of coding options and parameters which must be told somehow to the other end. SIP and SAP protocols can deliver this information, but current SDP [2] format does not specify standardised way of representing these options and parameters. This document specifies the SDP syntax which describes H.263 options and parameters to be delivered by some signaling protocol (e.g. SIP or SAP). The syntax presented in this document uses SDP "a=fmtp" attribute which is meant for carrying codec specific parameters. These options are especially useful in SIP. In SAP it is not clear whether they have any use. In SIP, these format specific parameters are decoder properties, and in SAP they are encoder capabilities. The SAP rules are applied also if a multicast session is advertised in a web page in SDP format.

2. H.263 Codec Parameters

All these parameters must be presented in SDP a=fmtp line exactly in this order if they are present. Different parameter types are separated by single slash ("/") and parameters with space. For further description about these parameters, please refer to ITU documents [1].

2.1 Picture sizes and MPI

H.263 bitstream supports many picture sizes and different frame rates.

Supported picture sizes and their corresponding minimum picture interval (MPI) values are combined with "=" symbol. MPI is an integer value (1..32) and it means that maximum picture (frame) rate is (29.97/MPI) frames/sec. MPI value may be bigger, meaning that picture rate is slower. Word: SQCIF=MPI(1..32) Explanation: SQCIF picture size and its MPI value. Word: QCIF=MPI(1..32) Explanation: QCIF picture size and its MPI value. Word: CIF=MPI(1..32) Explanation: CIF picture size and its MPI value. Word: CIF4=MPI(1..32) Explanation: CIF4 picture size and its MPI value. Word: CIF16=MPI(1..32) Explanation: CIF16 picture size and its MPI value. Word: XMAX=maximum_x_size YMAX=maximum_y_size MPI=MPI(1..32) Explanation: This parameter means that terminal is capable and/or willing to support arbitrary picture sizes. Both picture sizes must be divisible by 4. These X and Y values are the maximum of allowed picture sizes with corresponding MPI value. All three words must exist together in this order, or none is allowed to exist. More than one mode can exist in the same line (see example later). There is a space between picture modes and slash ("/") symbol after all of them. At least one picture mode must be present.

2.2 MaxBitRate and BitsPerPictureMaxKb

MaxBitRate=INTEGER(1..19200) Explanation: Maximum video stream bitrate, presented with units of

100 bits/s.

BitsPerPictureMaxKb=INTEGER(0..65536) Explanation: Maximum amount of kilobits allowed to represent a single picture frame, value is specified by largest supported picture resolution, see [1]. If this parameter is not present, then default value, that is based on the maximum supported resolution, is used. These parameters are separated by space but before/after these parameter(s) there must be a slash symbol ("/").

3. H.263 Codec Options

Following words describe 4 options defined for H.263. Later versions of H.263 (e.g. so called H.263+, currently a ITU-T draft) defines more options and they should be merged later into this document. These options are separated by a space between them. This group of options (words) is separated by slash ("/"). All these options must be presented in SDP a=fmtp line exactly in this order if they are present. Word: URV Explanation: UnRestricted motion Vector option. Word: SAC Explanation: Syntax based Arithmetic Coding. Word: AP Explanation: Advanced Prediction. Word: PB Explanation: PB Frames. The actual interpretation of these words is defined differently for one-way and two-way negotiations (see chapters 4 and 5).

4. Usage of SDP H.263 options and parameters with SIP

This document specifies how these options and parameters can be represented in SDP format. Current SIP protocol does not support any negotiation about codecs or codec parameters. However, this negotiation is quite needless since it is enough to tell the preferred decoder options and parameters and let the other end to decide actual options and parameters as long as the other party sends only such options and parameters which are advertized. This scheme keeps the IETF multimedia terminal simple. Codec options: (URV,SAC,AP,PB) These words exist only if the sender of this SDP message is able or willing to decode those. E.g. If a terminal is capable of decoding SAC and AP options, it can put SAC AP in the end of <format specific parameters>. Then the other party knows it, and can use those options in its encoder. Picture sizes and MPI: Supported picture sizes and their corresponding minimum picture interval (MPI) information can be combined. All picture sizes can be advertised to other party, or only some subset of it. Terminal announces only those picture sizes (with their MPIs) which it is willing to receive. MPI is an integer value (1..32) and it means that maximum picture (frame) rate is (29.97/MPI) frames/s. MPI value may be bigger, meaning that picture rate is slower. For example, MPI=2 means that maximum (decodeable) picture rate per sec is about 15. Parameter occurring first is the most preferred picture mode to be received, and last is the least preferred (but still supported) one. Parameter words are presented with no slash ("/") symbol between them, and are separated by space (see example later in this chapter). These words are present in SDP line only if terminal is willing to decode the picture size with corresponding MPI. If terminal is not willing to receive some mode, it is not present in the list. Example of the usage of these words: CIF=4 QCIF=3 SQCIF=2 XMAX=360 YMAX=240 MPI=2 This means that sender hopes to receive CIF picture size, which it can decode at MPI=4. If that is not possible, then QCIF with MPI value 3, if that is neither possible, then SQCIF with MPI value =2. It is also allowed (but least preferred) to send arbitrary picture sizes (max 360x240) with MPI=2. Note that most encoders support at least QCIF and CIF fixed resolutions and they are expected to be available almost in every H.263-based video application. MaxBitRate and BitsPerPictureMaxKb parameters: Both these parameters are useful in SIP. MaxBitRate is video decoder property, hence it differs from SDP b:<modifier> <bandwidth-value> attribute which refers more to application's total bandwidth (an application consists often of both audio and video). Use of MaxBitRate parameter is mandatory. BitsPerPictureMaxKb is needed especially for decoder buffer size estimation to reduce the propability of video buffer overflow. Below is an example of H.263 SDP syntax in SIP message. a=fmtp 34 CIF=4 QCIF=2/MaxBitRate=1000/SAC AP This means that the sender of this message can decode H.263 (RTP payload type 34) bitstream with following options and parameters: Preferred resolution is CIF (its MPI is 4), but if that is not possible then QCIF size is ok. Maximum receivable bitrate is

100 kbit/s (1000*100 bit/s) and SAC and AP options can be used.

5. Use of SDP H.263 options and parameters with SAP

SAP announcements are one-way only. H.263 options (like SAC) mean that sending terminal (host) is going to use these options in its transmitted H.263 stream. It is just an informal message. Usually only one picture size (with its MPI) exists. However, since it is possible for a video source (terminal) to change its picture size during session, several picture sizes can exist in the parameter list. First one is the original picture size to be used in the beginning of the session. Other H.263 parameters are not used with SAP (nor when announced in web-page). Example with SAP: a=fmtp 34 CIF=2/URV SAC The video source is sending an H.263 bitstream and picture size is CIF, MPI=2 and URV and SAC options are used. This kind of announcement can be used e.g. in the MBone.

RTC remote offer: v=0\r\no=- 33780994132570702 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 35 36 37 38 102 103 104 105 106 107 108 109 127 125 39 40 41 42 43 44 45 46 47 48 112 113 114 115 116 117 118 49\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:v/KO\r\na=ice-pwd:rhSMjydHkufgnpKEOXJ//RKG\r\na=ice-options:trickle\r\na=fingerprint:sha-256 DF:05:E0:D5:00:80:50:9F:DF:0E:88:51:5C:CA:FD:AD:29:97:C3:B1:24:F4:B4:D7:04:BE:30:7B:D2:E5:74:EC\r\na=setup:actpass\r\na=mid:0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:3 urn:3gpp:video-orientation\r\na=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\na=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=fmtp:98 profile-id=0\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 VP9/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 profile-id=2\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:35 VP9/90000\r\na=rtcp-fb:35 goog-remb\r\na=rtcp-fb:35 transport-cc\r\na=rtcp-fb:35 ccm fir\r\na=rtcp-fb:35 nack\r\na=rtcp-fb:35 nack pli\r\na=fmtp:35 profile-id=1\r\na=rtpmap:36 rtx/90000\r\na=fmtp:36 apt=35\r\na=rtpmap:37 VP9/90000\r\na=rtcp-fb:37 goog-remb\r\na=rtcp-fb:37 transport-cc\r\na=rtcp-fb:37 ccm fir\r\na=rtcp-fb:37 nack\r\na=rtcp-fb:37 nack pli\r\na=fmtp:37 profile-id=3\r\na=rtpmap:38 rtx/90000\r\na=fmtp:38 apt=37\r\na=rtpmap:102 H264/90000\r\na=rtcp-fb:102 goog-remb\r\na=rtcp-fb:102 transport-cc\r\na=rtcp-fb:102 ccm fir\r\na=rtcp-fb:102 nack\r\na=rtcp-fb:102 nack pli\r\na=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f\r\na=rtpmap:103 rtx/90000\r\na=fmtp:103 apt=102\r\na=rtpmap:104 H264/90000\r\na=rtcp-fb:104 goog-remb\r\na=rtcp-fb:104 transport-cc\r\na=rtcp-fb:104 ccm fir\r\na=rtcp-fb:104 nack\r\na=rtcp-fb:104 nack pli\r\na=fmtp:104 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f\r\na=rtpmap:105 rtx/90000\r\na=fmtp:105 apt=104\r\na=rtpmap:106 H264/90000\r\na=rtcp-fb:106 goog-remb\r\na=rtcp-fb:106 transport-cc\r\na=rtcp-fb:106 ccm fir\r\na=rtcp-fb:106 nack\r\na=rtcp-fb:106 nack pli\r\na=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:107 rtx/90000\r\na=fmtp:107 apt=106\r\na=rtpmap:108 H264/90000\r\na=rtcp-fb:108 goog-remb\r\na=rtcp-fb:108 transport-cc\r\na=rtcp-fb:108 ccm fir\r\na=rtcp-fb:108 nack\r\na=rtcp-fb:108 nack pli\r\na=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f\r\na=rtpmap:109 rtx/90000\r\na=fmtp:109 apt=108\r\na=rtpmap:127 H264/90000\r\na=rtcp-fb:127 goog-remb\r\na=rtcp-fb:127 transport-cc\r\na=rtcp-fb:127 ccm fir\r\na=rtcp-fb:127 nack\r\na=rtcp-fb:127 nack pli\r\na=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f\r\na=rtpmap:125 rtx/90000\r\na=fmtp:125 apt=127\r\na=rtpmap:39 H264/90000\r\na=rtcp-fb:39 goog-remb\r\na=rtcp-fb:39 transport-cc\r\na=rtcp-fb:39 ccm fir\r\na=rtcp-fb:39 nack\r\na=rtcp-fb:39 nack pli\r\na=fmtp:39 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f\r\na=rtpmap:40 rtx/90000\r\na=fmtp:40 apt=39\r\na=rtpmap:41 H264/90000\r\na=rtcp-fb:41 goog-remb\r\na=rtcp-fb:41 transport-cc\r\na=rtcp-fb:41 ccm fir\r\na=rtcp-fb:41 nack\r\na=rtcp-fb:41 nack pli\r\na=fmtp:41 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=f4001f\r\na=rtpmap:42 rtx/90000\r\na=fmtp:42 apt=41\r\na=rtpmap:43 H264/90000\r\na=rtcp-fb:43 goog-remb\r\na=rtcp-fb:43 transport-cc\r\na=rtcp-fb:43 ccm fir\r\na=rtcp-fb:43 nack\r\na=rtcp-fb:43 nack pli\r\na=fmtp:43 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=f4001f\r\na=rtpmap:44 rtx/90000\r\na=fmtp:44 apt=43\r\na=rtpmap:45 AV1/90000\r\na=rtcp-fb:45 goog-remb\r\na=rtcp-fb:45 transport-cc\r\na=rtcp-fb:45 ccm fir\r\na=rtcp-fb:45 nack\r\na=rtcp-fb:45 nack pli\r\na=fmtp:45 level-idx=5;profile=0;tier=0\r\na=rtpmap:46 rtx/90000\r\na=fmtp:46 apt=45\r\na=rtpmap:47 AV1/90000\r\na=rtcp-fb:47 goog-remb\r\na=rtcp-fb:47 transport-cc\r\na=rtcp-fb:47 ccm fir\r\na=rtcp-fb:47 nack\r\na=rtcp-fb:47 nack pli\r\na=fmtp:47 level-idx=5;profile=1;tier=0\r\na=rtpmap:48 rtx/90000\r\na=fmtp:48 apt=47\r\na=rtpmap:112 H264/90000\r\na=rtcp-fb:112 goog-remb\r\na=rtcp-fb:112 transport-cc\r\na=rtcp-fb:112 ccm fir\r\na=rtcp-fb:112 nack\r\na=rtcp-fb:112 nack pli\r\na=fmtp:112 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f\r\na=rtpmap:113 rtx/90000\r\na=fmtp:113 apt=112\r\na=rtpmap:114 H264/90000\r\na=rtcp-fb:114 goog-remb\r\na=rtcp-fb:114 transport-cc\r\na=rtcp-fb:114 ccm fir\r\na=rtcp-fb:114 nack\r\na=rtcp-fb:114 nack pli\r\na=fmtp:114 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=64001f\r\na=rtpmap:115 rtx/90000\r\na=fmtp:115 apt=114\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 rtx/90000\r\na=fmtp:117 apt=116\r\na=rtpmap:118 ulpfec/90000\r\na=rtpmap:49 flexfec-03/90000\r\na=rtcp-fb:49 goog-remb\r\na=rtcp-fb:49 transport-cc\r\na=fmtp:49 repair-window=10000000\r\n [2025-05-31 16:26:28.541][INFO][1][94y740kp] RTC local answer: v=0\r\no=SRS/6.0.166(Hang) 94641307871968 2 IN IP4 0.0.0.0\r\ns=SRSPlaySession\r\nt=0 0\r\na=ice-lite\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS live/livesteam/7CTXN4L00B09KR-165-0-7\r\nm=video 9 UDP/TLS/RTP/SAVPF 106\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:nuj8794p\r\na=ice-pwd:4426176g748ru8gn92t2632027di3387\r\na=fingerprint:sha-256 36:93:81:8D:69:EE:A2:9D:75:25:06:99:8A:0B:2F:76:47:C0:5D:6D:4B:80:81:D7:65:CE:FC:A6:7D:BC:FA:89\r\na=setup:passive\r\na=mid:0\r\na=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=sendonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:106 H264/90000\r\na=rtcp-fb:106 transport-cc\r\na=rtcp-fb:106 nack\r\na=rtcp-fb:106 nack pli\r\na=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=ssrc:10104 cname:cb26730f43f76059\r\na=ssrc:10104 msid:stream_id_50 video_label_50\r\na=ssrc:10104 mslabel:stream_id_50\r\na=ssrc:10104 label:video_label_50\r\na=candidate:0 1 udp 2130706431 121.237.182.235 8000 typ host generation 0\r\n
最新发布
06-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值