OpenCV 4 для Java, случайная ошибка с VideoWriter - PullRequest
0 голосов
/ 21 декабря 2018

Я использую JRE 1.8.0_191 и Open CV 4 для Java.Я пишу приложение, которое по требованию пользователя может захватывать видеопоток с IP-камеры и записывать его в файл.Приложение непрерывно захватывает фреймы и, когда его просят сделать, сохраняет файл и закрывает его через определенное время.Затем приложение возвращает захват, пока не получит следующую команду для сохранения видео.Частота кадров 25, а разрешение 640х480;Одно видео может длиться до 5 минут.

Каждый раз, когда видео должно быть сохранено, создается новый видеозаписывающий модуль (это связано с внутренними особенностями архитектуры всего приложения).Итак, это код: "theVideoWriter = new VideoWriter (fileName, VideoWriter.fourcc ('H', '2', '6', '4'), fps, frameSize); theVideoWriter.set (Videoio.CAP_PROP_FOURCC, fourcc);»... для записи каждого захваченного кадра я использую: «theVideoWriter.write (theGrabbedFrame)» в потоке, который специально создается каждый раз, когда приложение получает команду «сохранить видео».

Все работает очень хорошо иЯ могу запустить приложение в течение нескольких дней, и все работает нормально.Во время пробных прогонов я успешно захватил даже более 2 тыс. Видеофайлов.

Дело в том, что иногда (10 раз на более чем 2 тыс. Видеофайлов) я получал следующую ошибку: [libopenh264 @ 00000000207edd80] Загружена неверная версия библиотеки. Не удалось открыть кодек «libopenh264»: неизвестная ошибка OpenCV: FFMPEG: тег 0x34363248 / «H264» не поддерживается с идентификатором кодека 27 и форматом «mp4 / MP4 (MPEG-4 Part 14)» OpenCV: FFMPEG:отступление к использованию тега 0x31637661 / 'avc1'

Это действительно кажется случайной ошибкой, поскольку нет никаких очевидных причин, которые могли бы это сделать.Более того, многие видеофайлы сохраняются с одинаковыми настройками (H264 и mp4) во время одного сеанса.

Есть ли у кого-нибудь какие-либо подсказки / предложения по этому поводу?

Спасибо, Лука

...