Is sprop-parameter-sets or profile-level-id the SDP parameter required to decode H264?

只谈情不闲聊 提交于 2019-11-30 23:52:36

Meanings and main differences:

As you can see in your definition of profile-level-id, it has a default and so it can be omitted in the signalling negotiation. The string contained in this parameter is in hexadecimal format and it has 3 bytes that inform the decoder about the profile, the constraints and the level that will be used to send data. This settings define several parameters like the bitrate, the resolution, the type of packets...

The parameter sprop-parameter-sets can be seen as the key to decode the data that you will be sending. It contains some bytes that will be used to encode the data, and so you share it with the receiver so that it can decode the video packets. It can also be omitted from the signalling, but they are mandatory for the decoder, so they can also be sent in-band. So if you omit them in the sdp, they need to be sent in the packets. The receiver can only decode the data after receiving this information.

Problem 1:

As stated before, profile-level-id can be omitted and it still works because the default 420010 will be used. The only difference is that the settings will be different, and probably, the video quality will be affected. For example, 42 in the default is referencing the Constrained Baseline Profile (CBP) and the 64 in your initial value in SDP is referencing High Profile (HiP).

The video is not working when sprop-parameter-sets is missing probably because vlc does not support sending that data in-band, and as I explained above, it is mandatory.

Problem 2:

Many SIP implementations has support to send sprop-parameter-sets in-band, and that's what you are capturing. Check the h264 packets in Wireshark, and you will see the description for this values in some packets.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!