Подтвердить что ты не робот

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)

4b9b3361

Ответ 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.