Chinaunix首页 | 论坛 | 博客
  • 博客访问: 169972
  • 博文数量: 13
  • 博客积分: 2123
  • 博客等级: 大尉
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-05 20:25
文章分类

全部博文(13)

文章存档

2011年(1)

2010年(4)

2009年(5)

2008年(3)

我的朋友

分类:

2010-11-30 16:18:37

这个问题要说清楚还是有点复杂:首先判断 NALU 类型是否是 5,如果是,那么以后连续出现的 NALU 类型为 5 的 NALU 就属于 IDR 帧(一种特殊的 I 帧);如果 NALU 不是 5,则要进一步判断 slice_type 是否是 7,如果是,那么连续出现的 slice_type = 7 的 slice 就属于 I 帧;如果 slice_type = 2,那么就要判断与当前 slice 同属一帧的 slice 是否都是 I slice,如果都是,那么这些 slice 就属于一个 I 帧。当然这必须是在码流没有错误的情况下才可行。

实际应用中,码流中一般不会出现复杂的情况,所以可以直接判断 slice_type   是否等于 2 或 7 就可以了。
阅读(11835) | 评论(2) | 转发(2) |
0

上一篇:CRC-16的源代码

下一篇:I帧和IDR帧的区别

给主人留下些什么吧!~~

huyilover2014-12-04 14:47:44

txgc_wm:7是sps信息呀,怎么会变成I帧。

楼主说的7是指slice header中的slice_type,你说的7是NALU中的nal_type,不是同一个东东

回复 | 举报

txgc_wm2014-10-13 14:40:44

7是sps信息呀,怎么会变成I帧。