Skip to content

Извлечение и конвертация данных видеонаблюдения регистраторов Microdigital

Notifications You must be signed in to change notification settings

dokshinit/MDDVRExtractor

Repository files navigation

MDDVRExtractor 1.3.2b (08.08.2013)

Информация о программе

Назначение: Извлечение и конвертация данных видеонаблюдения регистраторов Microdigital (тестирование производителось только на модели MDR-8800P).
Версия: 1.3.2b от 08.08.2013
Автор: Алексей Докшин (все права принадлежат автору)
Контакты: [email protected]
Лицензия: Ограниченная ознакомительная версия только для некоммерческого персонального использования

ВНИМАНИЕ! Данная программа предоставляется автором 'как есть' - без каких-либо явных или подразумеваемых гарантий. Пользователь использует её целиком на свой страх и риск. Автор не несёт ответственности за любой возможный причинённый ущерб!

Системные требования

Для запуска программы необходим Java SE (JRE/JDK) v1.8.x.
Страница загрузки: http://www.oracle.com/technetwork/java/javase/downloads/index.html
Для обработки и транскодирования требуется ffmpeg. Желательно использовать идущий в комплекте - от версии к версии изменялись ключи и поведение при обработке. При более ранних версиях возможна как частичная, так и полная неработоспособность программы.
Страница загрузки:
для Linux: http://ffmpeg.org/download.html
для Windows: http://ffmpeg.zeranoe.com/builds/

Установка и настройка

Необходимо установить окружение Java JRE/JDK, если не установлено. Проверить можно командой java -version в консоли, если окружение установлено, то выведет название Java машины и её версию.
Если нет желания использовать ffmpeg, идущий в комплекте (исполняемый файл в локальном каталоге ffmeg), его необходимо удалить и установить пакет ffmpeg отдельно. Следует обязательно проверить, что ffmpeg успешно запускается из произвольного каталога (т. е. путь до ffmpeg добавлен в список каталогов, где происходит поиск для запуска по умолчанию). Для Windows — путь должен быть добавлен в переменную окружения PATH.
Какой либо установки и настройки самой программы не требуется, достаточно скопировать файлы программы в выбранный каталог и запустить один из файлов: для Linux — start.sh, для Windows — start.bat, или вручную, командой — java -jar MDDVRExtract.jar

Возможности и ограничения

Возможно извлечение данных из следующих видов источников:

  • файлы архивов выгружаемые видеорегистратором (*.exe);
  • файлы файловой системы видеорегистратора (da#####);
  • файлы локального хранилища CMS (da#####);
  • жесткий диск видеорегистратора (xfs). При этом возможен выбор в качестве источника как одиночного файла, так и каталога — со сканированием всех вложенных подкаталогов и файлов. При сохранении извлечённых данных возможна сквозная перекодировка в любой формат, поддерживаемый ffmpeg. Сохранение происходит в файлы следующих типов: AVI, MPEG4 или MKV.

При выборе режима «без перекодировки» — видео сохраняется в оригинальной кодировке. Аудио всегда транскодируется по причине того, что формат хранения аудио является модифицированным вариантом алгоритма PCM и всегда предварительно декодируется программой. Алгоритм декодирования был воссоздан и реализован с помощью изучения кода утилиты производителя, но ввиду того, что у автора в наличии всего один DVR данного производителя — реализация является не полной и, возможно, для каких-то вариантов DVR аудио не будет извлекаться корректно.

Информация о дате и времени сохраняется в субтитрах, чтобы не изменять данные при сохранении без перекодировки. И аудио и субтитры можно сохранять как в отдельные файлы, так и в файл с видео (ограничение накладывает тип выбранного файла — некоторые контейнеры не позволяют сохранять субтитры).
При повреждении файла битые кадры исключаются из ряда, при этом возможно появление артефактов.

Не реализовано:

  • расширенная обработка повреждённых файлов;
  • возможность использования метаданных HDD для построения списка хранимых данных (без сканирования файлов).

Порядок работы

  • Выбор источника данных:
    На закладке «Источник» выбирается нужный источник (файл/каталог/диск), после чего происходит его предварительное сканирование. При выборе источника желательно, если это возможно, указать конкретную камеру — это позволяет ускорить сканирование и последующую обработку.
  • Выбор камеры:
    После сканирования выбирается обрабатываемая камера из списка доступных.
  • Выбор параметров обработки:
    На закладке «Обработка», выбирается период сохраняемых данных и файл-приёмник для видео. По умолчанию выбран упрощённый режим в котором видео аудио (если есть) пишутся в один файл. При этом видео конвертируется в MPEG4, аудио в PCM16BIT, субтитры в формате SRT записываются в отдельный файл. При выборе расширенных настроек можно вручную задать параметры обработки данных, а также вариант сохранения данных.
  • Переход на закладку «Лог» для контроля (не обязательно).
  • Запуск обработки (возможно сделать находясь на любой закладке).

Порядок извлечения данных с HDD

Извлечение данных с HDD регистратора осложняется тем, что в нём используется свой вариант файловой системы XFS, да ещё и первой версии (организация каталогов). Поэтому при подключении к ПК с Linux, данные не доступны и при монтировании с возможностью записи — файловая система закономерно повреждается. Штатными средствами после этого восстанавливается не всё — как правило некоторое количество файлов оказывается поврежденными.

Для успешного извлечения данных в программе реализован драйвер для работы с вариантом файловой системы регистратора напрямую. Т.е. нет нужды в монтировании раздела в Linux или в каких-то драйверах в Windows. Необходимо подключить HDD DVR, проверить, что он появился в списке устройств и дать пользователю права на чтение с этого диска.

Драйвер был написан на основе спецификаций XFSv1 и исследования особенностей файловой системы DVR, как и в случае с аудио — возможны не замеченные автором нюансы «оригинальной» файловой системы DVR.

p.s.

Данный проект разрабатывался изначально для собственных нужд, позже им заинтересовались в МД РУС, под их хотелки и обещания я его доработал, но т.к. по оплате с данными товарищами так к консенсусу и не пришли, то на правах автора - размещаю исходники здесь и разрешаю использовать их как угодно. Самому уже нет ни времени, ни желания приводить в соответствие тексты лицензий в исходниках или как-то дополнительно причесывать. Актуальность проекта давным-давно потеряна. Выложен скорее для истории.

Требование по версии Java исключительно из-за использования и кастомизации L&F Nimbus, можно выпилить и тогда будет работать с более новыми версиями Java.

About

Извлечение и конвертация данных видеонаблюдения регистраторов Microdigital

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages