OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台
前言移植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的移植
步骤一:下载解压
步骤二:配置cmake
exportPKG_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 -DCMAKE_BUILD_TYPE=RELEASE\-DCMAKE_INSTALL_PREFIX=/home/yang/work/opencv_rootfs\-DCMAKE_C_COMPILER=aarch64-himix100-linux-gcc\-DCMAKE_CXX_COMPILER=aarch64-himix100-linux-g++\-DBUILD_SHARED_LIBS=ON\-DCMAKE_CXX_FLAGS=-fPIC\-DCMAKE_C_FLAGS=-fPIC\-DCMAKE_EXE_LINKER_FLAGS=-lpthread -ldl\-DENABLE_PIC=ON\-DWITH_1394=OFF\-DWITH_ARAVIS=OFF\-DWITH_ARITH_DEC=ON\-DWITH_ARITH_ENC=ON\-DWITH_CLP=OFF\-DWITH_CUBLAS=OFF\-DWITH_CUDA=OFF\-DWITH_CUFFT=OFF\-DWITH_FFMPEG=ON\-DWITH_GSTREAMER=ON\-DWITH_GSTREAMER_0_10=OFF\-DWITH_HALIDE=OFF\-DWITH_HPX=OFF\-DWITH_IMGCODEC_HDR=ON\-DWITH_IMGCODEC_PXM=ON\-DWITH_IMGCODEC_SUNRASTER=ON\-DWITH_INF_ENGINE=OFF\-DWITH_IPP=OFF\-DWITH_ITT=OFF\-DWITH_JASPER=ON\-DWITH_JPEG=ON\-DWITH_LAPACK=ON\-DWITH_LIBREALSENSE=OFF\-DWITH_NVCUVID=OFF\-DWITH_OPENCL=OFF\-DWITH_OPENCLAMDBLAS=OFF\-DWITH_OPENCLAMDFFT=OFF\-DWITH_OPENCL_SVM=OFF\-DWITH_OPENEXR=OFF\-DWITH_OPENGL=OFF\-DWITH_OPENMP=OFF\-DWITH_OPENNNI=OFF\-DWITH_OPENNNI2=OFF\-DWITH_OPENVX=OFF\-DWITH_PNG=OFF\-DWITH_PROTOBUF=OFF\-DWITH_PTHREADS_PF=ON\-DWITH_PVAPI=OFF\-DWITH_QT=OFF\-DWITH_QUIRC=OFF\-DWITH_TBB=OFF\-DWITH_TIFF=ON\-DWITH_VULKAN=OFF\-DWITH_WEBP=ON\-DWITH_XIMEA=OFF\-DBUILD_opencv_highgui=OFF\..
步骤三:编译
make-j8
步骤四:安装
makeinstall
部署到板子上
方法一:拷贝进入系统目录,对应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
发文助手
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
暂无建议
页:
[1]