H264文件分析

先准备一个H264文件,如果没有,可以使用以下方法。

首先下载ffmpeg,直接下载

http://www.ffmpeg.org/download.htmlhttp://www.ffmpeg.org/download.html

image-20200621180942675.png

下载Build版本,不要下源码。我把它解压到了D盘根目录下了,无需安装。

然后在windows 命令行输入命令


image-20200621181220809.png
ffmpeg -i ../2.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 ../test.h264

使用十六进制编辑器打开test.h264,推荐一款小巧的编辑器 HxD

image-20200621181549106.png

下面我们开始分析数据:

h264常见的帧头数据为:

00 00 00 01 61 (P帧)

00 00 00 01 65 ( IDR 帧)

00 00 00 01 67 (SPS)

00 00 00 01 68 (PPS)

帧类型有:

 NAL_SLICE = 1     非关键帧      # 00 00 00 01 61
    NAL_SLICE_DPA = 2 片分区A
    NAL_SLICE_DPB = 3 片分区B
    NAL_SLICE_DPC =4  片分区C
    NAL_SLICE_IDR =5  关键帧        # 00 00 00 01 65
    NAL_SEI = 6       补充增强信息
    NAL_SPS = 7       SPS帧        # 00 00 00 01 67 
    NAL_PPS = 8       PPS帧        # 00 00 00 01 68 
    NAL_AUD = 9       分解符
    NAL_FILLER = 12   填充

对于H264而言,每帧的界定符为00 00 00 01 或者00 00 01


image-20200621182419619.png

上面的数据第一帧是00 00 00 01 67 64 .....

第二帧数据是00 00 00 01 68 EA......

第三帧数据是 00 00 01 65......

SPS对于H264而言,就是编码后的第一帧

PPS就是编码后的第二帧

I帧就是第三帧


20180805220546969.png

你可能感兴趣的:(H264文件分析)