目录
-
参考
-
音频解码过程
-
FFmpeg流程
-
avcodec编解码API介绍
-
示例代码
1. 参考
-
[1] FFmpeg/doc/examples/decode_audio.c
-
[2] FFmpeg 文档:send/receive encoding and decoding API overview
2. 音频解码过程 音频解码过程如下图所示:
音频解码.png
3. FFmpeg流程
FFmpeg_decode_audio.png
关键函数说明:
-
avcodec_find_decoder:根据指定的AVCodecID查找注册的解码器。
-
av_parser_init:初始化AVCodecParserContext。
-
avcodec_alloc_context3:为AVCodecContext分配内存。
-
avcodec_open2:打开解码器。
-
av_parser_parse2:解析获得一个Packet。
-
avcodec_send_packet:将AVPacket压缩数据给解码器。
-
avcodec_receive_frame:获取到解码后的AVFrame数据。
-
av_get_bytes_per_sample: 获取每个sample中的字节数。
关键数据结构说明:
-
AVCodecParser:用于解析输入的数据流并把它分成一帧一帧的压缩编码数据。比较形象的说法就是把长长的一段连续的数据“切割”成一段段的数据。
4. avcodec编解码API介绍 avcodec_send_packet、avcodec_receive_frame的API是FF