OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台
时间:2022-08-24 03:30:01
若该文为原创文章,转载请注明原文出处
博客地址:https://blog.csdn.net/qq21497936/article/details/123696821
读者们,知识无限,人力贫乏,要么改变需求,要么找专业人士,要么自己研究
红胖子(红模仿)博文全集:开发技术集合(包括Qt实用技术,树莓派,三维,OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等。…(点击传送门)
OpenCV开发专栏(点击传送门)
上一篇:《OpenCV开发笔记(73):红胖子8分钟带你用opencv dnn yolov3识别物体》
下一篇文章续补充…
前言
??移植opencv去海思平台,opencv支持解码视频,需要相应的ffmpeg支持。
Ffmpeg的移植
??Ffmpeg请参考以前的文章:《FFmpeg开发笔记(十):ffmpeg在ubuntu交叉编译移植到海思HI35xx平台》
??(PS:ffmpeg解码h264不需要依赖libx264,但编码需要依赖libx264,用于海思mpp的venc,所以无需libx264)
OpenCV下载
??下载地址:https://github.com/opencv/opencv/releases/tag/3.4.1
??QQ群:1047134658(点击文件搜索opencv,群内与博文同步更新)
OpenCV的移植
第一步:下载解压
??
步骤2:配置cmake
??
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/yang/work/ffmpeg_rootfs/lib/pkgconfig
??以上是目录,注意这里有坑(卡了一天):
- 不要使用cmake-gui:使用命令行可以识别命令行ffmpeg,但是cmake-gui不行
- 是否安装了系统本身ffmpeg:虽然设置了,但默认会先使用本地,但是PKG_CONFIG_PATH
- ffmpeg否依赖x264:可查看.pc是否有文件-lx264(作者在编译时不小心编译了它libx264库,所以cmake无法定义HAVA__FFMPEG,若依赖,记得将libx264拷贝到ffmpeg也可以在目录下。
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/home/yang/work/opencv_rootfs \ -D CMAKE_C_COMPILER=aarch64-himix100-linux-gcc \ -D CMAKE_CXX_COMPILER=aarch64-himix100-linux-g \ -D BUILD_SHARED_LIBS=ON \ -D CMAKE_CXX_FLAGS=-fPIC \ -D CMAKE_C_FLAGS=-fPIC \ -D CMAKE_EXE_LINKER_FLAGS=-lpthread -ldl \ -D ENABLE_PIC=ON \ -D WITH_1394=OFF \ -D WITH_ARAVIS=OFF \ -D WITH_ARITH_DEC=ON \ -D WITH_ARITH_ENC=ON \ -D WITH_CLP=OFF \ -D WITH_CUBLAS=OFF \ -D WITH_CUDA=OFF \ -D WITH_CUFFT=\
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D WITH_HALIDE=OFF \
-D WITH_HPX=OFF \
-D WITH_IMGCODEC_HDR=ON \
-D WITH_IMGCODEC_PXM=ON \
-D WITH_IMGCODEC_SUNRASTER=ON \
-D WITH_INF_ENGINE=OFF \
-D WITH_IPP=OFF \
-D WITH_ITT=OFF \
-D WITH_JASPER=ON \
-D WITH_JPEG=ON \
-D WITH_LAPACK=ON \
-D WITH_LIBREALSENSE=OFF \
-D WITH_NVCUVID=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENCLAMDBLAS=OFF \
-D WITH_OPENCLAMDFFT=OFF \
-D WITH_OPENCL_SVM=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENMP=OFF \
-D WITH_OPENNNI=OFF \
-D WITH_OPENNNI2=OFF \
-D WITH_OPENVX=OFF \
-D WITH_PNG=OFF \
-D WITH_PROTOBUF=OFF \
-D WITH_PTHREADS_PF=ON \
-D WITH_PVAPI=OFF \
-D WITH_QT=OFF \
-D WITH_QUIRC=OFF \
-D WITH_TBB=OFF \
-D WITH_TIFF=ON \
-D WITH_VULKAN=OFF \
-D WITH_WEBP=ON \
-D WITH_XIMEA=OFF \
-D BUILD_opencv_highgui=OFF \
..
步骤三:编译
make -j8
步骤四:安装
make install
部署到板子上
- 方法一:拷贝进入系统目录,对应bin、include、lib
- 方法二:单独一个目录,运行前跑脚本进入路径(笔者是Qt,将opencv打入qt的安装目录,使用qt的路径即可)。
贴上开发本Qt的脚本(注意系统不同,平台的参数最后2个可能不同):
Qt的引入带ffmpeg的opencv配置文件
# ffmpeg-3.4.8 sdk
INCLUDEPATH += /home/yang/work/ffmpeg_rootfs/include \
LIBS += -L/home/yang/work/ffmpeg_rootfs/ffmpeg-3.4.8/bin
LIBS += -lavcodec \
-lavdevice \
-lavfilter \
-lavformat \
-lavutil \
-lswresample \
-lswscale
INCLUDEPATH += /home/yang/work/opencv_rootfs/include \
/home/yang/work/opencv_rootfs/include/opencv \
/home/yang/work/opencv_rootfs/include/opencv2
LIBS += -L/home/yang/work/opencv_rootfs/lib \
-lopencv_calib3d \
-lopencv_core \
-lopencv_features2d \
-lopencv_flann \
-lopencv_imgcodecs \
-lopencv_imgproc \
-lopencv_ml \
-lopencv_objdetect \
-lopencv_photo \
-lopencv_shape \
-lopencv_stitching \
-lopencv_superres \
-lopencv_video \
-lopencv_videoio \
-lopencv_videostab
板子上Qt+OpenCV播放器测试1
将opencv部署到板子上,然后用qt的opencv播放器测试,播放慢速(判断是解码720p,mp4,h264大概11-12ms一帧,显示大概15ms一帧,刷图跟刷新的区域面积有直接关系,所以确认海思用qt动态刷新绘图能力可以说得上是有点差的)(图略)
上一篇:《OpenCV开发笔记(七十三):红胖子8分钟带你使用opencv+dnn+yolov3识别物体》
下一篇:持续补充中…
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/123696821