在 raspberry pi 3 model B(debian) 中使用 ffmpeg 和 contrib 构建时崩溃

在 raspberry pi 3 model B(debian) 中使用 ffmpeg 和 contrib 构建时崩溃
  • OpenCV => 3.3.0
    • 操作系统/平台 => raspberry pi 3 model B(debian)
    • 编译器 => UNIX Makefile
    • Cmake-GUI => 3.6.2

https://pastebin.com/5VGHA92m(从终端构建输出)

[ 39%] 链接 CXX 共享库 ../../lib/libopencv_videoio.so /usr/bin/ld: /usr/local/lib/libx264.a(common.o): 在创建共享对象时不能使用针对“本地符号”的重定位 R_ARM_MOVW_ABS_NC;使用 -fPIC /usr/local/lib/libx264.a 重新编译:添加符号时出错:错误值 collect2:错误:ld 返回 1 退出状态 modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:228:目标‘lib/libopencv_videoio.so.3.3.0’的配方失败 make[2]:* [lib/libopencv_videoio.so.3.3.0] 错误 1 ​​CMakeFiles/Makefile2:4311:目标‘modules/videoio/CMakeFiles/opencv_videoio.dir/all’的配方失败,make[1]:* [modules/videoio/CMakeFiles/opencv_videoio.dir/all] 错误 2 Makefile:160:目标“全部”的配方失败 make:*** [all] 错误 2

使用 opencv=3.3.0 opencv_contrib=3.3.0

构建之前我取消选中:BUILD_opencv_world、BUILD_TBB、WITH_TBB、BUILD_opencv_python2、BUILD_opencv_python3、WITH_MATLAB、WITH_CUDA、BUILD_opencv_dnn、WITH_OPENGL、WITH_QT

并选中:WITH_FFMPEG(默认)

我安装了所有库(在下面的链接中提到) https://pastebin.com/vFkYzQ08(构建前的必备库)

我也尝试删除所有这些库并使用 ffmpeg 和 contrib 构建 opencv 源(但 opencv 3.4 的构建在 23% 处崩溃,opencv 3.3 的构建在 39% 处崩溃)

答案1

看起来与 x264 库存在一些冲突(您可以在OpenCV构建完成后稍后安装它),删除该库然后安装gstreamer

sudo apt-get install gstreamer1.0

从以下位置安装依赖项
https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/

https://www.raspberrypi.org/forums/viewtopic.php?t=80601

以下是 CMake 的输出

OpenCV 3.4.0-dev 的常规配置
=======================================
版本控制:3.4.0-307-g14089b1

平台:
时间戳:2018-02-06T06:30:15Z
主机:Linux 4.9.35-v7+ armv7l
CMake:3.6.2
CMake 生成器:Unix Makefiles
CMake 构建工具:/usr/bin/make
配置:发布

CPU/HW 功能:
基线:
请求:DETECT
禁用:VFPV3 NEON

C/C++:
构建为动态库?:是
C++ 编译器:/usr/bin/c++(ver 4.9.2)
C++ 标志(发布):

-fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -mfp16-format=ieee -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG

C++ 标志(调试):-fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -mfp16-format=ieee -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG

C 编译器:/usr/bin/cc
C 标志(发布):-fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -mfp16-format=ieee -fvisibility=hidden -O3 -DNDEBUG -DNDEBUG

C 标志(调试):-fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -mfp16-format=ieee -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG

链接器标志(发布):
链接器标志(调试):
ccache:否
预编译头:是
额外依赖项:dl m pthread rt
第三方依赖项:


OpenCV 模块:
待构建: calib3d 核心 features2d flann highgui
imgcodecs imgproc ml objdetect 照片形状拼接 superres ts 视频
videoio videostab
已禁用:dnn java_bindings_generator js
python_bindings_generator world
由依赖项禁用:-
不可用:cudaarithm cudabgsegm cudacodec
cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect
cudaoptflow cudastereo cudawarping cudev java python2 python3 viz
应用程序:测试 perf_tests 应用程序
文档:否
非免费算法:否

GUI:
GTK+:是(版本 3.14.5)
GThread:是(版本 2.42.1)
GtkGlExt:否
VTK 支持:否

媒体 I/O:
ZLib:/usr/lib/arm-linux-gnueabihf/libz.so(版本 1.2.8)
JPEG:/usr/lib/arm-linux-gnueabihf/libjpeg.so(版本 80)
WEBP:构建(版本编码器:0x020e)
PNG:/usr/lib/arm-linux-gnueabihf/libpng.so(版本 1.2.50)
TIFF:构建(版本 42 - 4.0.9)
JPEG 2000:/usr/lib/arm-linux-gnueabihf/libjasper.so(版本 1.900.1)
OpenEXR:构建(版本 1.7.1)

视频 I/O:
DC1394:否
FFMPEG:是
avcodec:是(版本 56.1.0)
avformat:是(版本 56.1.0)
avutil:是(版本 54.3.0)
swscale:是(版本 3.0.0)
avresample:是(版本 2.1.0)
GStreamer:
base:是(版本 1.4.4)
视频:是(版本 1.4.4)
应用程序:是(版本 1.4.4)
riff:是(版本 1.4.4)
pbutils:是(版本 1.4.4)
libv4l/libv4l2:否
v4l/v4l2:linux/videodev2.h
gPhoto2:否

并行框架:pthreads

Trace:是(内置)

其他第三方库:
Lapack:否
Eigen:否
自定义 HAL:是(胡萝卜素(版本0.0.1))
Protobuf:构建(3.5.1)

OpenCL:是(无额外功能)
包含路径:/home/pi/OpenCV/Source/opencv/3rdparty/include/opencl/1.2
链接库:动态加载

Python(用于构建):

安装到:
/usr/local
-----------------------------------------------------------------

配置完成

相关内容