本文主要是介绍精简但精确的PCM编码为AAC解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
核心知识:
一、输出媒体文件所需的结构 体:AVOutputFormat,AVFormatContext,AVStream,AVCodec,AVCodecContext,AVFrame,AVPacket(按出现先后 顺序)。
二、AVOutputFormat是输出容器(container)句柄,直接关联文件,但只有句柄远远不够,我们需要设置相关参数 ;AVFormatContext就是容器上下文(用avformat_alloc_context初始化),我们于其设置目标容器文件名,目标 容器句柄,I/O上下文(this->pb);
三、只有上面两个,我们还是不能对相应文件进行写入操作,需要对其进行流化操作,我们用avformat_new_stream( aacFormatCtx, NULL);初始化一个空流,但这时这个Stream还是不能用!因为这是一个真正的空流!里面的数据 指针和流头都还未被初始化,我们需要avformat_write_header(aacFormatCtx, NULL);这次才是真正的生成了可 以用的流。
四、AVCodec这个结构体包含了一个解码器的必要参数,好在ffmpeg为我们提供了简单的接口avcodec_find_encoder ,这样就可以很容易的获取一个编码器(只是相关参数!)。
这篇关于精简但精确的PCM编码为AAC解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!