海思Hi3536交叉编译ffmpeg 和OPencv

海思Hi3536交叉编译ffmpeg 和OPencv shui 2024-01-18 15:13:43 328

1 海思Hi3536交叉编译x264库

  1. 下载x264 https://code.videolan.org/videolan/x264

编译和安装
x264编译

编译之前先给.sh 文件权限,
先执行 version.sh
在执行
CC=arm-himix200-linux-gcc   ./configure \
--host=arm-himix200-linux \
--prefix=$OPENCV_DEPEND  \
--cross-prefix=arm-himix200-linux- \
--enable-static \
--enable-shared \

make
make install

2 海思Hi3536交叉编译 ffmpeg

官方地址:http://ffmpeg.org/download.html#releases

同样注意权限 在/ffbuild 下

./configure \
        --prefix=/home/censoft/ysc/tools/ffmpeg-3.4.12/build_ffmpeg_hisi3516/ \
        --enable-filters   \
        --enable-asm \
        --enable-ffmpeg \
        --enable-ffplay \
        --enable-ffprobe \
        --enable-doc \
        --enable-cross-compile \
        --cross-prefix=arm-himix200-linux-  \
        --arch=arm \
        --target-os=linux \
        --host-os=linux \
        --enable-gpl \
        --enable-version3 \
        --enable-small \
        --enable-shared \
        --enable-static \
        --enable-encoder=rawvideo \
        --enable-encoder=mpeg2video \
        --enable-encoder=mp2 \
        --enable-encoder=libx264 \
        --enable-libx264 \
        --enable-muxer=adts \
        --enable-muxer=mpegts \
        --enable-muxer=mpeg2video \
        --enable-muxer=rtsp \
        --enable-muxer=hls \
        --enable-muxer=h264 \
        --enable-muxer=rtp \
        --enable-muxer=avi \
        --enable-muxer=flv \
        --enable-muxer=mp4 \
        --enable-demuxer=mpegts \
        --enable-demuxer=rtsp \
        --enable-demuxer=hls \
        --enable-demuxer=h264 \
        --enable-demuxer=rtp \
        --enable-demuxer=flv \
        --enable-muxer=mp4 \
        --enable-demuxer=mpegts \
        --enable-demuxer=rtsp \
        --enable-demuxer=hls \
        --enable-demuxer=h264 \
        --enable-demuxer=rtp \
        --enable-demuxer=flv \
        --enable-demuxer=avi \
        --enable-demuxer=mpegps \
        --enable-demuxer=mpegtsraw \
        --enable-demuxer=mpegvideo \
        --enable-parser=aac \
        --enable-parser=h264 \
        --enable-parser=mpeg4video \
        --enable-parser=mpegvideo \
        --enable-parser=mpegaudio \
        --enable-bsf=h264_mp4toannexb \
        --enable-protocol=http \
        --enable-protocol=rtp \
        --enable-protocol=rtmpts \
        --enable-protocol=https \
        --enable-protocol=hls \
        --enable-protocol=file \
        --enable-protocol=data \
        --enable-gray  \
        --enable-safe-bitstream-reader \
        --extra-cflags=-I/home/censoft/ysc/tools/x264-master/build_x264_hisi3516/include \
        --extra-ldflags=-L/home/censoft/ysc/tools/x264-master/build_x264_hisi3516/lib


./configure --prefix=$OPENCV_DEPEND --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm --disable-stripping --target-os=linux --enable-libx264 --cc=arm-himix200-linux-gcc --enable-swscale --enable-avresample --extra-ldflags=-L$OPENCV_DEPEND/lib --extra-cflags=-I$OPENCV_DEPEND/include --pkg-config=PKGCONFIG --ar=arm-himix200-linux-ar --ranlib=arm-himix200-linux-ranlib


make
make install

3 海思Hi3516交叉编译opencv3.4.1

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/yang/work/ffmpeg_rootfs/lib/pkgconfig

查找OpenCVFindLibsVideo.cmake 文件
更改
if(WITH_FFMPEG)
  if(WIN32 AND NOT ARM)
    message("-----WIN32 AND NOT ARM -----------------")
    include("${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/ffmpeg.cmake")
    download_win_ffmpeg(FFMPEG_CMAKE_SCRIPT)
    if(FFMPEG_CMAKE_SCRIPT)
      set(HAVE_FFMPEG TRUE)
      include("${FFMPEG_CMAKE_SCRIPT}")
    endif()
  elseif(PKG_CONFIG_FOUND)
    message("----- PKG_CONFIG_FOUND -----------------")
    ocv_check_modules(FFMPEG libavcodec libavformat libavutil libswscale)
    ocv_check_modules(FFMPEG libavresample libavresample)
    if(FFMPEG_libavresample_FOUND)
      message("----- FFMPEG_libavresample_FOUND -----------------")
      ocv_append_build_options(FFMPEG FFMPEG_libavresample)
    endif()
    if(HAVE_FFMPEG)
      SET(FFMPEG_INCLUDE_DIRS /home/censoft/ysc/tools/opencv/opencv-depend/include)
      SET(FFMPEG_LIBRARY_DIRS /home/censoft/ysc/tools/opencv/opencv-depend/lib)
      message("----- HAVE_FFMPEG -----------------")
      message("----- HAVE_FFMPEG ------${OpenCV_BINARY_DIR}------${OpenCV_SOURCE_DIR}-----")
      message("----- CMAKE_FLAGS ------${FFMPEG_INCLUDE_DIRS}------${FFMPEG_LIBRARY_DIRS}---${FFMPEG_LIBRARIES}--")
      message("----- __VALID_FFMPEG ------${__VALID_FFMPEG}-----------")
      try_compile(__VALID_FFMPEG
          "${OpenCV_BINARY_DIR}"
          "${OpenCV_SOURCE_DIR}/cmake/checks/ffmpeg_test.cpp"
          CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${FFMPEG_INCLUDE_DIRS}"
                      "-DLINK_DIRECTORIES:STRING=${FFMPEG_LIBRARY_DIRS}"
                      "-DLINK_LIBRARIES:STRING=${FFMPEG_LIBRARIES}"
          OUTPUT_VARIABLE TRY_OUT
      )
      message("----- VIDEOIO FFMPEG ------${VIDEOIO}------${FFMPEG}-----")
      if(NOT __VALID_FFMPEG)
        #message(FATAL_ERROR "FFMPEG: test check build log:\n${TRY_OUT}")
#        message(STATUS "--------------WARNING: Can't build ffmpeg test code")
#        set(HAVE_FFMPEG FALSE)
        ocv_append_build_options(VIDEOIO FFMPEG)
      else()
        ocv_append_build_options(VIDEOIO FFMPEG)
      endif()
    endif()
  else()
    message(STATUS "Can't find ffmpeg - 'pkg-config' utility is missing")
  endif()
endif(WITH_FFMPEG)



cmake   -DMAKE_BUILD_TYPE=RELEASE  \
             -DCMAKE_INSTALL_PREFIX=/home/censoft/ysc/tools/opencv-3.4.1/build/install  \
             -DCMAKE_C_COMPILER=arm-himix200-linux-gcc \
             -DCMAKE_CXX_COMPILER=arm-himix200-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=OFF \
             -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 \  //这个可以有
             ..
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
shui
红包 3 1 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
shui
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区