FFMPEG架构分析 使用面向对象的办法来设想这样一个编解码库,首先让人想到的是构造各种编解码器的类,然后对于它们的抽象基类确定运行数据流的规则,根据算法转换输入输出对象. 在实际的代码,将这些编解码器分成encoder/decoder,muxer/demuxer和device三种对象,分别对应于编解码,输入输出格式和设备.在main函数的开始,就是初始化这三类对象.在avcodec_register_all中,很多编解码器被注册,包括视频的H.264解码器和X264编码器等, REGISTER…