使用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了;
编译的过程中,会出现的一些问题;
相关学习资料推荐,点击下方链接免费报名,先码住不迷路~】
音视频免费学习地址:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【免费分享】音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击788280672加群免费领取~
问题:
编译的过程遇到找不到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;
}
原文 opencv交叉编译包含ffmpeg_ffmpeg opencv交叉编译_思而后行之的博客-CSDN博客
本文暂时没有评论,来添加一个吧(●'◡'●)