Jump to content
Compvision.ru
Sign in to follow this  
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

 

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×