h264.fmtp
Default Value: profile=b; level=3.1; packetization-mode=*;|profile=cb; level=3.1; packetization-mode=*;|profile=m; level=3.1; packetization-mode=*;
Valid Values: Please check the parameter description.
Changes Take Effect: At start/restart
Specifies the H264 SDP profile, level and packetization mode offered and accepted by the MCP.
Set to one or more fmtp text values separated by the '|' character.
One fmtp text is in the form of "profile=X; level=Y; packetization-mode=Z;".
X is an element of the set {*, b, cb, m, e, h, h10, h10i, h42, h42i, h44, h44i, c44i}
specifying the H264 profile offered and accepted by the MCP. In the set, * is used as the
wildcard to allow the MCP to offer and accept any valid profile. The rest of the set are
profiles defined by H264 whose full name are (in respective order as the aforementioned set):
{baseline, constrained baseline, main, extended, high, high 10, high 10 intra, high 4:2:2,
high 4:2:2 intra, high 4:4:4, high 4:4:4 intra, cavlc 4:4:4 intra}. Invalid profile value
will be replaced with * (wildcard).
Y is an element of the set {*, 1, 1b, 1.1, 1.2, 1.3, 2, 2.1, 2.2, 3, 3.1, 3.2, 4, 4.1, 4.2,
5, 5.1} specifying the H264 level of the corresponding profiles offered and accepted by the
MCP. In the set, * is used as the wildcard to allow MCP to offer and accept any valid level
for its corresponding profile. The rest of the set are levels defined by H264. Invalid
level value will be replaced with * (wildcard).
Z is an element of the set {*, 0, 1} specifying the H264 packetization mode offered and
accepted by the MCP. Similar to the others, * is used as the wildcard to allow the MCP to
offer and accept any valid packetization mode. 0 refers to single NALU packetization mode
while 1 demands non-interleaved packetization capability. The MCP does not support
interleaved packetization mode, as well as, any value other than stated. Invalid
packetization-mode value will be replaced with 0 (single NALU).
During SDP negotiation, each fmtp text value without wildcard will be translated to one
H264 media fmtp line while those with wildcard will be translated to one or more H264
media fmtp line equivalent to the wildcard.
For example, profile=b; level=1.1; packetization-mode=* which is the first part of the
default will be translated to two H264 media fmtp lines of profile-level-id=42000B;
packetization-mode=0; and profile-level-id=42000B; packetization-mode=1;. Note that
profile "b" is equivalent to 66 in decimal or 42 in hexadecimal and level "1.1"
is equivalent to level 11 in decimal or level 0B in hexadecimal.
According to RFC3984, the use of profile-level-id and packetization-mode during
capability exchange must be negotiated symmetrically except the level part can be downgraded.
For example, the MCP is configured with h264.fmtp="profile=b; level=1; packetization-mode=1;"
and it receives an offer with H264 media fmtp line of profile-level-id=420033;
packetization-mode=1; which is equivalent to h264.fmtp="profile=b; level=5.1; packetization-mode=1".
In this case, the profile and packetization-mode of the platform and the offer are symmetric
but the level parts are not. This offer will be accepted by the MCP with level downgrade in its
response, e.g. "profile-level-id=42000A; packetization-mode=1". The offerer when receiving
the response will know that the answerer has accepted the offer but the level must be downgraded
and the offerer will have to produce the H264 content accordingly when proceeding with this
response.
Another example, the MCP is configured with h264.fmtp="profile=b; level=5.1; packetization-mode=1"
and it receives an offer with H264 media fmtp line of profile-level-id-42000A; packetization-mode=1;
which is equivalent to h264.fmtp="profile=b; level=1; packetization-mode=1". In this case, the
profile and packetization-mode of the platform and the offer are symmetric but the level parts are
not. This offer will still be accepted by the MCP without level downgrade in its response, e.g.
"profile-level-id=42000A; packetization-mode=1;". The MCP accepts the offer because it is
configured with a higher level which is capable of processing any lower level. The offerer
will receive the response that the MCP has accepted the offer.
H264 transcoder does not support extended and advanced 4:4:4 profiles. Consequently, if H264
transcoding is enabled for the session, the fmtp containing one of the following profiles
(whether enumerated by * or explicitly configured) will not be offered and also not accepted during
the SDP negotiation: {e, h44, h44i, c44i}