概述

我们以FFmpeg简单使用:视频解码 ---- 提取yuv为例,研究一下h264的解码过程。

这里主要涉及两个方面:

1.解析器【ff_h264_parser】:使用av_parser_parse2解析出一帧NALU

2.解码器【ff_h264_decoder】:使用avcodec_send_packet送入NALU,通过avcodec_receive_frame获取AVFrame

ff_h264_parser解析器

AVCodecParser ff_h264_parser = {
    .codec_ids      = { AV_CODEC_ID_H264 },
    .priv_data_size = sizeof(H264ParseContext),
    .parser_init    = init, // 初始化解码器
    .parser_parse   = h264_parse, // 解析
    .parser_close   = h264_close, // 关闭解码器
    .split          = h264_split,
};
AVCodecParser里面的parser_init、parser_parse和parser_close最终调用的是ff_h264_parser结构里的函数
 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-10
  • 2021-06-23
  • 2021-05-26
  • 2021-08-08
猜你喜欢
  • 2021-07-21
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2021-06-30
  • 2021-08-02
  • 2021-05-01
相关资源
相似解决方案