首页 > 其他分享 >RTP --- H.264 NALU

RTP --- H.264 NALU

时间:2024-11-15 16:42:48浏览次数:1  
标签:00 H.264 IDR NAL --- RTP NALU type

帧类型

I帧:完整编码的帧叫I帧,是一个图像经过压缩后的产物,自身可以通过视频解压算法解压成一张单独的完整的图片

IDF帧:序列的首个帧,IDF帧属于I帧。IDR帧因为附带SPS、PPS等信息,解码器在收到 IDR 帧时,需要做的工作就是:把所有的 PPS 和 SPS 参数进行更新。 将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现错误,在这里可以获得重新同步的机会。IDR帧之后的帧永远不会使用IDR帧之前的数据来解码。

P帧:参考之前的I帧生成的只包含差异部分编码的帧叫P帧, 需要参考其前面的一个I 帧或者P 帧来生成一张完整的图片 ;

B帧:参考前后的帧编码的帧叫B帧 , 要参考其前一个I或者P帧及其后面的一个P帧来生成一张完整的图片 。

 NALU

H264 原始码流是由一个接一个 NALU(NAL Unit) 组成,每个NALU之间都使用start code(起始码)分隔,NALU单元通常由[StartCode] [NALU Header] [NALU Payload] 三部分组成,其中 Start Code 用于标示这是一个NALU 单元的开始,必须是00 00 00 01 或00 00 01。每个 NALU包括一个头部信息(NAL header,一字节)和一个原始字节序列负荷(RBSP,Raw Byte Sequence Payload)。

NAL header

 

forbidden_zero_bit (F,占1bit)
在 H.264 规范中规定了这⼀位必须为 0 。

nal_ref_idc (NRI,占2bit)
NAL重要性,值越大,越重要,解码器在解码处理不过来的时候,可以丢掉重要性为0的NALU,而不影响图像的回放 。 如果当前NALU是属于参考帧的片,或是序列参数集,或是图像参数集这些重要的单位时,本句法元素必需大于0。

nal_unit_type(Type,占5bit):

这个NALU单元的类型,1~12由H.264使用,24~31由H.264以外的应用使用。

常见的NALU类型

NAL header 类型 重要性 nal_unit_type
0x67 (0 11 00111) SPS 非常重要 type = 7
0x68 (0 11 01000) PPS 非常重要 type = 8
0x65 (0 11 00101) IDR帧 关键帧 非常重要 type = 5
0x61 (0 11 00001) I帧 非常重要 type=1非IDR的I帧不大常见
0x41 (0 10 00001) P帧 重要 type = 1
0x01 (0 00 00001) B帧 不重要 type = 1
0x06 (0 00 00110) SEI 不重要 type = 6

 

 

标签:00,H.264,IDR,NAL,---,RTP,NALU,type
From: https://www.cnblogs.com/god-of-death/p/18548234

相关文章

  • 学期2024-2025 20241308 《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标 <写上具体方面>功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释......
  • SpringBoot 3.3.5 集成 mybatis-plus-boot-starter 3.4.2报错
    一、环境JDK:17SpringBoot:3.3.5Mybatis-Plus:3.4.2二、报错信息Considerthefollowing: Ifyouwantanembeddeddatabase(H2,HSQLorDerby),pleaseputitontheclasspath. Ifyouhavedatabasesettingstobeloadedfromaparticularprofileyoumayneed......
  • 【JavaScript】LeetCode:96-100
    文章目录96单词拆分97最长递增子序列98乘积最大子数组99分割等和子集100最长有效括号96单词拆分动态规划完全背包:背包-字符串s,物品-wordDict中的单词,可使用多次。问题转换:s能否被wordDict中的单词组成。dp[i]:长度为i的字符串s[0,i]能否被wordDict组成,dp[i]=......
  • 【JavaScript】LeetCode:91-95
    文章目录91不同路径92最小路径和93最长回文子串94最长公共子序列95编辑距离91不同路径动态规划dp[i][j]:从[0,0]到[i,j]的路径条数。dp[i][j]=从[0,0]到[i,j]上面一格的路径条数+从[0,0]到[i,j]左边一格的路径条数。初始化:因为第一行的格子只能由左......
  • 力扣-Mysql-3293-计算产品最终价格(中等)
    一、题目来源3293.计算产品最终价格-力扣(LeetCode)二、数据表结构表:Products+------------+---------+|ColumnName|Type|+------------+---------+|product_id|int||category|varchar||price|decimal|+------------+-------......
  • 决策树学习--基于豆包、kimiai
    根据与豆包和kimi的对话,进行决策树的简单应用; 在使用决策树模型时,绘图通常指的是可视化决策树结构。这种可视化可以帮助我们理解模型是如何做出预测的,以及各个特征在决策过程中的重要性。在scikit-learn中,可以使用plot_tree函数来绘制决策树。以下是绘制决策树后常见的指标及其......
  • 金蝶云插件:列表插件单元格格式化事件FormatCellValue --- 采购申请单--列表自动刷新即
    region<<版本注释>>采购申请单--列表自动刷新即时库存/*===================================================类名称:PUR_Requisition_ListJSKCQTY类描述:采购申请单--列表自动刷新即时库存创建人:luohong创建时间:2024/11/1514:59:47电子邮箱:it_luo@finecables......
  • 2024-2025-1 20241322《计算机基础与程序设计》第八周学习总结
    2024-2025-120241322《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08这个作业的目标功能设计与面向对象......
  • 抽奖-随机加权算法
    packagelotteryimport( "fmt" "math/rand" "sort" "time")typeLotterystruct{}funcNewLottery()*Lottery{ return&Lottery{}}typePrizestruct{ Namestring Stockint Weightint//权重}//......
  • 关于上报数据量大,且需要剔除一些数据时 --kafka
    假如有些数据是异常大量上报的,此时我需要屏蔽禁止这样的数据进来。能不能在消息上报到kafka时,还没消费消息之前就判断哪些是大量上报的垃圾数据,直接去除掉在使用Kafka对数据进行处理时,通常我们是在数据进入Kafka之后,在消费阶段进行过滤、转换等处理。但如果你的目标是在数据进......