打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
mpeg4视频中,I帧、p帧、B帧的判定

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;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
视频文件解码与起始码(startcode) 研究
js 阿拉伯数字转换为罗马数字
MP3的播放时间的计算公式及XING和VBRI头介绍
AAC ADTS LATM 格式分析
AAC文件格式解析
经典空心五角星源码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服