264 nal type
来源:互联网 发布:php集成开发工具 编辑:程序博客网 时间:2024/06/06 16:46
/*NUAL HEAD
+---------------+
|0|1|2|3|4|5|6|7|
+-+-+-+-+-+-+-+-+
|F|NRI| Type |
+---------------+
*/
F = Forbidden_zero_bit =0;
NRI = Nal_ref_idc:表示NAL的优先级。0~3,取值越大,表示当前NAL越重要,需要优先受到保护。如果当前NAL是属于参考帧的片,或是序列参数集,或是图像参数集这些重要的单位时,本句法元素必需大于0。
Type = Nal_unit_type:当前NAL 单元的类型
#define TYPE_SPS_FRAME 0x67 //byte: 01100111 F:0 NRI:11 TYPE:00111 = NALU_TYPE_SPS
#define TYPE_PPS_FRAME 0x68 //byte: 01101000 F:0 NRI:11 TYPE:01000 = NALU_TYPE_PPS
#define TYPE_IDR_FRAME 0x65 //byte: 01100101 F:0 NRI:11 TYPE:00101 = NALU_TYPE_IDR
#define TYPE_SLICE_FRAME 0x41 //byte: 01000001 F:0 NRI:10 TYPE:00001 = NALU_TYPE_SLICE
#define TYPE_SEI_FRAME 0x06 //byte: 00000110 F:0 NRI:00 TYPE:00110 = NALU_TYPE_SEI
#define TYPE_S_FRAME 0x61 //byte: 01100001 F:0 NRI:11 TYPE:00001 = NALU_TYPE_SLICE
/*
/H264定义的类型 values for nal_unit_type
typedef enum {
NALU_TYPE_SLICE = 1, byte: 00001 //非IDR图像的编码条带
NALU_TYPE_DPA = 2, byte: 00010 //编码条带数据分割块A
NALU_TYPE_DPB = 3, byte: 00011 //编码条带数据分割块B
NALU_TYPE_DPC = 4, byte: 00100 //编码条带数据分割块C
NALU_TYPE_IDR = 5, byte: 00101 //IDR图像的编码条带
NALU_TYPE_SEI = 6, byte: 00110 //增强信息(SEI)
NALU_TYPE_SPS = 7, byte: 00111 //序列参数集(SPS)
NALU_TYPE_PPS = 8, byte: 01000 //图像参数集(PPS)
NALU_TYPE_AUD = 9, byte: 01001
NALU_TYPE_EOSEQ = 10, byte: 01010
NALU_TYPE_EOSTREAM = 11, byte: 01011
NALU_TYPE_FILL = 12, byte: 01100
#if (MVC_EXTENSION_ENABLE)
NALU_TYPE_PREFIX = 14, byte: 01110
NALU_TYPE_SUB_SPS = 15, byte: 01111
NALU_TYPE_SLC_EXT = 20, byte: 10100
NALU_TYPE_VDRD = 24 byte: 11000 // View and Dependency Representation Delimiter NAL Unit
#endif
} NaluType;
*/
-(BOOL)h264Parse:(NSData *)frameData{
char firstChar;
BOOL isOK = NO;
[frameData getBytes:&firstChar length:1];
if (firstChar == TYPE_SPS_FRAME) {
NSLog(@"TYPE_SPS_FRAME");
isOK = YES;
}else if (firstChar == TYPE_PPS_FRAME){
NSLog(@"TYPE_PPS_FRAME");
isOK = YES;
}else if (firstChar == TYPE_IDR_FRAME){
NSLog(@"TYPE_IDR_FRAME");
isOK = YES;
}else if (firstChar == TYPE_SLICE_FRAME){
NSLog(@"TYPE_SLICE_FRAME");
}else if (firstChar == TYPE_SEI_FRAME){
NSLog(@"TYPE_SEI_FRAME");
}else if (firstChar == TYPE_S_FRAME){
NSLog(@"TYPE_S_FRAME");
isOK = YES;
}
char lastChar;
[frameData getBytes:&lastChar length:1];
if ((lastChar & 0x80) == 0X80) {
NSLog(@"Start Frame......");
}
return isOK;
}
0 0
- nal type 264 265
- 264 nal type
- h.264中NAL
- H.264 NAL detail
- H.264中的NAL技术
- H.264中的NAL技术
- H.264 NAL层解析
- H.264中的NAL技术
- H.264 NAL层解析
- H.264 NAL层解析
- H.264中的NAL技术
- H.264 NAL层解析
- H.264的NAL单元
- H.264中的NAL技术
- H.264中的NAL技术
- H.264中的NAL技术
- H.264中的NAL技术
- H.264 NAL层解析
- 74. Search a 2D Matrixp
- annotationconfigbeandefinitionparser are only available on jdk 1.5 and higher
- 51nod 1013 3的幂的和
- 表单回车事件
- 图像采样和量化的含义
- 264 nal type
- java使用urlrewritefilter实现网站伪静态
- razor语法 mvc中前台js中获取ViewData的值
- Swift Optional Chaining and nil Coalesce
- javascript中的this关键字详解 -- 写的太好了
- 如何注册激活CleanMyMac软件
- .NET 加/解密
- Brackets(区间dp之括号匹配)
- android外部存储