现在的位置: 首页 > 综合 > 正文

ffmpeg error while loading shared libraries

2018年05月18日 ⁄ 综合 ⁄ 共 1452字 ⁄ 字号 评论关闭

ffmpeg: error while loading shared libraries: libavdevice.so.56: cannot open shared object file: No such file or directory

问题解决,这个方案存很久来...

1.首先登入ffmpeg的官网下载源文件:

http://ffmpeg.org/download.html#get-sources

2.解压
tar -xvjf ffmpeg-2.4.tar.bz2
3.运行自动配置
./configure --enable-shared --prefix=/usr/local/ffmpeg
其中:--enable-shared 是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。
--prefix设置的安装目录。
期间可能会出错,说少了yasm,请用--disabled-yasm重新运行,在命令中加入这个参数也能成功,不过最好加上,这个和格式转换有关系的!
Yasm是一个完全重写的NASM汇编。目前,它支持x86和AMD64指令集,接受NASM和气体汇编语法,产出二进制, ELF32 , ELF64 , COFF , Mach - O的( 32和64 ) , RDOFF2 ,的Win32和Win64对象的格式,并生成STABS 调试信息的来源,DWARF 2 ,CodeView 8格式。
这里建议安装yasm
4.安装yasm
apt-get install yasm
再运行配置
./configure --enable-shared --prefix=/usr/local/ffmpeg
5.编译安装
make  && make install
安装之后在/usr/local/ffmpeg下会看到三个目录
1.lib 动态链接库位置
2.include 编程要用到头文件
3.bin 执行文件所在的目录
为了以后方便编程,我们把lib中的三个链接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下。把include目录下的文件夹复制到/usr/include下。执行bin目录下的ffmpeg,另外,bin目录下还有两个文件:ffprobe和ffserver。如果不想生成ffserver,只要在./configure的时候加--disable-ffserver即可。
6.添加环境变量
打开终端输入
sudo vim ~/.bashrc
在其末尾添加
export PATH=/usr/local/ffmpeg/bin
使其立即生效,在终端执行
source ~/.bashrc
或者重新启动电脑即可。
7.查看ffmpeg是否安装成功
ffmpeg --help
出现
ffmpeg: error while loading shared libraries: libavdevice.so.56: cannot open shared object file: No such file or directory
用ldd命令查看缺少什么库
其中就有缺少上面的libavdevice.so.56
然后find搜索这些库在什么地方
find / -name "libavdevice.so.56"
可以查到在/usr/local/ffmpeg/lib/libavdevice.so.56下
8.添加这些库
vim /etc/ld.so.conf
在此文件下添加
/usr/local/ffmpeg/lib
其中/usr/local/ffmpeg就是刚才安装的位置
最后使用命令:
sudo ldconfig
就成功了
9.查看
ffmpeg --help

抱歉!评论已关闭.