(十三) h264、AAC、rtmp解析

想深入研究的可以去看原英文文档 h264英文文档下载

x264编码流程:(x264是h264标准的实现)
	x264_param_default_preset 设置
	x264_param_apply_profile 设置档次
	x264_picture_alloc(x264_picture_t输入图像)初始化
	x264_encoder_open 打开编码器
	x264_encoder_encode 编码
	x264_encoder_close( h ) 关闭编码器,释放资源 // x264_picture_clean( x264_picture_t *pic ) 释放 x264_picture_t

H264码流文件分为两层:
(1) VCL(Video Coding Layer)视频编码层:负责高效的视频内容表示,VCL 数据即编码处理的输出,它表示被压缩编码后的视频数据序列。
(2) NAL(Network Abstraction Layer)网络提取层:负责以网络所要求的恰当的方式对数据进行打包和传送,是传输层,不管是在本地播放还是在网络播放的传输,都要通过这一层来传输。

NALU

NALU:网络提取层单元(十六进制),x264编码之后的数据可以理解为很多个NALU组成
	NALU举例: 00 00 00 01 06 ...
			   前4个字节表示NALU的起始码
			   06 表示 NAL header ,占1个字节
			   ... 为 payload ,表示后续的具体的音视频数据

如果NALU对应的Slice为一帧的开始,则用4字节表示,即0x00000001;否则用3字节表示,0x000001。

NALU头由一个字节组成。
语法:禁止位(1bit)、重要性位(2bit)、NALU类型(5bit)。
NAL header

NALU头信息的每一位说明如下表所示。
在这里插入图片描述

nal_unit_type取值的含义如下:
0 没有定义
1-23 NAL单元,单个 NAL 单元包
1 不分区,非IDR图像的片
2 片分区A
3 片分区B
4 片分区C
5 IDR图像中的片,说明这是关键帧NAL单元。I帧,由若干IDR(即时刷新)图像片组成
6 补充增强信息单元(SEI)
7 SPS(Sequence Parameter Set序列参数集,作用于一串连续的视频图像,即视频序列)
8 PPS(Picture Parameter Set图像参数集,作用于视频序列中的一个或多个图像)
9 序列结束
10 序列结束
11 码流结束
12 填充
在这里插入图片描述

NALU举例如下:(十六进制)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值