OpenCV VideoWriter не откроется
У меня возникли проблемы с созданием и открытием OpenCV VideoWriter
для записи видео на малиновый пи (Raspbian Weezy).
Мой проект написан на С++, но я написал минимальную программу Python, которая демонстрирует проблему.
https://gist.github.com/chriscollins/11ff2f43852e1c93dae8
Как мой код на С++, так и код Python выше работают без проблем на моей машине с Windows. Иногда сценарий не открывается, но этого следует ожидать - у меня нет всех перечисленных кодеков (список кодеков исходит из открытого источника CV), но многие из них работают правильно. Однако на Raspberry Pi код С++ и код Python терпят неудачу, а VideoWriter
никогда не открывается. В приведенном выше коде Python writer.isOpened()
возвращает false для каждого отдельного кодека при запуске на малине Pi.
Я установил chown
каталог назначения для пользователя. Я запускаю Python script as, а chmod
отнесен к 777
, поэтому я не считаю, что это проблема с разрешениями. Я думаю, это может быть связано с тем, как я установил OpenCV или некоторые из его зависимостей, но я не уверен, как его исправить.
Процесс установки, который я использовал, выглядит следующим образом:
-
Обновите прошивку/пакеты через rpi-update
, apt-get update
и apt-get upgrade
.
-
Установите следующие зависимости через apt-get
:
libjpeg8
libjpeg8-dev
libjpeg8-dbg
libjpeg-progs
ffmpeg
libavcodec-dev
libavcodec53
libavformat53
libavformat-dev
libgstreamer0.10-0-dbg
libgstreamer0.10-0
libgstreamer0.10-dev
libxine1-ffmpeg
libxine-dev
libxine1-bin
libunicap2
libunicap2-dev
swig
libv4l-0
libv4l-dev
python-numpy
libpython2.6
python-dev
python2.6-dev
libgtk2.0-dev
-
Загрузите и распакуйте http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip в /root/opencv-2.4.9
.
-
cd /root/opencv-2.4.9
и запустите cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_gpu=OFF -DBUILD_opencv_ocl=OFF
. Выход cmake доступен в https://gist.github.com/chriscollins/d8060e03a6acd6d4336c
-
make
и make install
из того же каталога.
Различные другие функции OpenCV работают правильно на Raspberry Pi (в С++ или на Python) - например, просмотр веб-камеры через VideoCapture
, но я не могу заставить VideoWriter
работать. У меня возникает желание попробовать установить FFMPEG из источника вместо apt-get
, но поскольку make
занимает 5+ часов для запуска на малине Pi, я надеялся, что найду ответ здесь, вместо того, чтобы продолжить пробную версию и подход к ошибкам!
Любые советы о том, как решить (или отлаживать) это оценили.
EDIT: Добавлен вывод команды cmake (https://gist.github.com/chriscollins/d8060e03a6acd6d4336c)
Ответы
Ответ 1
Глядя на вывод make, я обнаружил, что он говорит NO об установке gstreamer, что необходимо для обработки мультимедиа. Это недостающее звено.
Try
sudo apt-get install libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
.
Это должно решить вашу проблему.
Ответ 2
У меня была аналогичная проблема на Mac OS 10.9 (Mavericks). Я решил, что нужно переустановить Opencv с поддержкой ffmpeg (я не уверен, что я переустановил его после ручной установки ffmpeg или обработал brew). На Mac, устанавливающем OpenCV с поддержкой ffmpeg, была только одна команда - brew install opencv --with-ffmpeg
(описание этой опции → "Build with ffmpeg support" ). Я уверен, что apt-get
должен иметь аналогичный вариант.
Вы также можете попробовать это решение - http://www.ozbotz.org/opencv-installation-2-3-1/ Он довольно старый, но после небольших изменений должен работать с текущей версией OpenCV.