1.ffmpeg解码
从本地读取 AAC 码流,然后解码
大致流程
解码需要理解四个结构体AVStream、 AVPacket 和 AVFrame 以及 AVCodecContext, 其中AVPacket 是存放是编码格式的一帧数据, AVFrame 存放的是解码后的一帧数据。 解码的过程其实就是从AVCodecContext 取出一个AVPacket 解码成 AVFrame的过程。
关键函数说明:
avcodec_register_all():注册所有的编解码器。 avcodec_find_decoder:根据指定的AVCodecID查找注册的解码器。 av_parser_init:初始化AVCodecParserContext。返回的是AVCodecParserContext avcodec_alloc_context3:为AVCodecContext分配内存。 avcodec_open2:打开解码器。 av_parser_parse2:解析获得一个Packet。 avcodec_send_packet:将AVPacket压缩数据给解码器。 avcodec_receive_frame