Linux编译FFMPEG运行报错 error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory

时间: 2018-01-23 00:09 栏目: Linux 浏览: 21415 赞: 24 踩: 8 字体:

以下为本篇文章全部内容:

因为业务需求,需要把微信上面的录音下载到服务器进行统一格式转换处理,而linux下处理音视频无疑ffmpeg是首选,因此我也不例外到选择了款神器。

首先服务器采用了Centos64位到操作系统,估计是64位到缘故,本身在Centos到源里面就没有ffmpeg到源,因此我们要么通过第三方源安装,要么通过编译安装。

身为一个提倡动手的我当然选择编译安装。需要安装的扩展库可选的有太多,我这里就根据我使用到到来安装,因为我只处理音频而已,所以我的主要扩展库就一个mp3。

第一步安装依赖

yum install -y autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel

第二步安装Yasm

git clone --depth 1 git://github.com/yasm/yasm.git
cd yasm
autoreconf -fiv
./configure
make install
make distclean

第三步安装libmp3

wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make
make install
make distclean

第四步安装ffmpeg

wget http://ffmpeg.org/releases/ffmpeg-3.2.4.tar.bz2
tar xvf ffmpeg-3.2.4.tar.bz2
cd ffmpeg-3.2.4
./configure --prefix=/usr/local/ffmpeg/ --enable-shared --enable-libmp3lame
make
make install

等待编译安装完成。使用下面命令可以将一个amr的音频文件转换成mp3

/usr/local/ffmpeg/bin/ffmpeg -i /root/1.amr -acodec mp3 /root/1.mp3

执行命令的过程中有可能出现:/usr/local/ffmpeg/bin/ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory

这样的错误,这个错误是因为动态链接库没有找到导致的。也有可能是64位操作系统的原因。这里位给出解决办法,就是修改动态链接库配置文件/etc/ld.so.conf添加一句话/usr/local/ffmpeg/lib当然这个要根据实际情况而定,就是安装的路径。

修改配置文件

vim /etc/ld.so.conf

加入下面一句话

/usr/local/ffmpeg/lib

重新加载配置文件

ldconfig

到此该问题得以解决。