码迷,mamicode.com
首页 > 其他好文 > 详细

FFmpeg解封装h264 ---- 提取SPS PPS

时间:2020-10-20 16:22:35      阅读:21      评论:0      收藏:0      [点我收藏+]

标签:strong   extra   ext   span   mp4   打开   --   context   一个   

前言

我们从flv和mp4等文件解封装读取的AVPacket并没有SPS、PPS数据,而是保存在 AVFormatContext -> streams -> codecpar -> extradata里面,下面我们打开一个flv文件看一下

 

 

 

 技术图片

 

 

 技术图片

分析一下这块数据,起始位置:0980 大小:39 结束位置:09a6

前4个字节:

  0x01: version

  0x42: avc profile (首个SPS的第1个字节)

  0xc0: avc compatibility (首个SPS的第2个字节)

     0x28: avc level (首个SPS的第3个字节,可以发现后面0x0989位置的3个字,和这3个是一样的)

第5个字节:

  0xff:

    6_bit: 默认111111

      2_bit: 编码数据长度所需字节数

第6个字节:

  0xe1: [111 00001]

    3_bit: 默认 111

    5_bit: 接下来的sps或pps的个数::这里为1

第7 8个字节:

  0x00 0x18: 表示接下来sps或者pps的长度为24

第9个字节:

  0x67: [0110 0111] nalu_type为7,表示SPS,就是说从0988到099f这24个数据为sps

第33个字节:9 (sps_pos) + 24(sps_size)

  0x01: 接下来的sps或pps的个数::这里为1

第34 35字节:

  0x00 0x04: 表示接下来sps或者pps的长度为4

第36个字节:

  0x68: [0110 1000] nalu_type为8,表示PPS

FFmpeg解封装h264 ---- 提取SPS PPS

标签:strong   extra   ext   span   mp4   打开   --   context   一个   

原文地址:https://www.cnblogs.com/vczf/p/13844580.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!