2.ffmpeg安装(Ubuntu20.04 )

1.下载源码包

进入官网 https://ffmpeg.org/download.html 下载

在这里插入图片描述
点击Download Source Code下载即可 ,此时得到压缩包ffmpeg-snapshot.tar.bz2

在这里插入图片描述

也可以查看当前时间官方最新版本 http://www.ffmpeg.org/releases/ ,通过命令行下载,我自己用命令行下载的时候特别慢。

在这里插入图片描述

wget http://www.ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2

2.解压

进入到指令目录

cd /usr/local/

在压缩包目录下,执行命令

tar -xvjf ffmpeg-snapshot.tar.bz2

此时当前目录下得到了文件夹 “ffmpeg”

在这里插入图片描述

安装依赖库

官方有个指导文档,Ubuntu怎么使用FFmpeg:

https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

安装依赖库,执行命令:

sudo apt-get update && sudo apt-get -y install \
  autoconf \
  automake \
  build-essential \
  cmake \
  git-core \
  libass-dev \
  libfreetype6-dev \
  libgnutls28-dev \
  libmp3lame-dev \
  libsdl2-dev \
  libtool \
  libva-dev \
  libvdpau-dev \
  libvorbis-dev \
  libxcb1-dev \
  libxcb-shm0-dev \
  libxcb-xfixes0-dev \
  meson \
  ninja-build \
  pkg-config \
  texinfo \
  wget \
  yasm \
  zlib1g-dev \
  libunistring-dev

3.编译

3.1 安装 yasm

yasm是汇编编译器,ffmpeg为了提高效率使用了汇编指令,如MMX和SSE等。所以系统中未安装yasm时,就会报错误。

apt install yasm pkg-config libopencore-amrnb-dev libopencore-amrwb-dev

3.2 配置

进入文件夹ffmpeg

#进入源码文件夹
cd ffmpeg

#配置项
./configure  --enable-libmp3lame --enable-gpl --enable-shared --enable-version3 --enable-nonfree --enable-pthreads --enable-postproc --enable-ffplay --enable-libx264 --enable-libxvid --disable-x86asm

我配置时出错的 libx264 出错。我又安装了 libx264-dev

sh-5.0$ sudo apt-get install libx264-dev
[sudo] lyq 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列【新】软件包将被安装:
  libx264-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 89 个软件包未被升级。
需要下载 569 kB 的归档。
解压缩后会消耗 2,764 kB 的额外空间。
获取:1 http://mirrors.ustc.edu.cn/ubuntu focal/universe amd64 libx264-dev amd64 2:0.155.2917+git0a84d98-2 [569 kB]
已下载 569 kB,耗时 0(1,262 kB/s)
正在选中未选择的软件包 libx264-dev:amd64。
(正在读取数据库 ... 系统当前共安装有 359109 个文件和目录。)
准备解压 .../libx264-dev_2%3a0.155.2917+git0a84d98-2_amd64.deb  ...
正在解压 libx264-dev:amd64 (2:0.155.2917+git0a84d98-2) ...
正在设置 libx264-dev:amd64 (2:0.155.2917+git0a84d98-2) ...
sh-5.0$ sudo apt-get install ffmpeg
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  libavdevice58 libavresample4
建议安装:
  ffmpeg-doc
下列【新】软件包将被安装:
  ffmpeg libavdevice58 libavresample4
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 89 个软件包未被升级。
需要下载 1,581 kB 的归档。
解压缩后会消耗 2,562 kB 的额外空间。

3.3 编译安装

//时间久 耐心等待
make  

make install

安装完成后,就可以看到,在/usr/local/bin中,ffmpeg/ffplay/ffprob已经生成了;
则说明ffmpeg安装成功。

在这里插入图片描述

4.添加环境变量

4.1 修改环境变量

将ffmpeg的绝对路径添加到PATH环境变量中,以让系统能找到ffmpeg的安装路径。

vim ~/.bashrc  # 打开系统环境变量配置文件

4.2 在文件中添以下内容。

export PATH="/usr/local/bin:${PATH}" # 因为编译后的可执行文件都在/usr/local/bin中
export LD_LIBRARY_PATH="/usr/local/lib:{LD_LIBRARY_PATH}" #共享库路径

4.3 设置生效

source ~/.bashrc  

5.验证是否成功

5.1 无法打开共享库文件

使用命令行“ ffmpeg -h” ,检测ffmpeg安装情况时,出现异常。

  • 使用的命令:
ffmpeg -h
ffmpeg -version

出现以下报错内容:

error while loading shared libraries: libavdevice.so.59: can not open shared object file or directory

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

这是由于系统找不到ffmpeg的共享库所致。

很多开源的共享库都会安装到/usr/local/lib目录下,打开这个目录确实找到FFmpeg这些共享库。在这里插入图片描述

  • 解决的办法:

在动态库配置文件 /etc/ld.so.conf.d 内所列的目录下创建文件 ffmpeg.conf 文件,
在该文件中写入共享库路径:“/usr/local/lib”
执行 ldconfig 命令

# 编辑文件,添加内容“/usr/local/lib”后保存退出
vim /etc/ld.so.conf.d/ffmpeg.conf   

 # 查看ffmpeg.conf中的内容
cat /etc/ld.so.conf.d/ffmpeg.conf  

 # 执行ldconfig命令,使/etc/ld.so.conf.d/目录下新加入的配置信息生效
ldconfig       

在这里插入图片描述

提示找不到共享库的错误解决方法 :https://blog.csdn.net/my_angle2016/article/details/113524560

5.2 测试是否配置成功

命令行输入“which ffmpeg” 或 “ffmpeg -h”,出现以下内容,说明ffmpeg已经完全安装配置成功。

root@a512-3090:/usr/local# which ffmpeg
/usr/local/bin/ffmpeg  

在这里插入图片描述

注意

若完成以上配置后,代码里面仍报错,考虑以下解决方式

  • 在系统里,指出ffmpeg的绝对安装路径。/usr/local/bin/ffmpeg

  • 找到“xxxx.py”所在的位置,打开并编辑该文件,对ffmeg行的内容做修改。

  • 将 command = "fmpeg -i %s ,改为有绝对路径的 command = "/usr/local/ffmpeg/bin/ffmpeg

在这里插入图片描述到此我就可以顺利的使用,程序跑起来了。
在这里插入图片描述

  • 13
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值