0


Ubuntu20.04 下编译安装 ffmpeg 和 ffplay

Ubuntu20.04 下编译安装 ffmpeg 和 ffplay

一、下载源码包

1.1 官方下载链接http://ffmpeg.org/download.html

在这里插入图片描述

  • 最新版本为6.1,点击 Download Source Code下载即可 ,此时得到压缩包 ffmpeg-6.1.tar.xz

1.2 也可以查看所有版本

  1. wget http://www.ffmpeg.org/releases/ffmpeg-6.1.tar.xz

在这里插入图片描述

1.3 下载完解压

  1. tar-xvf ffmpeg-6.1.tar.xz
  • 此时当前目录下得到了文件夹 “ffmpeg-6.1”

在这里插入图片描述

二、安装依赖库

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

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

  • 安装ffplay需要的依赖,进入终端,执行以下命令:
  1. sudoapt-get update &&sudoapt-get-yinstall\
  2. autoconf \
  3. automake \
  4. build-essential \
  5. cmake \
  6. clang \
  7. git-core \
  8. libass-dev \
  9. libfreetype6-dev \
  10. libgnutls28-dev \
  11. libmp3lame-dev \
  12. libsdl2-2.0 \
  13. libsdl2-dev \
  14. libtool \
  15. libva-dev \
  16. libx11-dev \
  17. libvdpau-dev \
  18. libvorbis-dev \
  19. libxcb1-dev \
  20. libxcb-shm0-dev \
  21. libxcb-xfixes0-dev \
  22. libfdk-aac-dev \
  23. libspeex-dev \
  24. libx264-dev \
  25. libx265-dev \
  26. libnuma-dev \
  27. meson \
  28. xorg-dev \
  29. ninja-build \
  30. pkg-config \
  31. texinfo \wget\
  32. yasm \
  33. zlib1g-dev \
  34. libunistring-dev

三、编译

3.1 安装 yasm

  1. yasm

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

  1. yasm

时,就会报错误。

  1. # 安装ffplay需要的依赖sudoaptinstall yasm pkg-config libopencore-amrnb-dev libopencore-amrwb-dev

3.2 配置

    进入文件夹ffmpeg-6.1

  1. #进入源码文件夹cd ffmpeg-6.1
  2. #配置项
  3. ./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --enable-libmp3lame --enable-gpl --disable-static --enable-shared --enable-version3 --enable-nonfree --enable-pthreads --enable-postproc --enable-ffplay --enable-libx264 --enable-libxvid --disable-x86asm

在这里插入图片描述

3.3 编译安装

  1. #时间较长 耐心等待make-j4sudomakeinstall
  • 安装到了/usr/local/ffmpeg
  1. cd /usr/local/ffmpeg/bin

在这里插入图片描述

  • ffmpeg/ffprob 已经生成了,但是 ffplay 没有生成?

四、添加环境变量

4.1 修改环境变量

  • 将ffmpeg的绝对路径添加到 PATH 环境变量中,以让系统能找到ffmpeg的安装路径。
  1. vim ~/.bashrc # 打开系统环境变量配置文件

4.2 在文件中添以下内容

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

在这里插入图片描述

4.3 设置生效

  1. source ~/.bashrc

五、验证是否成功

5. 1 查看ffmpeg的版本

  1. ffmpeg -version
  2. ffplay -version
  3. ffprobe -version

在这里插入图片描述

  • 出现以上版本,则编译安装成功!!!

5.2 查看ffmpeg帮助文档

  1. ffmpeg -h
  2. ffmpeg -h long
  3. ffmpeg -h full

5.3 卸载 ffmpeg

  1. # 如果要卸载的话# cd ffmpeg-6.1/ 进入ffmpeg源码编译的路径sudomake uninstall

六、问题

问题1:ffmpeg编译后为什么没有ffplay工具?

在这里插入图片描述

ffplay 编译主要依赖 sdl2环境(针对ffmpeg 3.x版本),未安装sdl2的情况下,不会自动生成关于ffplay的编译选项。

    SDL(Simple DirectMedia Layer)是一个跨平台的多媒体和游戏开发包,提供2D,音频,事件驱动,多线程和定时器等服务,它使用C语言写成,提供了多种控制图像、声音、输出的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。

  • 可以通过下面两个命令安装sdl2组件,dev后缀表示安装路径下会包含头文件及动态库等在开发环境下需要的文件
  1. sudoapt-getinstall libsdl2-2.0
  2. sudoapt-getinstall libsdl2-dev
  • 生成Makefile文件后,打开ffmpeg源码目录下的 config.mak 文件,搜索CONFIG_FFPLAY关键字,可以看到 ffplay 对应的编译选项已由之前的[!CONFIG_FFPLAY=yes]变成了[CONFIG_FFPLAY=yes],前面的叹号已经去掉了
  1. ./configure --prefix=/usr/local/ffmpeg --enable-shared
  2. make-j4sudomakeinstall

在这里插入图片描述

问题2:ERROR: libmp3lame >= 3.98.3 not found

在这里插入图片描述

  1. 解决:
  2. ①官⽹下载mp3lame源码:https://sourceforge.net/projects/lame/
  3. ②解压lame文件并到指定目录下
  4. tar-zxf lame-3.100.tar.gz
  5. cd lame-3.100/
  6. ③进行配置
  7. ./configure --prefix=/usr/local/ffmpeg --enable-shared
  8. ④编译及安装
  9. make-j4sudomakeinstall

注:仅供学习参考,如有不足欢迎指正!

标签: ffmpeg ffplay

本文转载自: https://blog.csdn.net/weixin_43412762/article/details/135006886
版权归原作者 酷酷的懒虫 所有, 如有侵权,请联系我们删除。

“Ubuntu20.04 下编译安装 ffmpeg 和 ffplay”的评论:

还没有评论