A.1 SDP
26.2343GPPProtocols and codecsRelease 17Transparent end-to-end Packet-switched Streaming Service (PSS)TS
This clause gives some background information on SDP for PSS clients.
Table A.1 provides an overview of the different SDP fields that can be identified in a SDP file. The order of SDP fields is mandated as specified in RFC 4566 [6].
Table A.1: Overview of fields in SDP for PSS clients
Type |
Description |
Requirement according to [6] |
Requirement according to the present document |
|
Session Description |
||||
V |
Protocol version |
R |
R |
|
O |
Owner/creator and session identifier |
R |
R |
|
S |
Session Name |
R |
R |
|
I |
Session information |
O |
O |
|
U |
URI of description |
O |
O |
|
E |
Email address |
O |
O |
|
P |
Phone number |
O |
O |
|
C |
Connection Information |
R |
R |
|
B |
Bandwidth information |
AS |
O |
O |
RS |
ND |
O |
||
RR |
ND |
O |
||
TIAS |
ND |
O |
||
One or more Time Descriptions (See below) |
||||
Z |
Time zone adjustments |
O |
O |
|
K |
Encryption key |
O |
O |
|
A |
Session attributes |
control |
O |
R |
range |
O |
R |
||
alt-group |
ND |
O |
||
3GPP-QoE-Metrics |
ND |
O |
||
3GPP-Asset-Information |
ND |
O |
||
maxprate |
ND |
O |
||
One or more Media Descriptions (See below) |
||||
Time Description |
||||
T |
Time the session is active |
R |
R |
|
R |
Repeat times |
O |
O |
|
Media Description |
||||
M |
Media name and transport address |
R |
R |
|
I |
Media title |
O |
O |
|
C |
Connection information |
R |
R |
|
B |
Bandwidth information |
AS |
O |
R |
RS |
ND |
R |
||
RR |
ND |
R |
||
TIAS |
ND |
R |
||
K |
Encryption Key |
O |
O |
|
A |
Attribute Lines |
control |
O |
R |
range |
O |
R |
||
fmtp |
O |
R |
||
rtpmap |
O |
R |
||
X-predecbufsize |
ND |
O |
||
X-initpredecbufperiod |
ND |
O |
||
X-initpostdecbufperiod |
ND |
O |
||
X-decbyterate |
ND |
O |
||
3GPP-framepackingtype |
ND |
R (see note 7) |
||
framesize |
ND |
R (see note 5) |
||
alt |
ND |
O |
||
alt-default-id |
ND |
O |
||
3GPP-Adaptation-Support |
ND |
O |
||
3GPP-QoE-Metrics |
ND |
O |
||
3GPP-Asset-Information |
ND |
O |
||
rtcp-fb |
O |
O |
||
maxprate |
ND |
R |
||
Note 1: R = Required, O = Optional, ND = Not Defined Note 2: The "c" type is only required on the session level if not present on the media level. Note 3: The "c" type is only required on the media level if not present on the session level. Note 4: According to RFC 4566, either an ‘e’ or ‘p’ field must be present in the SDP description. On the other hand, both fields will be made optional in the future release of SDP. So, for the sake of robustness and maximum interoperability, either an ‘e’ or ‘p’ field shall be present during the server’s SDP file creation, but the client should also be ready to receive SDP content containing neither ‘e’ nor ‘p’ fields. Note 5: The "framesize" attribute is not required for any codec Note 6: The "range" attribute is required on either session or media level: it is a session-level attribute unless the presentation contains media streams of different durations. If a client receives "range" on both levels, however, media level shall override session level. Note 7: The "3GPP-framepackingtype" attribute is only required for frame-packed stereoscopic 3D video as described in Section 7.4. |
The example below shows an SDP file that could be sent to a PSS client to initiate unicast streaming of a H.264 video sequence.
EXAMPLE 1: v=0
o=ghost 2890844526 2890842807 IN IP4 192.168.10.10
s=3GPP Unicast SDP Example
i=Example of Unicast SDP file
u=http://www.infoserver.com/ae600
e=ghost@mailserver.com
c=IN IP4 0.0.0.0
t=0 0
a=range:npt=0-45.678
m=video 1024 RTP/AVP 96
b=AS:1030
b=TIAS:1000000
a=maxprate:90
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; profile-level-id=64001e; \
sprop-parameter-sets= Z2QAHpWQC0PaAfyQ,aOuOoA==
a=control:rtsp://mediaserver.com/movie.3gp/trackID=1
The following examples show some usage of the "alt" and the "alt-default-id" attributes (only the affected part of the SDP is shown):
EXAMPLE 2: m=audio 0 RTP/AVP 97
b=AS:12
b=TIAS:8500
a=maxprate:10
a=rtpmap:97 AMR/8000
a=control:trackID=1
a=fmtp:97 octet-align=1
a=range:npt=0-150.2
a=alt-default-id:1
a=alt:2:b=AS:16
a=alt:2:b=TIAS:12680
a=alt:2:a=control:trackID=2
The equivalent SDP for alternative 1 (default) is:
EXAMPLE 3: m=audio 0 RTP/AVP 97
b=AS:12
b=TIAS:8500
a=maxprate:10
a=rtpmap:97 AMR/8000
a=control:trackID=1
a=fmtp:97 octet-align=1
a=range:npt=0-150.2
Alternative 2 is based on the default alternative but replaces two lines, "b=AS" and "a=control". Hence, the equivalent SDP for alternative 2 is:
EXAMPLE 4: m=audio 0 RTP/AVP 97
b=AS:16
b=TIAS:12680
a=maxprate:10
a=rtpmap:97 AMR/8000
a=control:trackID=2
a=fmtp:97 octet-align=1
a=range:npt=0-150.2
Below is an example on the usage of the "alt-group" attribute with the subtype "BW":
EXAMPLE 5: a=alt-group:BW:AS:32=1,4;56=2,4;64=3,5
The above line gives three groupings based on application-specific bitrate values. The first grouping will result in 32 kbps using media alternatives 1 and 4. The second grouping has a total bitrate of 56 kbps using media alternatives 2 and 4. The last grouping needs 64 kbps when combing media alternatives 3 and 5.
Here follows an example on the usage of the "alt-group" attribute with the subtype "LANG":
EXAMPLE 6: a=alt-group:LANG:RFC3066:en-US=1,2,4,5;se=3,4,5
The above line claims that the media alternatives 1, 2, 4, and 5 support US English and that the media alternatives 3, 4, and 5 support Swedish.
A more complex example where a combination of "alt", "alt-default-id" and "alt-group" are used is seen below. The example allows a client to select a bandwidth that is suitable for the current context in an RTSP SETUP message.
The client sends an RTSP DESCRIBE to the server and the server responds with the following SDP. A client, who supports the "alt", "alt-default-id" and "alt-group" attributes, can now select the most suitable alternative by using the control URLs corresponding to the selected alternatives in the RTSP SETUP message. The server sets up the selected alternatives and the client starts playing them. If the client is unaware of the attributes, they will be ignored. The result will be that the client uses the default "a=control" URLs at setup and receives the default alternatives.
EXAMPLE 7: v=0
o=ericsson_user 1 1 IN IP4 130.240.188.69
s=A basic audio and video presentation
c=IN IP4 0.0.0.0
b=AS:325
b=TIAS: 308500
a=maxprate:50
a=control:*
a=range:npt=0-150.2
a=alt-group:BW:AS:222=1,3;325=1,4;329=2,4;413=2,5
a=alt-group:BW:TIAS:208500_40=1,3;308500_50=1,4;312680_50=2,4;396680_50=2,5
t=0 0
m=audio 0 RTP/AVP 97
b=AS:12
b=TIAS:8500
a=maxprate:10
a=rtpmap:97 AMR/8000
a=control:trackID=1
a=fmtp:97 octet-align=1
a=range:npt=0-150.2
a=alt-default-id:1
a=alt:2:b=AS:16
a=alt:2:b=TIAS:12680
a=alt:2:a=control:trackID=2
m=video 0 RTP/AVP 98
b=AS:313
b=TIAS:3000000
a=maxprate:40
a=rtpmap:98 H264/90000
a=control:trackID=4
a=fmtp:98 profile-level-id=42c00c; sprop-parameter-sets= Z0KADJWgUH6Af1A=,aM46gA==
a=range:npt=0-150.2
a=X-initpredecbufperiod:98000
a=alt-default-id:4
a=alt:3:b=AS:210
a=alt:3:b=TIAS:200000
a=alt:3:a=maxprate:30
a=alt:3:a=control:trackID=3
a=alt:3:a=X-initpredecbufperiod:48000
a=alt:5:b=AS:397
a=alt:5:b=TIAS:384000
a=alt:5:a=maxprate:40
a=alt:5:a=control:trackID=5
a=alt:5:a=X-initpredecbufperiod:150000
The above example has 5 alternatives, 2 for audio and 3 for video. That would allow for a total of six combinations between audio and video. However, the grouping attribute in this example recommends that only 4 of these combinations be used. The equivalent SDP for the default alternatives (alternatives 1 and 4) with a total session bitrate of 325 kbps follows:
EXAMPLE 8: v=0
o=ericsson_user 1 1 IN IP4 130.240.188.69
s=Ericsson commercial
c=IN IP4 0.0.0.0
b=AS:325
b=TIAS: 308500
a=maxprate:50
a=control:*
a=range:npt=0-150.2
t=0 0
m=audio 0 RTP/AVP 97
b=AS:12
b=TIAS:8500
a=maxprate:10
a=rtpmap:97 AMR/8000
a=control:trackID=1
a=fmtp:97 octet-align=1
a=range:npt=0-150.2
m=video 0 RTP/AVP 98
b=AS:313
b=TIAS:300000
a=maxprate:40
a=rtpmap:98 H264/90000
a=control:trackID=4
a=fmtp:98 profile-level-id=42c00c; sprop-parameter-sets = Z0KADJWgUH6Af1A=,aM46gA==
a=range:npt=0-150.2
a=X-initpredecbufperiod:98000
The equivalent SDP for the 222 kbps total session bitrate (alternatives 1 and 3) is:
EXAMPLE 9: v=0
o=ericsson_user 1 1 IN IP4 130.240.188.69
s=A basic audio and video presentation
c=IN IP4 0.0.0.0
b=AS:222
b=TIAS:208500
a=maxprate:40
a=control:*
a=range:npt=0-150.2
t=0 0
m=audio 0 RTP/AVP 97
b=AS:12
b=TIAS:8500
a=maxprate:10
a=rtpmap:97 AMR/8000
a=control:trackID=1
a=fmtp:97 octet-align=1
a=range:npt=0-150.2
m=video 0 RTP/AVP 98
b=AS:210
b=TIAS:200000
a=maxprate:30
a=rtpmap:98 H264/90000
a=control:trackID=3
a=fmtp:98 profile-level-id=42c00c; sprop-parameter-sets = Z0KADJWgUH6Af1A=,aM46gA==
a=range:npt=0-150.2
a=X-initpredecbufperiod:48000
The equivalent SDP for the grouping with a 413 kbps total session bandwidth (alternatives 2 and 5):
EXAMPLE 10: v=0
o=ericsson_user 1 1 IN IP4 130.240.188.69
s=A basic audio and video presentation
c=IN IP4 0.0.0.0
b=AS:413
b=TIAS: 396680
a=maxprate:50
a=control:*
a=range:npt=0-150.2
t=0 0
m=audio 0 RTP/AVP 97
b=AS:16
b=TIAS:12680
a=maxprate:10
a=rtpmap:97 AMR/8000
a=control:trackID=2
a=fmtp:97 octet-align=1
a=range:npt=0-150.2
m=video 0 RTP/AVP 98
b=AS:397
b=TIAS:384000
a=maxprate:40
a=rtpmap:98 H264/90000
a=control:trackID=5
a=fmtp:98 profile-level-id=42c00c; sprop-parameter-sets = Z0KADJWgUH6Af1A=,aM46gA==
a=range:npt=0-150.2
a=X-initpredecbufperiod:150000
If the client only has 250 kbps it selects the media alternatives 1 and 3, which use 222 kbps. The client sets this up by sending two normal RTSP requests using the control URLs from the chosen alternatives.
The audio SETUP request for the default (i.e. 325 kbps in the example above) looks like this:
EXAMPLE 11: SETUP rtsp://media.example.com/examples/3G_systems.3gp/trackID=1 RTSP/1.0
CSeq: 2
Transport: RTP/AVP/UDP;unicast;client_port=3456-3457
The response from the server would be:
EXAMPLE 12: RTSP/1.0 200 OK
CSeq: 2
Session: jEs.EdXCSKpB
Transport: RTP/AVP/UDP;unicast;client_port=3456-3457;server_port=4002-4003;ssrc=5199dcb1
Also the video is added to the RTSP session under aggregated control:
EXAMPLE 13: SETUP rtsp://media.example.com/examples/3G_systems.3gp/trackID=3 RTSP/1.0
CSeq: 3
Transport: RTP/AVP/UDP;unicast;client_port=3458-3459
Session: jEs.EdXCSKpB
And the response would be:
EXAMPLE 14: RTSP/1.0 200 OK
CSeq: 3
Session: jEs.EdXCSKpB
Transport: RTP/AVP/UDP;unicast;client_port=3458-3459;server_port=4004-4005;ssrc=ae75904f
Had the client had more available bandwidth it could have set up another pair of alternatives in order to get better quality. The only change had been the RTSP URLs that had pointed at other media streams. For example the 413 kbps version would have been received if the audio SETUP request had used:
EXAMPLE 15: rtsp://media.example.com/examples/3G_systems.3gp/trackID=2
and the video request
EXAMPLE 16: rtsp://media.example.com/examples/3G_systems.3gp/trackID=5
The following example shows an SDP file that contains asset information, defined in Clause 5.3.3.7.
EXAMPLE 17: v=0
o=ghost 2890844526 2890842807 IN IP4 192.168.10.10
s=3GPP Unicast SDP Example
i=Example of Unicast SDP file
u=http://www.infoserver.com/ae600
e=ghost@mailserver.com
c=IN IP4 0.0.0.0
t=0 0
a=range:npt=0-45.678
a=3GPP-Asset-Information: {url="http://www.movie-database.com/title/thismovieinfo.xhtml"}
a=3GPP-Asset-Information: {Title=MjhDRTA2NzI},{Copyright=Mjc0MkUwMUVGNDE2}
m=video 1024 RTP/AVP 96
b=AS:1030
b=TIAS:1000000
a=maxprate:90
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=64001e; sprop-parameter-sets=Z2QAHpWQC0PaAfyQ,aOuOoA==
a=control:rtsp://mediaserver.com/movie.3gp/trackID=1
a=framesize:96 176-144
The following example shows the SDP media lines for AMR-WB+ Audio according to [85]
EXAMPLE 18:
m=audio 49120 RTP/AVP 99
a=rtpmap:99 AMR-WB+/72000/2
a=fmtp:99 interleaving=30; int-delay=86400
a=maxptime:100
The following example shows the SDP media lines for HE-AAC 48kHz, stereo (64kbps) using RFC6416 [13]
EXAMPLE 19:
m=audio 49230 RTP/AVP 96
a=rtpmap:96 MP4A-LATM/48000/2
a=fmtp:96 profile-level-id=44; bitrate=64000; cpresent=0; config=40005623101fe0; \
SBR-enabled=1