Перейти к содержимому
Compvision.ru
xintrea

Запись видео в OpenCV под Linux: не работает VideoWriter::write()

Recommended Posts

Спрашиваю у тех, кто в теме. Интернет завален непонятками по вопросу неработоспособности VideoWriter::write() в Linux. Создается маленький видео-файл, в котором есть только заголовок (размером 5-8кб в зависимости от используемого кодека) и все.

Среда: Debian Linux 9 Stable
OpenCV из стандартного репозитария: libopencv-dev 2.4.9.1+dfsg1-2.
FFMPEG из стандартного репозитария: ffmpeg 7:3.2.8-1~deb9u1

Кто-то пишет, что неработает из-за путанницы в пакетах ffmpeg* libav*. Кто-то пишет, что нужно экспериментальным путем подобрать кодек, но я попробовал десяток комбинаций, взятых из постов «У меня все работает!» - тоже болт. Кто-то пишет, что не работает по причине отключения флага поддержки видеозаписи в стандартных репозитариях (зачем так делать - непонятно), и надо сносить стандартный пакет и хитро собирать из исходников. Кто-то пишет, что никогда вообще не видел чтоб видеозапись работала под Linux, типа эта подсистема работает только в Windows, и разработчики под Линухом даже не тестируют и не обещают поддержку. Кто-то пишет, что неработает с 2015 года и работать не будет.

Перед тем как я уработаю систему кривыми пакетами и не менее кривыми руками, я хочу услышать у того, кто столкнулся с такой проблемой и решил ее: что делать, как заставить писать VideoWriter::write() минимальными средствами?

Краткий пример, в котором запись не работает:

https://pastebin.com/NZbjek0d

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проблема оказалась в том, что после применения фильтров изображение получается одноцветным (черно-белым)

И особенность врайтера в том, что он не может сохранить одноцветное изображение в цветной контейнер.

Последний параметр isColor пришлось заменить на false, и запись заработала:

videoWriter.open(filename, codec, fps, sizeOfFrame, false);

Не ожидал такой особенности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×