在运行ffmpeg进行转码的时候报错:
ffmpeg: error while loading shared libraries: libmvec.so.1: cannot open shared object file: No such file or directory
首先,输入ldd 命令 查看ffmpeg哪些依赖缺失:
ldd /etc/ffmpeg-master-latest-linux64-gpl/bin/ffmpeg
结果:
linux-vdso.so.1 (0x00007ffca4733000)
libm.so.6 => /usr/lib64/libm.so.6 (0x00007f46d348e000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007f46d328a000)
librt.so.1 => /usr/lib64/librt.so.1 (0x00007f46d3082000)
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007f46d2e64000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007f46d2ab8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f46d3790000)
libmvec.so.1 => not found
明显 libmvec.so.1 => not found
因为服务器不通外网,所以 浏览器请求了http://ftp.gnu.org/gnu/glibc/glibc-2.25.tar.gz
(如果通外网的话,可以直接在服务器curl -O 或者 wget下载)
下载了2.25版本的glibc,
上传至服务器后
tar xvzf glibc-2.25.tar.gz
cd glibc-2.25
mkdir build
cd build
make -i
make install -i
也可以(参考,版本号不同)
curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxf glibc-2.18.tar.gz
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr
make -j2
make install
安装完毕,执行ldd
linux-vdso.so.1 (0x00007ffebe5ab000)
libm.so.6 => /usr/lib64/libm.so.6 (0x00007fb3b102a000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fb3b0e26000)
librt.so.1 => /usr/lib64/librt.so.1 (0x00007fb3b0c1e000)
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fb3b0a00000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fb3b0666000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb3b133a000)
libmvec.so.1 => /usr/lib64/libmvec.so.1 (0x00007fb3b043c000)
完事!