2017.1031开始学习FFMPEG音视频编解码,通过学习雷霄骅文章

来源:互联网 发布:zcash n卡挖矿软件 编辑:程序博客网 时间:2024/06/04 00:44

.绝大多数人在追求某个东西的时候,可能连那个东西的定义都不清楚。

聪明与智慧的区别,聪明知道怎么去获取,需要什么;而智慧知道的是什么是我不要的。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

近几天因为一些别的原因没有跟上节奏,近几天和一个同事交流思考了很多问题,留给一个人生活的时间真的不多,我们日日夜夜工作,然后休息,我们的薪酬算下来一个小时才不到35元钱,真的感觉挺寒心的。所以我觉得要改变这种现状,虽然我还不知道怎么改变。

以上皆为吐槽,以下继续开始学习笔记。


学习雷霄骅文章学习笔记:

1.码流总体结构:

            h264功能分为两层:视频编码层(VCL)和网络提取层(NAL)。H.264的编码序列由一系列的NAL单元组成,每一个NALU单元包括一个RBSP。每个NAL单元通常由StartCode+NULLHeader+NULLPayload三部分组成,StartCode用于标示NAL单元的启始,必须是“00 00 00 01”或者是“00 00 01”.

            NALU单元序列:

                             NAL头+RBSP+NAL头+RBSP+NAL头+RBSP

           RBSP序列分为几种类型:

                            SPS+SEI+PPS+I片+图像定界符+P片+P片

2.再回顾下NAL,NAL全称为NetWork Abstract  Layer,即网络抽象层。在H264/AVC视频编码标准中,整个系统框架被分为两个层面:视频编码层(VCL)和网络抽象层(NAL)。视频编码层用来表示视频数据的内容,而网络抽象层用来格式化数据并提供头信息,以保证数据适合各种信道介质的传输。

                           NAL单元为NAL的基本语法结构,它包含了一个字节的头信息和一系列来自网络抽象层(VCL)的称为原始字节序列的字节流。

3. NAL HEADER 由三部分组成:

                           禁止位:forbidden_bit(1bit)

                          优先级:nal_reference_bit(2bits),取值范围0到3

                           类型:  nal_unit_type(5bits)

         常用的NAL头取值:                                   

                          

0x67: SPS 0x68: PPS 0x65: IDR   0x61: non-IDR Slice0x01: B Slice0x06: SEI0x09: AU Delimiter
          准备写一段程序,输入为H.264原始码流,输出为该码流的NALU统计数据如下:(码流原始文件:sintel.h264









原创粉丝点击