h.264码流解析_一个SPS的nalu及获取视频的分辨率
00 00 00 01 67 42 00 28 E9 00
A0 0B 77 FE 00 02 00 03 C4 80
00 00 03 00 80 00 00 1A 4D 88
10 94 00 00 00 01
00 00 00 01为NALu头,其余码流由十六进制转为二进制
67 0110 0111
42 0100 0010
00 0000 0000
28 0010 1000
E9 1110 1001
00 0000 0000
A0 1010 0000
0B 0000 1011
77 0111 01/11
……
94 1001 01//00
说明:
"/"后的码流要对照标准中AnnexE的句法表,是VUI(VideoUsabilityInformation?)的内容,
不懂,不写了,只写SPS部分先。
"//"后面两个0是补齐用的。
NAL层句法:码,值
forbidden_zero_bit(f(1)):0,0
nal_ref_idc(u(2)):11, 3
nal_unit_type(u(5)): 0 0111, 7, SPS
SPS序列参数集的句法:码,值
profile_idc(u(8)) = 0100 0010,66 , baseline profile基础档次
constraint_set0_flag(u(1)):0,0
constraint_set1_flag(u(1)):0,0
constraint_set2_flag(u(1)):0,0
constraint_set3_flag(u(1)):0,0
reserved_zero_4bits(u(4)):0000,0
level_idc(u(8)) :00101000,40 ,级别
seq_parameter_set_id(ue(v)): 1, 0
log2_max_frame_num_minus4(ue(v): 1, 0
MaxFrameNum = 2^(0+4) = 16
pic_order_cnt_type(ue(v)):1, 0
log2_max_pic_order_cnt_lsb_minus4(ue(v)):010 ,1
MaxPicOrderCntLsb = 2^(1+4) = 32
num_ref_frames(ue(v)):010, 1
gaps_in_frame_num_value_allowed_flag(u(1)):0,0
pic_width_in_mbs_minus1(ue(v)): 0000001010000, 2^6-1+16 = 79
PicWidthInMbs = pic_width_in_mbs_minus1 + 1 = 80
pic_height_in_map_units_minus1(ue(v)): 00000101101 ,2^5-1+13 = 44
PicHeightInMapUnits = pic_height_in_map_units_minus1 + 1 =45
frame_mbs_only_flag(u(1)):1,1
direct_8x8_inference_flag(u(1)): 1,1
frame_cropping_flag(u(1)):0,0
vui_parameters_present_flag(u(1)):1 ,1
这个参数为1,说明下面的句法存在
vui_parameters( )
aspect_ratio_info_present_flag(u(1)):1
其中:
pic_width_in_mbs_minus1 : 79
pic_height_in_map_units_minus1 : 44
说的很清楚:
(79+1)x16=1280
(44+1)x16=720
果然是 1280x720 !
AAC音频格式分析与解码 一直在做一个语音项目,到了测试阶段,近来不是很忙,想把之前做的内容整理一下。 关于AAC音频格式基本情况,可参考维基百科http://en.wikipedia.org/wiki/Advanced_Audio_Coding AAC音频格式分析 AAC音频格式有ADIF和ADTS: ADIF:Audio Data Interchange Format 音频数据交换格式。
计算音频帧的播放时间(音频码流 音频帧) 音频码流(冗余数据占的比例):先简单讲一下对于ADTS header的结构的理解: 1)ADTS header位于每一个aac帧的开头,长度一般是7字节(也可以是9字节的,没见过)。 2)每个aac帧的长度固定为1024个sample(可以是1024*n,没见过n 1的情况)。
《H.264/AVC视频编解码技术详解》视频教程已经在“CSDN学院”上线,视频中详述了H.264的背景、标准协议和实现,并通过一个实战工程的形式对H.
相关文章
- 一个菜鸟后台開始的前端入门(2)
- shell 获取字符串前两个字符串、获取字符串最后一个字符、去掉字符串最后一个字符、去掉末尾一个字符、去掉末尾两个字符
- 解决Cookie在其他页面获取不到,在一个页面设置cookie另一个页面获取不到
- 获取一个容器的宽
- 一个中等规模的七段数码数据库以及利用它训练的识别网络
- 20年资深Oracle老兵:一个经典老问题在12c中的优化实践
- Oracle官方并发教程之一个同步类的例子
- 一个不喜欢读书的Javaer的读书单
- 使用awk分割字符串并且获取分割后的最后一个字符串
- 玩玩反射 - 刚写的一个动态获取属性值的例子
- Excel VLOOKUP实用教程之 05 vlookup如何从列表中获取最后一个值?(教程含数据excel)
- ZeroMQ接口函数之 :zmq_bind - 绑定一个socket
- 自己封装的一个js方法用于获取显示的星期和日期时间
- php获取并删除数组的第一个和最后一个元素
- 通过MutationObserver监听DOM元素,做一个位置随指定元素位置变化而变化的气泡 | ResizeObserver监听元素大小
- SharePoint Iframe 一个错误此内容不能显示在一帧<继续>
- linux没外网时怎么获取一个软件所有相关的依赖包
- iOS开发 - 封装一个自己的按钮
- 在微信小程序上做一个「博客园年度总结」:解决前端获取接口数据太慢的一种思路
- 怎么监视跟踪一个进程(Process)中的MS Unit Test DLL的详细性能(performance)【asp.net C#】
- 每天一个linux命令(2):cd命令