移植opencv到海思平台,opencv支持对视频进行解码,需要对应的ffmpeg支持。
Ffmpeg的移植请参考之前的文章:《FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台》
(PS:ffmpeg解码h264是不需要依赖libx264的,但是编码是需要依赖libx264的,在海思上使用了mpp的venc,所以无需libx264)
下载地址:https://github.com/opencv/opencv/releases/tag/3.4.1
QQ群:1047134658(点击“文件”搜索“opencv”,群内与博文同步更新)
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 <br /> -D CMAKE_INSTALL_PREFIX=/home/yang/work/opencv_rootfs <br /> -D CMAKE_C_COMPILER=aarch64-himix100-linux-gcc <br /> -D CMAKE_CXX_COMPILER=aarch64-himix100-linux-g++ <br /> -D BUILD_SHARED_LIBS=ON <br /> -D CMAKE_CXX_FLAGS=-fPIC <br /> -D CMAKE_C_FLAGS=-fPIC <br /> -D CMAKE_EXE_LINKER_FLAGS=-lpthread -ldl <br /> -D ENABLE_PIC=ON <br /> -D WITH_1394=OFF <br /> -D WITH_ARAVIS=OFF <br /> -D WITH_ARITH_DEC=ON <br /> -D WITH_ARITH_ENC=ON <br /> -D WITH_CLP=OFF <br /> -D WITH_CUBLAS=OFF <br /> -D WITH_CUDA=OFF <br /> -D WITH_CUFFT=OFF <br /> -D WITH_FFMPEG=ON <br /> -D WITH_GSTREAMER=ON <br /> -D WITH_GSTREAMER_0_10=OFF <br /> -D WITH_HALIDE=OFF <br /> -D WITH_HPX=OFF <br /> -D WITH_IMGCODEC_HDR=ON <br /> -D WITH_IMGCODEC_PXM=ON <br /> -D WITH_IMGCODEC_SUNRASTER=ON <br /> -D WITH_INF_ENGINE=OFF <br /> -D WITH_IPP=OFF <br /> -D WITH_ITT=OFF <br /> -D WITH_JASPER=ON <br /> -D WITH_JPEG=ON <br /> -D WITH_LAPACK=ON <br /> -D WITH_LIBREALSENSE=OFF <br /> -D WITH_NVCUVID=OFF <br /> -D WITH_OPENCL=OFF <br /> -D WITH_OPENCLAMDBLAS=OFF <br /> -D WITH_OPENCLAMDFFT=OFF <br /> -D WITH_OPENCL_SVM=OFF <br /> -D WITH_OPENEXR=OFF <br /> -D WITH_OPENGL=OFF <br /> -D WITH_OPENMP=OFF <br /> -D WITH_OPENNNI=OFF <br /> -D WITH_OPENNNI2=OFF <br /> -D WITH_OPENVX=OFF <br /> -D WITH_PNG=OFF <br /> -D WITH_PROTOBUF=OFF <br /> -D WITH_PTHREADS_PF=ON <br /> -D WITH_PVAPI=OFF <br /> -D WITH_QT=OFF <br /> -D WITH_QUIRC=OFF <br /> -D WITH_TBB=OFF <br /> -D WITH_TIFF=ON <br /> -D WITH_VULKAN=OFF <br /> -D WITH_WEBP=ON <br /> -D WITH_XIMEA=OFF <br /> -D BUILD_opencv_highgui=OFF <br /> ..
make -j8
make install
# 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
将opencv部署到板子上,然后用qt的opencv播放器测试,播放慢速(判断是解码720p,mp4,h264大概11-12ms一帧,显示大概15ms一帧,刷图跟刷新的区域面积有直接关系,所以确认海思用qt动态刷新绘图能力可以说得上是有点差的)(图略)
上一篇:《OpenCV开发笔记(七十三):红胖子8分钟带你使用opencv+dnn+yolov3识别物体》
下一篇:持续补充中…
手机扫一扫
移动阅读更方便
你可能感兴趣的文章