先来一段sdp
{
"codecs": [
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 0,
"profile-level-id": "42e01f"
},
"preferredPayloadType": 108,
"rtcpFeedback": [
{
"type": "goog-remb"
},
{
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "42e01f"
},
"preferredPayloadType": 124,
"rtcpFeedback": [
{
"type": "goog-remb"
},
{
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 0,
"profile-level-id": "42001f"
},
"preferredPayloadType": 125,
"rtcpFeedback": [
{
"type": "goog-remb"
},
{
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
},
{
"channels": 1,
"clockRate": 8000,
"kind": "audio",
"mimeType": "audio/telephone-event",
"parameters": {},
"preferredPayloadType": 126,
"rtcpFeedback": []
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "42001f"
},
"preferredPayloadType": 127,
"rtcpFeedback": [
{
"type": "goog-remb"
},
{
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
}
],
"fecMechanisms": [],
}
以及Profiles和Levels的描述如下:
Profiles[edit]
The standard defines several sets of capabilities, which are referred to as profiles, targeting specific classes of applications. These are declared using a pr