从 sdp 中的 profile-level-id 识别 h264 配置文件和级别?

Posted

技术标签:

【中文标题】从 sdp 中的 profile-level-id 识别 h264 配置文件和级别?【英文标题】:Identify h264 profile and level from profile-level-id in sdp? 【发布时间】:2014-05-22 13:25:41 【问题描述】:

在 SIP 视频通话中,视频流的接收者使用其解码器的功能进行响应。

定义它的参数是profile-level-id。以下是 profile-level-id 参数的示例值:428014

RFC 6184 将其定义为

以下内容的 base16 [7](十六进制)表示 指定序列参数集中的三个字节 NAL 单元 在1: 1) profile_idc, 2) 这里称为的字节 profile-iop,由constraint_set0_flag的值组成, constraint_set1_flag,constraint_set2_flag, constraint_set3_flag,constraint_set4_flag, constraint_set5_flag 和 reserved_zero_2bits 在位- 重要性顺序,从最重要的位开始,以及 3) level_idc.

据此,可以从示例值中识别出以下参数:

profile_idc 42 profile-iop 82 level-idc 14

如何将这些数字与为 h264 定义的 profiles 和 levels 相关联?

【问题讨论】:

【参考方案1】:

对于此类事情,您应该阅读实际的H.264 spec 而不是***。使用它,您可以将示例解析为

profile_idc 0x42 == 66 所以它是基线配置文件 profile-iop 0x80 mean constraint_set0_flag=1(所以它是 Constrained Baseline profile)和其他 0 level-idc 0x14 == 20 所以它是 2.0 级

所以结果是受约束的基线配置文件级别 2.0

【讨论】:

“建议 H.264,“通用视听服务的高级视频编码”部分 7.4.2.1.1' 声明 constraint_set0_flag equal to 1 indicates that the coded video sequence obeys all constraints specified in subclause A.2.1. constraint_set0_flag equal to 0 indicates that the coded video sequence may or may not obey all constraints specified in subclause A.2.1.。其中 A.2.1 定义了基线配置文件。你是怎么解码的?请在这里回复***.com/questions/23494168/h264-profile-iop-explained 我正在查看 ISO/IEC 14496 10 的 2012 版,第 A.2.1.1 节将约束基线配置文件定义为“比特流与约束基线配置文件的一致性由 profile_idc 表示为66,其中 constraint_set1_flag 等于 1。”我相信 constraint_set0_flag=1 仅适用于基线配置文件。因此,答案中的示例只是基线 有关不同约束位的讨论,请参见此处:***.com/questions/23494168/h264-profile-iop-explained【参考方案2】:

请参阅 RFC 6184 中的下表: 表 5. profile_idc 和 profile-iop 的组合表示对应于一个配置文件支持的全套编码工具的相同子配置文件。在下文中,x 可以是 0 或 1,而配置文件名称如下所示。 CB:约束基线配置文件,B:基线配置文件,M:主配置文件,E:扩展配置文件,H:高配置文件,H10:高 10 配置文件,H42:高 4:2:2 配置文件,H44:高 4:4:4预测配置文件,H10I:高 10 帧内配置文件,H42I:高 4:2:2 帧内配置文件,H44I:高 4:4:4 帧内配置文件和 C44I:CAVLC 4:4:4 帧内配置文件。

      Profile     profile_idc        profile-iop
                  (hexadecimal)      (binary)

      CB          42 (B)             x1xx0000
         same as: 4D (M)             1xxx0000
         same as: 58 (E)             11xx0000
      B           42 (B)             x0xx0000
         same as: 58 (E)             10xx0000
      M           4D (M)             0x0x0000
      E           58                 00xx0000
      H           64                 00000000
      H10         6E                 00000000
      H42         7A                 00000000
      H44         F4                 00000000
      H10I        6E                 00010000
      H42I        7A                 00010000
      H44I        F4                 00010000
      C44I        2C                 00010000

它是 Baseline Profile Level 2.0。

【讨论】:

以上是关于从 sdp 中的 profile-level-id 识别 h264 配置文件和级别?的主要内容,如果未能解决你的问题,请参考以下文章

SIP SDP Profile-level-id解析

如何解码 H264 SDP 中的 sprop 参数集?

如何从 FFMPEG 生成 SDP 文件

WebRTC 核心功能介绍--一篇读懂SDP PlanB UnifiedPlan(从PlanB迁移到UnifiedPlan)

无法设置远程提供 sdp:使用没有 SDES 加密的 SDP 调用

SDP协议基本分析(RTSPWebRTC使用)