LabVIEW 15 + x264 + большие файлы

Ответить
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

LabVIEW 15 + x264 + большие файлы

Сообщение Artem.spb »

Столкнулся с негуглимым препятствием.
Задача:
система видеорегистрации выдаёт avi с кодеком x264
Нужно эти записи обрабатывать в vision. Перекодировать пробовали, качество сильно падает, результат обработки соответствующий, так что этот вариант пока запасной и не желательный.
Записи длинные по времени (сутки), система выдаёт их автоматом кусками по 4Гб, можно опять же руками нарезать по полчаса, но это доп действие, которое сейчас используется как неизбежное зло.

Итак, проблема:
После установки кодека видяшка успешно открывается/читается функциями imaq avi2. но эта версия имеет нехороший баг: не читает кадры после 2Гб, это на форумах обсуждается. Там же предлагается официальное решение: использовать функции imaq avi (без "2"). Они типа медленнее, но без такой ошибки.
Делаю тест, и опять ошибка. Только уже на стадии открытия. т.е. avi2 файл открывает и читает, а avi его даже открыть отказывается.
На просторах нашёл один пост, в котором предлагается воспользоваться тулами CodecTweakTool, graphedit, FilterManager, по детально метод пока не осилил, а "авторемонт" кодеков не помог.
В других ветках обсуждают, что imaq плохо дружит именно с x264.
И собственно вопрос: если кто решил такую задачу (прочитать большой файл x264 в imaq LV15), поделитесь рецептом.
Вот тест, если кто не верит, что я в своём уме :)
paly.JPG
bd.png
Вот образец записи, если кто хочет поэкспериментировать.
http://www.mediafire.com/file/l31fq656n ... D.avi/file
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: LabVIEW 15 + x264 + большие файлы

Сообщение Kosist »

А проблема не может быть в разрядности (32-х битная версия не может осилить подобные файлы)? Интерестно, есть ли 64-битная версия именно Vision модуля?
Также, судя по скрину Вы используете :labview: 2015 - может в последней версии этот функционал работает лучше? Ведь уже есть версия 2018, http://www.ni.com/download/vision-devel ... 1/7839/en/
Мы делили апельсин - много наших полегло...
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: LabVIEW 15 + x264 + большие файлы

Сообщение dadreamer »

Kosist, я проверил на :labview: 2018 64-bit c файлом, выложенным выше. Открывает, но при чтении кадра чёрное изображение и ошибка. Это со старыми AVI-инструментами. Кодеки все возможные стоят, периодически обновляются + несколько плееров.
У меня как-то была похожая ситуация, нужно было прочитать 2-гиговый файл. Новые инструменты не хотели некоторые кадры отдавать. Но старые сработали, правда, не помню, каким кодеком видео было закодировано. Не могу предложить простого решения. Из не совсем простых - например, проигрывать через VLC API, тема на этом форуме есть (+ этот тред может помочь).
Последний раз редактировалось dadreamer 23 апр 2019, 23:17, всего редактировалось 1 раз.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: LabVIEW 15 + x264 + большие файлы

Сообщение Borjomy_1 »

кстати, есть еще вариант воспроизводить через ffmpeg. Во-первых требуется только один ffmpeg.exe (правда, должна быть версия, соответствующая разрядности ОС). Во-вторых - инструмент очень гибкий, не чета VLC. А результат можно уже подпихивать VISIO модулю.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: LabVIEW 15 + x264 + большие файлы

Сообщение Artem.spb »

Kosist писал(а):может в последней версии этот функционал работает лучше? Ведь уже есть версия 2018, http://www.ni.com/download/vision-devel ... 1/7839/en/
не может :)
На NI-форуме всё ещё обсуждают, что "наверно NI скоро это починит"

Borjomy_1 писал(а):кстати, есть еще вариант воспроизводить через ffmpeg. Во-первых требуется только один ffmpeg.exe (правда, должна быть версия, соответствующая разрядности ОС). Во-вторых - инструмент очень гибкий, не чета VLC. А результат можно уже подпихивать VISIO модулю.
не вариант, проверял. Задача не воспроизвести, а читать произвольные кадры. Но в таком режиме ffmpeg перечитывает все предыдущие кадры, так что при запросе сотого кадра я устану ждать.

Ну и до кучи, опять же с NI формума: поддержка x264 реализована не до конца, так что или кромсать файлы, или перекодировать другим кодеком.
Оба варианта "не устраивают", потому что это лишний шаг.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: LabVIEW 15 + x264 + большие файлы

Сообщение Borjomy_1 »

Artem.spb, Фигасе! Читать произвольные кадры из-под x264, ну вы замахнулись.
Решение в лоб: ffmpeg -ом запись транслируется в набор кадров в формате bmp. Это элементарная команда и выполняется очень быстро (на уровне скорости чтения-записи файла). Png имеет меньший объем, но процессорного времени на его создания нужно на порядок больше. Вы можете указать формат имени файла. Таким образом у вас на каждый кадр есть bmp файл. А уж искать нужный по маске - это вопрос программирования начального уровня.
Из минусов - огромный объем раскадровки BMP. В принципе, можно сделать фоновое развертывание части файла, запуская ffmpeg с указанием нужного интервала кадров.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: LabVIEW 15 + x264 + большие файлы

Сообщение Artem.spb »

Borjomy_1 писал(а):Artem.spb, Фигасе! Читать произвольные кадры из-под x264, ну вы замахнулись.
читает же. До 2 гигов.
Решение в лоб: ffmpeg -ом запись транслируется в набор кадров в формате bmp.
по моим прикидкам суточная запись потребует 5Тб.
Но вопрос исследую.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: LabVIEW 15 + x264 + большие файлы

Сообщение dadreamer »

dadreamer писал(а):Из не совсем простых - например, проигрывать через VLC API, тема на этом форуме есть (+ этот тред может помочь).
"Быстрый и грязный" тест:
2019-04-25_23-18-55.jpg
VLC Callback Snap Test.rar
lv2015
(583.86 КБ) 150 скачиваний
Как проверить:
1. Установить VLC 32 или 64 бита в зависимости от разрядности :labview: ;
2. Открыть :vi: , выбрать файл .avi;
3. Запустить :vi: ;
4. Пощёлкать бегунок позиции воспроизведения.
Не без нюансов:
- по кадрам не получится: либо %, либо время;
- при переключении позиции два эвента, а то и три - обычное дело (1-й - нулевая позиция, 2-й и т.д. - текущая или около того);
- кириллицу (юникод) LibVLC не понимает, надо предварительно проверять путь до файла или кодировать русские символы в % (URL Encode);
- если захочется через паузу сделать (пауза - установка позиции - пуск), то будет работать коряво; причина не до конца мне понятна.

Очевидно, решение не идеальное. Скорее всего, тот же ffmpeg можно перекомпилить в виде библиотеки и подключить, будет намного лучше, но это работа не на один день...
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: LabVIEW 15 + x264 + большие файлы

Сообщение Artem.spb »

Спасибо. Попробую поиграть.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Vision / IMAQ»