Skip to content

kedess/va

Repository files navigation

va

Набор утилит для организации видео аналитики с ip камер:

  • захват видео и сохранение в файлы
  • инференс видео файлов и сохранение результатов
  • просмотр архива и live видео по протоколу HLS

Поддерживаемые операционные системы: Linux

va-record

Функционал:

  • Захват видео потоков с ip камер по протоколу rtsp и сохранение в файлы заданной длительностью. Поддерживаемые форматы H264, H265

Параметры запуска:

  • путь до файла источников видео потоков в формате json, по умолчанию sources.json
--source-file
  • префикс пути для хранения видео архива, по умолчанию /tmp/va
--prefix-archive-path
  • длительность видео сегмента в секундах, по умолчанию 10
--duration-file
  • уровень логирования приложения (debug, info, warning, error), по умолчанию info
--log-level

Пример файла со списком видео источников:

[
  {
    "id":"camera-1",
    "url":"192.168.0.1:554/stream",
    "username": "admin",
    "password": "admin"
  },
  {
    "id":"camera-2",
    "url":"192.168.0.2:554/stream",
    "username": "admin",
    "password": "admin"
  }
]

va-hls

Функционал:

  • Реализация HLS сервера для архивного видео. Запрос видео делается за конкретный час архива
  • Реализация HLS сервера для live видео

Параметры запуска:

  • префикс пути для хранения видео архива, по умолчанию /tmp/va
--prefix-archive-path
  • порт сервера, по умолчанию 8888
--port
  • уровень логирования приложения (debug, info, warning, error), по умолчанию info
--log-level

Пример запроса HLS с помощью ffplay, время в UTC

ffplay http://localhost:8888/camera-1/2024/04/17/05/index.m3u8

Пример запроса HLS с помощью ffplay (live)

ffplay http://localhost:8888/camera-1/index.m3u8

Задержка Live трансляции от 20 - 40 секунд при файлах (5 с)

Задержка Live трансляции от 40 - 60 секунд при файлах (10 с)

va-inference

Функционал:

  • Отправка данных на удаленный инференс, получение результата и сохранение в файл рядом с видео файлом

Параметры запуска:

  • префикс пути для хранения видео архива, по умолчанию /tmp/va
--prefix-archive-path
  • адрес инференс сервиса, по умолчанию localhost
--inference-server-address 
  • порт инференс сервиса, по умолчанию 3030
--inference-server-port 
  • количество паралелльных потоков инференса, по умолчанию 1
--num-threads
  • уровень логирования приложения (debug, info, warning, error), по умолчанию info
--log-level

В репозитории на данный момент присутствиет пример для инференса на YOLO V5

Сборка

Зависимости:

  • boost версия 1.84 и выше
  • ffmpeg версия 6.0 и выше

Компилятор:

  • Версия компилятора gcc-13.1.0 (C++20) и выше

Releases

No releases published

Packages

No packages published

Languages