FFmpeg的H264解码源码分析:概述

 

概述

我们以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结构里的函数
 
posted @ 2021-06-02 07:57  Vzf  阅读(369)  评论(0编辑  收藏  举报