h264检测是I帧还是P帧
From: http://blog.csdn.net/zgyulongfei/article/details/7558031
今天在网上找了一些资料,知道了如何检测h264中的帧类型,在这里记录下来。
首先,贴出nal单元类型定义(图从《新一代视频压缩编码标准H.264》摘录):
假设一段h264的码流为:00 00 00 01 41 E6 60……
其中的00 00 00 01为起始码,而起始码之后的下一个字节就可以检测出这一帧的类型。
在上面的码流中起始码之后的字节位 0x41,换算成二进制为 0100 0001。
注:我解读顺序为从左往右算。
(1)第1位禁止位,值为1表示语法出错
(2)第2~3位为参考级别
(3)第4~8为是nal单元类型,在此处为 0 0001换算成十进制为1。根据上图可知道这段码流是【不分区、非IDR图像的片】,在baseline的档次中就是P帧,因为baseline没有B帧。
如果是另一段码流:00 00 00 01 65 E8……
那么根据0x65字节(0110 0101)根据后5位换算十进制为5,也就是【IDR图像中的片】,即I帧。
用代码的方式可以这样写,int type = 0x65 & 0x1f,然后根据type在表中查找即可获得需要的结果。
h264检测是I帧还是P帧相关推荐
- H264编码入门(二)I 帧和 IDR 帧的区别
I 帧和 IDR 帧的区别 I 帧和 IDR 帧的区别 IDR与GOP: 疑问: 解答: 结论 QQ交流群:697773082 I 帧和 IDR 帧的区别 IDR 帧属于 I 帧.解码器收到 IDR ...
- H264中I、B、P帧编码原理及pts和dts分析
转载自:https://blog.csdn.net/bingqingsuimeng/article/details/9982107 --前言-- H264是新一代的编码标准,以高压缩高质量和支持多种网 ...
- H264中I帧P帧和B帧
I/P/B帧 编码帧的分类 I帧(intraframe frame),关键帧,采用帧内压缩技术.IDR帧属于I帧. P帧(forward Predicted frame),向前参考帧.压缩时,只参考前 ...
- I 帧和 IDR 帧的区别
I 帧和 IDR 帧的区别: IDR 帧属于 I 帧.解码器收到 IDR frame 时,将所有的参考帧队列丢弃 (用x264_reference_reset 函数实现--在 encoder.c 文 ...
- (转)I 帧和 IDR 帧的区别
I 帧和 IDR 帧的区别:http://blog.csdn.net/skygray/article/details/6223358 IDR 帧属于 I 帧.解码器收到 IDR frame 时,将所 ...
- H.264中IDR帧和I帧区别
IDR(Instantaneous Decoding Refresh)--即时解码刷新. I和IDR帧都是使用帧内预测的.它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I ...
- python多进程解决多路视频流卡帧、掉帧、延时等问题
多进程解决多路视频流卡帧.掉帧.延时等问题 利用python代码实现不同厂家摄像头同时实时录制并存储 本代码参考: link,文章作者实现读取多个(海康\大华)网络摄像头的视频流 (使用opencv- ...
- I帧和IDR帧的区别
文章一: 转自:http://blog.csdn.net/SkyGray/article/details/6223358 IDR 帧属于 I 帧.解码器收到 IDR frame 时,将所有的参考帧队 ...
- I帧和IDR帧区别(转载)
I 帧和 IDR 帧的区别: IDR 帧属于 I 帧.解码器收到 IDR frame 时,将所有的参考帧队列丢弃 (用 x264_reference_reset 函数实现--在 encoder.c ...
- CAN 数据帧,远程帧,错误帧,以及出错重连
1.CAN协议的定义: CAN总线使用串行数据传输方式,当can总线上的一个节点站发送数据,它以报文形式广播给网络中所有的节点.对于每隔节点来说,无论数据是不是发给自己的,都对其进行接受. 2.CAN ...
最新文章
- [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588
- oracle 最低要求吗,神谕Oracle配置要求高吗?最低及推荐配置一览
- Vue开发规范1.0
- 动态将表中的列名全部转换成小写
- 23为什么要帮助他人
- python神经网络调节参数_神经网络进阶-用python实现一个完整的神经网络框架并在CIFAR10数据集上调参...
- [转载] Python 多项式拟合(一元回归)
- Android4.4 Input 输入上层分析
- Keras(六)Autoencoder 自编码 原理及实例 Savereload 模型的保存和提取
- 由一维数组表示的N维数组实现(C++)
- 无盘服务器uefi启动,易乐游无盘网吧客户机使用UEFI启动教程
- cms自动更新php文件,PHPCMS站群管理系统-PHPCMS自动采集-PHPCMS自动更新
- AMiner推荐论文:Strongly coupled N-doped graphene quantum dots/Ni(Fe)OxHy electrocatalysts with accelerat
- Object.assign()用法小结
- 关于机器学习与人类学习不同点的思考
- Scratch简单实现大鱼吃小鱼
- 鸿蒙3部曲先看哪部,“斗罗”有四作,那当年齐名的“鸿蒙”系列到底有“几部曲”?...
- linux动态库注册函数,linux下加载动态库函数
- 笔试练习题001...to be continued...
- Android开发最好笔记本,5最好的笔记本应用程序Android | MOS86