由于最近使用的ffmpeg及其相关的库太过于老旧,所以需要进行更新。
对于视频方面的编码主要用到h264,音频则用到mp3、aac、speex。
其中最为坑的,还是mp3和aac。因为mp3中的分支太多,为了简化问题,最后还是选用lamemp3作为编码器。在ffmpeg 3.0开始,ffmpeg就停止了aacplus的使用,改为使用fdk aac。并且ffmpeg还自带了一个aac编码器。
在编译过程中由于没有注意到这个问题,因此使用了内置编码器,导致he aac编码出来的数据缺少sbr段。因此需要外部加入fdk aac来完成。
- 先说一说需要提前做的一些准备:
1、lamemp3源代码
2、speex源代码
3、fdk_aac源代码
4、x264源代码
5、ffmpeg源代码
6、安装msys2极其相应的工具(如果在windows上编译)
7、vs2015(如果在windows上编译)
lamemp3编译步骤:
直接代开源代码下vc_solution目录,使用vs2015编译即可
speex编译步骤:
打开win32目录下的vs2008直接用vs2015编译即可
fdk_aac编译步骤:
fdk_aac编译比较坑,不能在msys2中编译,需要用nmake(vs工具链)直接编译就好……
x264编译步骤:
在msys2中直接编译即可
ffmpeg编译步骤:
1,将speex、mp3、aac中include的部分代码拷贝到ffmpeg根目录下
2,在将相应的lib文件拷贝到根目录下的某个文件,这里用3rdparty来代表目录
3,执行编译命令
./configure –prefix=/c/work/github/ffmpeg_src_3.2/out –toolchain=msvc –enable-libx264 –enable-libmp3lame –enable-libfdk-aac –enable-nonfree –enable-libspeex –enable-gpl –extra-cflags=-IC:\\work\\github\\ffmpeg_src_3.2 –enable-shared –extra-ldflags=-LIBPATH:C:\\work\\github\\ffmpeg_src_3.2\\3rdparty\\lib
4,执行make和 make install之后即可