【版权申明】转载请附上出处链接
Ubuntu源码编译ffmpeg遇到的问题(半适用于交叉编译)
ERROR: libfdk_aac not found
解决办法:
缺少fdk_aac 库,安装即可。(在交叉编译中,不可用host的fdk_aac库,需要在configure阶段使用–extra-cflags和–extra-ldflags来指定你编出来的fdk_aac库在哪里)
libfdk_aac官网下载
https://sourceforge.net/projects/opencore-amr/files/fdk-aac/
[libfdk_aac的编译]:
$./autogen.sh
$./configure CC=$(CC) --prefix=$(TARGET_DIR)
$make
$make install
在ffmpeg configure阶段使用--extra-cflags和--extra-ldflags来指定你编出来的fdk_aac库在哪里:
$./configure xxxxxxxxxxxxxxxxxxxxxxx --extra-cflags=-I$(TARGET_DIR)/include --extra-ldflags=-L$(TARGET_DIR)/lib/
ERROR: libmp3lame >= 3.98.3 not found
解决办法:
缺少libmp3lame 库,安装即可。(在交叉编译中,不可用host的fdk_aac库,需要在configure阶段使用–extra-cflags和–extra-ldflags来指定你编出来的libmp3lame库在哪里,同上,不再阐述)
libmp3lame官网下载
https://sourceforge.net/projects/lame/files/lame/
[libmp3lame的编译]:
$./configure CC=$(CC) --prefix=$(TARGET_DIR);
$ make;
$make install;
C compiler test failed.
解决办法:
难道你真的没有安装gcc?(使用sudo apt-get install gcc解决)不会吧不会吧,还真是因为没有安装gcc。
如果你不是因为没有安装gcc导致的问题,那么你很可能和我一样,某个地方写错了导致gcc编译没过去,你可以查看misc_src/ffmpeg-4.2.2/ffbuild/config.log文件,看下你哪里写错了。相信你可以的。
ERROR: freetype2 not found using pkg-config
解决办法:
我enable了挺多选项的,有挺多我暂时不需要的,所以我选择去掉这个enable,以后碰到再说吧。(./configure去掉–enable-libfreetype)
ERROR: libx264 not found
解决办法:
很明显这个是需要的,所以我们需要编译libx264库。
$git clone https://code.videolan.org/videolan/x264.git
$./configure --prefix=$(TARGET_DIR) --enable-shared --enable-static --disable-asm
$make
$make install
ERROR: x265 not found using pkg-config
解决办法:
这里是两个问题,第一个你需要安装x265库,第二个你需要把告诉ffmpeg x265 pkgconfig的位置在哪。故解决办法如下:
$hg clone http://hg.videolan.org/x265
$cmake source -DCMAKE_INSTALL_PREFIX=$(TARGET_DIR) -DCMAKE_PREFIX_PATH=$(TARGET_DIR)
$make CC=$(CC) CFLAGS=$(CFLAGS)
$make install
$export PKG_CONFIG_PATH=$(TARGET_DIR)/lib/pkgconfig:$PKG_CONFIG_PATH