ffmpeg导入x264、libfdk_aac外部库(已解决wrong ELF class: ELFCLASS32)

起因:

在做pcm编码aac时,运行报错:failed to find codec

查看ffmpeg中已有的aac编码器:ffmpeg -encoders | grep aac

没有找到libfdk_aac

尝试重新编译 ffmpeg:

./configure --enable-shared --enable-gpl --enable-nonfree --enable-libx264  
--enable-libfdk-aac --enable-libmp3lame --prefix=/opt/ffmpeg

报错:ERROR: libfdk_aac not found

原因:libfdk_aac、x264等模块已经从ffmpeg独立出去了,我们需要自己导入libfdk_aac和x264库


编译x264、libfdk_aac

下载地址:
libfdk-aac下载
libmp3lame下载
libx264下载


统一配置:./configure --enable-shared --prefix=/home/zhou/ffmpeg/packages/encoders
编译安装:make && make install
image-20210503235741389

重新编译ffmpeg:
./configure --enable-shared --enable-gpl --enable-nonfree --enable-libx264  
--enable-libfdk-aac --enable-libmp3lame --prefix=/opt/ffmpeg 
--extra-cflags="-I/home/zhou/ffmpeg/packages/encoders/include" 
--extra-ldflags="-L/home/zhou/ffmpeg/packages/encoders/lib"

配置时可以看到,libfdk_aac、libmp3lame、libx264三个编码器已经使能!
image-20210504001813314编译安装:make && sudo make install

安装完成后需要重新生成软链接ln -s /opt/ffmpeg/bin/ffmpeg /usr/local/bin/ffmpeg,然后sudo ldconfig,再执行ffmpeg -v。


问题:libfdk-aac.so.2: wrong ELF class: ELFCLASS32
image-20210504011420043

原因:不是我们编译的libfdk-aac有问题,而是因为ffmpeg调用的是系统中的其它libfdk-aac库;使用locate libfdk-aac可以直接定位系统中的库文件。

解决设置依赖链接库

vim ~/.bashrc中添加如下内容,然后使用命令source ~/.bashrc使其生效。

export LD_LIBRARY_PATH=/home/zhou/ffmpeg/packages/encoders/lib/:$LD_LIBRARY_PATH

image-20210504014627064

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值