linux 下安装 ffmpeg

本文档详细介绍了在Linux系统中安装FFmpeg时遇到的问题,包括找不到yasm/nasm、共享库加载错误、输入格式不识别及编译依赖问题。通过调整配置参数、更新ld.so.conf、设置PKG_CONFIG_PATH和PKG_CONFIG_LIBDIR,以及处理库依赖问题,提供了解决这些问题的步骤和方法。

官网是:http://ffmpeg.org/

/configure --enable-shared --prefix=/usr/local/ffmpeg 
make
make install

如果出现 yasm/nasm not found or too old. 

/configure --enable-shared --prefix=/usr/local/ffmpeg  --disable-yasm

 

ffmpeg -f avfoundation -i 1 -r 30 out.yuv

ffmpeg -f avfoundation -list_devices true -i ""

问题:

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

adminn@ubuntu:/usr/local/lib$ sudo vi /etc/ld.so.conf

修改如下

include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib       


adminn@ubuntu:/usr/local/lib$sudo  ldconfig
 

 

Unknown input format: 'avfoundation'

If I change the ./configure like so:
./configure --cc=/usr/bin/clang --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass --enable-libx264 --enable-indev=avfoundation
make && sudo make install

and then run:
./ffmpeg -f avfoundation -i "0:0" ~/Desktop/screenout.mpg

 

 

ffmpeg_log.c:2:27: 致命错误:libavutil/log.h:没有那个文件或目录

两种情况,如果你只是想加上某库的pkg,则选择下面其一:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig/ 
或者 
export PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig/ 

在~/.bashrc中添加

echo $PKG_CONFIG_PATH

之后 pkg-config --libs libavutil

pkg-config --libs libavformat
-L/usr/local/ffmpeg//lib -lavformat

gcc test.c -o test `pkg-config --libs libavformat` 

可能需要的话

gcc test.c -o test `pkg-config --libs libavformat` -I /usr/local/ffmpeg/include/

还是不行的话,需要以下操作:

比如我们安装 A 这个库, 执行 ./configure的时候提示要先安装 B 这个库。

我们下载了B这个库, 并安装后, 我们在B的源码路径下执行 find  ./  -name  "*.pc"  找到的文件一般为B.pc,

然后我们把B.pc这个文件复制到操作系统的pkgconfig目录:

32为系统的pkgconfig目录为  /usr/lib/pkgconfig/

64为系统的pkgconfig目录为  /usr/lib64/pkgconfig/

cp   B.pc   /usr/lib64/pkgconfig/

然后在执行 A这个库的 ./configure 脚本就可以解决该问题。

MODULE_NAME=test
LIBS_NAME=avformat
LIBS_MODULE=lib$(LIBS_NAME)
INCLUDE_FILE=/usr/local/ffmpeg/include/
LIBS_FILE=/usr/local/ffmpeg/lib/
PKG_CONFIG= `pkg-config --libs $(LIBS_MODULE)`

all:
        #gcc $(MODULE_NAME).c -o $(MODULE_NAME) `pkg-config --libs $(LIBS_MODULE)` -I$(INCLUDE_FILE)
        gcc $(MODULE_NAME).c -o $(MODULE_NAME) -L$(LIBS_FILE) -l$(LIBS_NAME) -I$(INCLUDE_FILE)

clean:
        rm -rf $(MODULE_NAME)

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值