专栏首页VNFMPEG4视频中,I帧、p帧、B帧的判定(转载) By HKL,

MPEG4视频中,I帧、p帧、B帧的判定(转载) By HKL,

mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案。注意:是2bit,不是byte,下面是各类型帧与2bit的对应关系:

  00: I Frame

  01: P Frame

  10: B Frame 

为了更好地说明,我们举几个例子,以下是16进制显示的视频编码:

  00 00 01 b6 10 34 78 97 09 87 06 57 87 ……                             I帧

  00 00 01 b6 50 78 34 20 cc 66 b3 89 ……                                  P帧

  00 00 01 b6 96 88 99 06 54 34 78 90 98 ……                              B帧

下面我们来分析一下为什么他们分别是I、P、B帧

  0x10 = 0001 0000

  0x50 = 0101 0000

  0x96 = 1001 0100 

大家看红色的2bit,再对照开头说的帧与2bit的对应关系,是不是符合了呢?

下面给出一段c++代码供大家参考:

switch(buf[i] & (BYTE)0xc0)
{
case 0x00:
    //I Frame
    break;
case 0x40:
    //P Frame
    break;
case 0x80:
    //B Frame
    break;
default:
    break;
}

From: http://www.360doc.com/content/11/0718/17/474846_134326279.shtml

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从现有Linux系统上安装Archlinux

    以Oracle Cloud环境为例,从现有Linux系统上安装Archlinux [理论上可以无VNC实现]

    hiplon
  • 用动态路由打通各Virtual L2网络 By HKL,

    本文主要以Zerotier组好的各Virtual L2网络节点 + 动态路由 RIP 为例,最终效果就是让网关建立Zerotier的Virtual L2网络,网...

    hiplon
  • Coding通过Jenkins生成jekyll并发布到腾讯云对象存储Qcloud COS By HKL,

    Coding项目通过Jenkins生成jekyll并发布到腾讯云对象存储Qcloud COS

    hiplon
  • 【DB笔试面试617】在Oracle中,和“表达式和条件评估”相关的查询转换有哪些?

    小麦苗DBA宝典
  • Linux下ps命令详解

    linux上进程有5种状态:  1. 运行(正在运行或在运行队列中等待)  2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)  3. 不可中断(...

    joshua317
  • 当心外部连接中的ON子句

           在SQL tuning中,不良写法导致SQL执行效率比比皆是。最近的SQL tuning中一个外部连接写法不当导致过SQL执行时间超过15分钟左右...

    Leshami
  • 巧用parallel极速提升数据加载速度(r2第21天)

    并行在平时工作中可能不是很注意,因为有时候即使设定了parallel 相关的hint,感觉性能也好不到哪去。这是我以前的感觉。 今天通过一个案例来分享一下通过p...

    jeanron100
  • 如何在CDH集群中部署Presto

    Fayson
  • Yum 报错 curl#60 – “Peer’s Certificate has expired.”解决

    Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and...

    zhangdd
  • 6 如何保障项目按期完工? 人人都是项目经理系列(第6/13篇)

    1.1帕金森定律(PMP中的定义):只要还有时间,人们就会有意无意地多做不必要的工作(范围蔓延),直到用完所有的时间。(没错,说的就是那些只要有时间就改需求的策...

    放牛的星星

扫码关注云+社区

领取腾讯云代金券