音视频编码类型

H264

格式介绍

  avcc:前四个字节表示nalu的size(大端)

  Annex B:0x000001或者0x00000001开始码,nalu针对0x000000,0x000001,0x000002和0x000003插入0x03防竞争字节

原理简析

宏块固定16x16

源码介绍

  H264Context

struct H264Context {
    const AVClass*  class;
    AVCodecContext* avctx;
    H2645Packet     pkt;              // 存放多个nal,ff_h2645_packet_split
    int             is_avc;           // 判断是否是avc1
    int             nal_length_size;  // nal单元长度表示,(1, 2 or 4)字节
    ......
}

  avcodec_send_packet

  * decode_receive_frame_internal   ->   decode_simple_receive_frame   ->   decode_simple_internal   ->   h264_decode_frame

     decode_nal_units(先判断是否为avcc格式)

  1. ff_h2645_packet_split(根据is_avc的值,是按avc1或h264格式解析获取nal的长度)
  2. ff_h264_sei_decode
  3. ff_h264_decode_seq_parameter_set
  4. ff_h264_decode_picture_parameter_set
  5. ff_h264_queue_decode_slice

     其中ff_h2645_packet_split

  • get_nalsize或find_next_start_code
  • ff_h2645_extract_rbsp
  • h264_parse_nal_header

  avcodec_receive_frame

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值