ffmpeg和opencv源码搭建

本文档详细介绍了如何从源码编译ffmpeg 4.1和opencv,包括安装依赖、解决编译问题,以及在虹软sdk注册后编译运行工程ffmpeg_arc_face-recognize和FFMPEG_DNN_Project。提供了安装包下载链接和编译错误的解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装ffmpeg

参考文章:http://blog.yundiantech.com/?log=blog&id=35

创建文件夹ffmpeg4.1

sudo su
cd /usr/
mkdir ffmpeg4.1
chmod 777 -R ffmpeg4.1/
cd ffmpeg4.1/
cp ffmpeg-4.2.3.tar.bz2 nasm-2.14.02.tar.bz2 sqlite-autoconf-3380500.tar.gz x264-snapshot-20191024-2245-stable.tar.bz2 yasm-1.3.0.tar.gz /usr/ffmpeg4.1/

在这里插入图片描述

解压压缩包

  • 安装yasm
tar xvzf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make && make install
  • 安装nasm
tar xvf nasm-2.14.02.tar.bz2
cd nasm-2.14.02
./configure
make && make install
  • 安装其他依赖
apt install cmake -y
  • 编译x264(只编译静态库)
tar xvf x264-snapshot-20191024-2245-stable.tar.bz2
cd x264-snapshot-20191024-2245-stable
./configure --enable-static --prefix=../x264 --enable-pic 
make -j16
make install
  • 编译ffmpeg
tar xvf ffmpeg-4.2.3.tar.bz2
cd ffmpeg-4.2.3
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:../x264/lib/pkgconfig
./configure --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --enable-libx264 --prefix=../ffmpeg 
make -j32
make install

在这里插入图片描述

配置ffmpeg环境变量:gedit ~/.bashrc 
最后面添加
export FFmpeg_PATH=/usr/ffmpeg4.1/ffmpeg 
# 需要让os能够找到  ffmpeg ffprobe等命令
export PATH=$FFmpeg_PATH/bin:$PATH 
# 需要提供路径, 让ffmpeg ffprobe等命令找到需要的依赖
export LD_LIBRARY_PATH=$FFmpeg_PATH/lib:$LD_LIBRARY_PATH 

在这里插入图片描述

  • 然后让文件生效
source  ~/.bashrc 
  • 重新打开终端,用ffmpeg -version 查看ffmpeg的版本

在这里插入图片描述

二、安装opencv

参考文章:https://blog.youkuaiyun.com/weixin_52288941/article/details/120614133

cd ~
mkdir opencv
chmod 777 -R opencv/
cd opencv/
cp ~/share/ffmpeg/opencv-3.4.11.zip ~/opencv/
unzip opencv-3.4.11.zip
cd opencv-3.4.11
sudo apt-get update
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev  
  • 出现问题

在这里插入图片描述

  • E: Unable to locate package libjasper-dev的解决办法
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev  
  • 配置编译环境
cd opencv-3.4.11
mkdir build
sudo chmod 777 -R build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j4
sudo make install
  • 配置编译环境
sudo gedit /etc/ld.so.conf.d/opencv.conf

在这里插入图片描述

sudo ldconfig  
sudo gedit /etc/bash.bashrc 
  • 在bash.bashrc 文件最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

在这里插入图片描述

  • 保存退出,执行如下命令使得配置生效
 source /etc/bash.bashrc  
 sudo updatedb 
  • 查看opencv版本信息
 pkg-config --modversion opencv

在这里插入图片描述

三、项目工程编译运行

虹软的sdk注册

  • 虹软科技官网:https://www.arcsoft.com.cn/

在这里插入图片描述

  • 注册账号

在这里插入图片描述
在这里插入图片描述

  • 获取设备授权码

在这里插入图片描述
在这里插入图片描述

  • 下载sdk
    在这里插入图片描述

-解压sdk压缩包

mkdir Arcsoft
sudo chmod 777 -R Arcsoft/ 
cd Arcsoft/
cp ~/share/opencv/ArcSoft_ArcFace_Linux_x64_V3.0.zip ~/Arcsoft/
unzip ArcSoft_ArcFace_Linux_x64_V3.0.zip 

在这里插入图片描述

创建工程文件夹

mkdir myproject
sudo chmod 777 -R myproject/
cd myproject/
  • 从git上下载代码
git clone https://gitee.com/harry12345123/ffmpeg_arc_face-recognize.git
git clone https://gitee.com/harry12345123/FFMPEG_DNN_Project.git

在这里插入图片描述
在这里插入图片描述

  • 更改权限
sudo chmod 777 -R ffmpeg_arc_face-recognize/ 
sudo chmod 777 -R FFMPEG_DNN_Project/

在这里插入图片描述

  • 安装sqlite
cp ~/share/ffmpeg/sqlite-autoconf-3380500.tar.gz ./
tar xzvf sqlite-autoconf-3380500.tar.gz 

在这里插入图片描述

cd sqlite-autoconf-3380500/
sudo ./configure 

在这里插入图片描述

sudo make
sudo make install

在这里插入图片描述

在这里插入图片描述

  • 复制需要用到的头文件
 cp ~/Arcsoft/inc/*.h ~/myproject/ffmpeg_arc_face-recognize/

在这里插入图片描述

编译ffmpeg_arc_face-recognize

sudo make

在这里插入图片描述

cd ~/Arcsoft/lib/linux_x64/
sudo cp *.so /usr/local/lib/

在这里插入图片描述

修改Makefile

  • 修改前
    在这里插入图片描述

  • 修改后

在这里插入图片描述

  • 修改自己的APPID和SDKKEY
sudo gedit asfort_manage.h

在这里插入图片描述

./asfort_face_insert ./face_lib/face03.png hhh

在这里插入图片描述

  • 再次make编译

问题:

在这里插入图片描述
解决方法:在Makefile中把库链接进来

-lpostproc

在这里插入图片描述

./ffmpeg_camera_asfort

在这里插入图片描述

编译FFMPEG_DNN_Project

cd ../FFMPEG_DNN_Project/
sudo make

在这里插入图片描述

  • 解决方法:在Makefile中把库链接进来
-lpostproc

在这里插入图片描述

sudo make
./ffmpeg_camera_thread_demo

在这里插入图片描述

四、安装包下载

链接:https://pan.baidu.com/s/1NfUVzWx8tsa8dKpHL4SI2g
提取码:qyn1

五、编译过程中可能会出现的问题的解决方法

  • 动态库编译找不到报错的解决方法:https://blog.youkuaiyun.com/hankerbit/article/details/83834349
  • 在编译的时候,报错SDL的解决方法:sudo apt-get install libsdl2-dev
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃秃秃秃哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值