从 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 配置文件和级别?的主要内容,如果未能解决你的问题,请参考以下文章
WebRTC 核心功能介绍--一篇读懂SDP PlanB UnifiedPlan(从PlanB迁移到UnifiedPlan)