opencv交叉编译包含ffmpeg

使用opencv的api打开视频或者视频流,需要ffmpeg的支持(或者其他的方式,不太清楚),在交叉编译的时候需要ffmpeg的支持;

编译ffmpeg+libh264链接
opencv中文api手册

opencv编译

arm移植参考
更好的参考

编译完ffmpeg后,假设是安装在/home/cp/out_arm下,
解压opencv源码,我的是opencv-4.5.1.tar.gz

tar -xvf opencv-4.5.1.tar.gz
cd opencv-4.5.1/
mkdir test_arm
cd test_arm/

配置cmake环境;
先导一下pkg的环境;

export PKG_CONFIG_PATH=/home/cp/out_arm/lib/pkgconfig

然后启动cmake gui

cmake-gui ..

在这里插入图片描述
点击configure(左边),选择指定编译选项;
在这里插入图片描述
下面的Target Root那里一定要指定第三方库的安装目录,其他都是指定编译工具的路径,可以按你自己的路径指定就好了;
在这里插入图片描述
然后点击finish;再添加OPENCV_ENABLE_PKG_CONFIG变量,设置为true;
在这里插入图片描述

点击configure就能看到,ffmpeg模块已经都是yse了;
在这里插入图片描述
编译的过程中,会出现的一些问题;
问题:
编译的过程遇到找不到png/jpeg的库的话,可以使用内部的;
勾选如下(举例jpeg):
在这里插入图片描述
gtk和gstreamer不需要都可以先关掉;
在这里插入图片描述

问题:
在这里插入图片描述
在最下面找到所在目录修改link.txt文件
在这里插入图片描述
在指定位置添加 -Wl,-rpath,/home/cp/out_arm/lib,其中/home/cp/out_arm/lib是库的安装路径;
在这里插入图片描述
参考博客



下面是自己编译过程中的记录,可以参考,但是可能有些是不对的;

要链接ffmpeg库的话,指定ffmpeg安装路径
步骤1
导pkg路径

export PKG_CONFIG_PATH=/home/cp/out_arm/lib/pkgconfig

步骤2
cmake-gui中指定OPENCV_ENABLE_PKG_CONFIG为ture,没有的话添加。

关闭了 gtk gstreamer

重要一点:

CMAKE_FIND_ROOT_PATH “/usr/local/arm/opencv-depend”
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY

CMAKE_FIND_ROOT_PATH 可以指定其他第三方库的安装路径,opencv在编译的时候就能找到相应的库;

CMAKE_INSTALL_PREFIX 指定编译结果的安装目录;

测试opencv显示一张图片

#include <cv.h>
#include <highgui.h>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    IplImage* image = cvLoadImage("/root/Desktop/miska.jpg");
    if(image == NULL)
    {
        cout<<"loud image fail"<<endl;
        return -1;
    }

    cvNamedWindow("src", 1);
    cvShowImage("src", image);
    cvWaitKey();
    
    cvDestroyWindow("src");
    cvReleaseImage(&image);
 
    return 0;
}

  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值