#opencv #ffmpeg #gstreamer
Вопрос:
Я хотел бы использовать FFMPEG в качестве бэкенда для OpenCV, но я не могу заставить его работать. Используемая операционная система-CentOS8. Версии OpenCV и FFMPEG-3.4.5 и 2.8.17 соответственно.
Информация о сборке OpenCV показывает, что FFMPEG=ВКЛЮЧЕНО, поэтому OpenCV, похоже, распознает библиотеку FFMPEG.
Это часть видео ввода-вывода информации о сборке OpenCV.
Video I/O: DC1394: NO FFMPEG: YES avcodec: YES (58.91.100) avformat: YES (58.45.100) avutil: YES (56.51.100) swscale: YES (5.7.100) avresample: NO GStreamer: NO v4l/v4l2: YES (linux/videodev2.h)
Однако в информационном сообщении, отображаемом во время выполнения, говорится
[ INFO:0] VIDEOIO: Enabled backends(6, sorted by priority): GSTREAMER(1000); V4L2(990); CV_IMAGES(980); CV_MJPEG(970); FIREWIRE(960); UNICAP(950) OpenCV | GStreamer warning: your gstreamer installation is missing a required plugin(/builddir/build/BUILD/opencv-3.4.6/modules/videoio/src/cap_gstreamer.cpp:1823) OpenCV | GStreamer warning: GStreamer: unable to start pipeline(/builddir/build/BUILD/opencv-3.4.6/modules/videoio/src/cap_gstreamer.cpp:872)
Я также не понимаю, почему используется Gstreamer, если он не включен в информации о сборке.
В чем может быть причина? Пожалуйста, сообщите мне, если вы знаете больше.
Ответ №1:
Даже если вы предпочтете FFMPEG=ON, нет никакой гарантии, что FFMPEG будет включен в процессе сборки opencv. Потому что OpenCV проверит все зависимости. Пожалуйста, установите все зависимости и попробуйте установить недостающие части, такие как GStreamer, avresample.