在 Mac m1 中从源代码构建 opencv

Pau*_*ndy 2 c++ opencv ffmpeg cmake apple-m1

我正在使用以下 Make 从源代码构建 OpenCV,

 cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
  -D OPENCV_EXTRA_MODULES_PATH=/Users/Tools/opencv_contrib/modules \
  -D PYTHON3_EXECUTABLE=/miniforge/base/envs/envname/bin/python3 \
    -D BUILD_opencv_python2=OFF \
    -D BUILD_opencv_python3=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D WITH_TBB=ON \
    -D WITH_V4L=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D WITH_OPENGL=ON \
     -DBUILD_ZLIB=OFF \
  -D OPENCV_EXTRA_MODULES_PATH=/Users/Tools/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..
Run Code Online (Sandbox Code Playgroud)

不幸的是它没有构建。它抛出以下错误,

: error: unknown type name 'AVBSFContext'; did you mean 'AVIOContext'?
Run Code Online (Sandbox Code Playgroud)

我当然已经安装了FFmpeg。我还缺少什么?

tom*_*zmi 6

我认为您已经安装了 ffmpeg 5 并且 OpenCV 尚未与其兼容。请尝试以下操作:

brew install ffmpeg@4
brew unlink ffmpeg
brew link ffmpeg@4
Run Code Online (Sandbox Code Playgroud)

然后再次重新编译OpenCV。

  • 有用。谢谢你!我必须完全卸载`ffmpeg@5`。仅仅取消链接对我来说不起作用。我还有最后一个问题。有时它会抛出“zlib 没有指定 make target”,因此我禁用了 zlib。有没有办法在 mac m1 上安装 zlib?我尝试使用brew,但没有成功。 (3认同)