Как настроить метаданные и таймкоды в бесплатных системах
Настройка метаданных и точных таймкодов важна и для домовой камеры, и для крупного объекта. Ниже — понятная пошаговая инструкция, сравнение подходов и практические примеры для бесплатных решений (Shinobi, ZoneMinder, motionEye, ffmpeg, ffprobe, Kerberos.io и др.). Ссылки ведут на раздел каталога оборудования, если нужно подобрать камеры или регистраторы: https://y-ss.ru/catalog/sistemy_videonablyudeniya/ и https://y-ss.ru/catalog/.
Зачем это нужно
Метаданные и корректные таймкоды помогают быстро искать инциденты, сверять события между камерами и доказывать хронологию при разборе происшествий. Если часы камеры идут неправильно, записи теряют ценность. Поэтому важно и сам формат метаданных, и синхронизация времени.
Основные способы добавить метаданные и таймкоды
- Встраиваемая OSD (overlay) — видимый на видео таймкод. Работает на большинстве камер.
- In-stream metadata — служебные метки в RTSP/RTMP/ONVIF-потоке. Полезно при интеграции с NVR.
- Контейнерные метаданные (MP4/MKV) — теги файла: title, comment, custom.
- Sidecar-файлы — JSON/CSV с таймкодами и событиями рядом с видеопотоком.
- Метаданные кадра (ffprobe) — извлекаются для анализа и индексирования.
Таймкоды: форматы и что выбрать
- SMPTE hh:mm:ss:ff — нужен для телевизионной нумерации кадров (frame rate важен).
- ISO 8601 (UTC) — yyyy-mm-ddThh:mm:ss.sssZ — лучший выбор для систем видеонаблюдения.
- Unix epoch (ms) — удобно для машинной обработки.
Вот почему важно: используйте UTC в метаданных и добавляйте локальную зону отдельно. Синхронизируйте все устройства по NTP.
Практические примеры и команды
1) Прописать локальный видимый таймкод через ffmpeg (сохранение в новый файл):
ffmpeg -i input.mp4 -vf "drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:
text='%{localtime\:%Y-%m-%d %H\\:%M\\:%S}': x=10: y=10: fontsize=24: fontcolor=white: box=1: boxcolor=0x00000099" -c:a copy out.mp4
2) Добавить метаданные в MP4 без перекодировки:
ffmpeg -i in.mp4 -metadata title="Камера 1" -metadata comment="Входная дверь, UTC" -codec copy out.mp4
3) Извлечь список кадров с таймкодами (ffprobe) в JSON:
ffprobe -select_streams v -show_frames -print_format json input.mp4 > frames.json
4) Создать sidecar JSON при записи на сервере (пример схемы):
{"camera":"Cam01","utc_start":"2025-12-21T12:00:00Z","frames":[{"ts":1703236800000,"frame":1},{"ts":1703236800333,"frame":2},...]}
Настройка в популярных бесплатных системах
- Shinobi: в настройках видеопотока можно включить OSD и прописать шаблон метаданных. Для экспорта используйте ffmpeg hooks.
- ZoneMinder: включите NTP на хосте, в настройках камеры включите overlay или используйте обработчики событий для генерации JSON.
- motionEye / motion: настройте ffmpeg параметры и post-process скрипты, чтобы вместе с видео сохранялись отдельные JSON/CSV с таймкодами.
- Kerberos.io: поддерживает вебхуки и экспорт событий в JSON с таймкодами.
Если не можете найти в интерфейсе опцию метаданных — используйте промежуточный ffmpeg-слой: подключаете RTSP, проставляете drawtext или метаданные и транслируете дальше.
Сравнение подходов
| Метод | Точность | Нагрузка/ресурсы | Удобство поиска |
| OSD (видимый) | Средняя (зависит от камеры) | Низкая | Удобно визуально |
| In-stream метаданные | Высокая | Средняя | Хорошо для NVR |
| Container tags | Низкая (файл) | Низкая | По файлу, не по кадру |
| Sidecar (JSON/CSV) | Очень высокая | Низкая/средняя | Лучше всего для поиска |
Схема хранения и потока данных
Камера (RTSP/ONVIF) → NTP-сервер (все устройства) → Захват (Shinobi/ZoneMinder) → ffmpeg (привязка метаданных, OSD) → Архив (MP4/MKV) + sidecar JSON → Индексация (по метаданным)
Юридические и безопасные моменты
- Синхронизируйте все часы по NTP. Без этого метаданные бесполезны.
- Храните UTC и отдельно локальную зону.
- Для доказательной базы храните контрольную сумму файла (sha256) и метаданные подписи.
- Учитывайте локальные правила хранения персональных данных и сроки.
Чек-лист перед вводом в эксплуатацию
- Установлен NTP и проверена синхронизация часов.
- Решили формат таймкода (ISO 8601 + ms рекомендовано).
- Включили OSD в камере или на сервере (если нужно видеть время на видео).
- Настроили запись sidecar JSON/CSV с таймкодами кадров.
- Тестировали экспорт и поиск по таймкодам.
- Настроили бэкап и контрольные суммы.
- Проверили соответствие нормативам хранения данных.
Где брать камеры и оборудование
Для проектов любого масштаба можно посмотреть ассортимент в каталоге систем видеонаблюдения: https://y-ss.ru/catalog/sistemy_videonablyudeniya/
Если нужно выбрать регистратор, камеры или аксессуары — начните с общего каталога: https://y-ss.ru/catalog/
В конце простая мысль: точные метаданные — это не только «красивый» штамп на видео. Это способ быстро найти нужный момент, сверить события между устройствами и сохранить доказательства в понятном формате. Небольшая настройка сейчас экономит часы при разборе инцидента потом.