You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何识别RTP传输的H.264码流中的各类型帧

RTP封装H.264码流帧类型识别方案

前置过滤规则

先排除非帧数据类NAL单元,不参与后续判定:

  • nal_type = 6:SEI(补充增强信息)
  • nal_type = 7:SPS(序列参数集)
  • nal_type = 8:PPS(图像参数集)
  • nal_type = 9:AUD(访问单元分隔符,可用于同帧判定辅助)

同帧切片聚合方法

H.264中一帧可包含1~N个切片,可通过以下规则判断哪些切片属于同一帧:

  1. 先聚合RTP层FU-A分片得到完整NAL单元
    同一FU-A分片组的判定条件:RTP序列号连续 + RTP时间戳完全相同 + FU-A头部标记匹配:首分片S=1,尾分片E=1,中间分片S=0/E=0
  2. 聚合同属一帧的多个切片NAL
    核心判定条件(满足即可判定为同帧):
    • 所有切片NAL对应的RTP时间戳完全一致
    • 所有切片头部的frame_num字段值完全相同
      辅助判定条件(适用于携带AUD的码流):两个相邻AUD之间的所有切片属于同一帧

I/P/B帧类型识别逻辑

单切片类型判定

结合slice_type和nal_ref_idc的判定规则如下:

  • B类切片:slice_type取值为0/5,且nal_ref_idc = 0(B切片不作为参考帧)
  • P类切片:slice_type取值为1/6,且nal_ref_idc ≥ 1(P切片属于参考帧)
  • I类切片:slice_type取值为2/7,且nal_ref_idc ≥ 1(I切片属于参考帧)
  • 特殊切片:slice_type为3/8的SI切片归为I类,slice_type为4/9的SP切片归为P类

整帧类型判定

完成同帧切片聚合后,按优先级从高到低判定整帧类型:

  1. 帧内存在至少1个I类切片 → 整帧为I帧
  2. 帧内无I类切片,但存在至少1个P类切片 → 整帧为P帧
  3. 帧内所有切片均为B类 → 整帧为B帧

内容的提问来源于stack exchange,提问作者Jordan Sim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:27:03