在 Ubuntu 中使用从源代码编译的 FFmpeg 5 编译 Opencv 4.7.0

准备好使用自定义 FFmpeg 视频 I/O 后端来增强你的 OpenCV,本教程将进行详细说明。在OpenCV 4.7版本的发布说明中,提到了对FFmpeg 5.x的支持改进。因此,让我们首先从源代码编译FFmpeg 5.x,然后从源代码编译OpenCV 4.7并链接此自定义FFmpeg库。

让我们开始吧!顺便说一下,我将在运行在WSL 2下的Ubuntu 22中进行操作。

图片

上次我使用Opencv 4.6编译FFmpeg,但是无法启用FFmpeg来构建Opencv。因此,我使用apt-get install安装了FFmpeg,然后成功地使用FFmpeg构建了Opencv。最终的应用程序链接了从源代码编译的FFmpeg构建以及启用了FFmpeg支持的Opencv库。

今天,让我们再次使用从源代码编译的 FFmpeg 库来编译 Opencv 4.7。

如果适用,请在所有命令中使用“sudo”。

构建 FFmpeg 的先决条件

这一步的主要来源是 FFmpeg Compilation Guide(https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu)。如果 FFmpeg 在配置过程中报错,你有两个选择。安装先决条件或禁用配置中的选项。我安装了这些:

sudo apt-get update -qq && 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 
  nasm 
  libx264-dev 
  libx265-dev 
  libnuma-dev 
  libvpx-dev 
  libfdk-aac-dev 
  libopus-dev 
  libdav1d-dev

从源代码构建 FFmpeg 5 库

  • 通过wget命令下载,使用的是FFmpeg 5.0.1
  • 解压源代码
  • 输入提取目录
sudo wget -O ffmpeg-5.0.tar.bz2 "https://www.ffmpeg.org/releases/ffmpeg-5.0.1.tar.bz2"
sudo tar -xvf ffmpeg-5.0.tar.bz2
cd ffmpeg-5.0.1

将在下一节中详细介绍如何配置 FFmpeg 构建。

  1. 只启用你已安装的内容。我安装了libx264-dev libx265-dev、libvpx-dev和其他一些软件包。
  2. 通过启用enable-shared选项来使用静态和共享选项进行构建。

遇到了一些问题,在构建 FFmpeg 时构建 Opencv 4.7 就像静态库一样。很可能这也是上次遇到的主要问题。如果没记错的话,是在编译videoio模块时发生分段错误。

sudo ./configure  --enable-shared --enable-gpl --enable-libx264 --enable-libx265 --enable-libvpx --enable-zlib

配置过程的输出将如下所示:注意 static 和 shared 正确设置为 yes。

图片

Opencv 的 FFmpeg 配置

现在已经完成了配置,现在是编译 FFmpeg 的时候了。使用 make 命令进行编译,可以添加参数 -j4 让编译过程并行。下面是一个命令的示例和预期的输出结果:

sudo make -j4
图片

make FFmpeg 库的输出。

当 FFmpeg 编译时没有任何问题。下面的 make install 会将 FFmpeg 库复制到最终目的地,而 ldconfig 将创建链接和缓存到最近创建的共享库。

sudo make install
sudo ldconfig -v

完成了 FFmpeg。因此,让我们构建 OpenCV。

图片

FFmpeg 安装输出。

构建支持 FFmpeg 5 的 Opencv 4.7

这个过程被再次使用。下载,解压,创建build目录,进入build目录,用cmake配置Opencv build。

sudo wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
sudo unzip opencv.zip
Sudo mkdir build
Cd build 
sudo cmake  ../opencv-4.7.0

Opencv 输出的配置是为了检查 FFMPEG 和 AVlibs 是否设置为 yes。此外,请随时解决配置中可能出现的任何其他问题。

图片

使用 FFmpeg 的 Opencv 4 配置

然后只需按照命令(一个接一个)构建和安装,等待几分钟即可完成此过程。

sudo cmake --build . --config Release -- -j 4
sudo make install
图片
opencv编译步骤
图片
opencv安装步骤

作者:磐怼怼。来自公众号——深度学习与计算机视觉(微信号uncle_pn,喜欢他文章的可以加个关注)

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论