video analitics
Go to file
amazing-hash 17f1a1c04c feat: capture only video stream
- Захватываем только видео поток с камер
2024-05-11 15:55:29 +04:00
.vscode refactor 2024-04-20 23:24:39 +04:00
common feat: add codec id to meta file 2024-05-08 13:58:49 +04:00
inferences/yolov5 feat: implementation inference (#3) 2024-05-01 19:41:41 +04:00
rapidjson feat: va-record 2024-04-13 19:20:33 +04:00
tests fix: tests 2024-05-01 19:49:19 +04:00
va-hls rfactor(va-hls, va-record, va-inference): rename param logging-level to log-level 2024-05-07 15:40:10 +04:00
va-inference rfactor(va-hls, va-record, va-inference): rename param logging-level to log-level 2024-05-07 15:40:10 +04:00
va-recorder feat: capture only video stream 2024-05-11 15:55:29 +04:00
watcher Hls live (#2) 2024-04-24 19:05:33 +04:00
.clang-format feat: va-record 2024-04-13 19:20:33 +04:00
.gitignore feat: va-record 2024-04-13 19:20:33 +04:00
CMakeLists.txt feat: capture only video stream 2024-05-11 15:55:29 +04:00
LICENSE Initial commit 2024-03-29 11:56:48 +04:00
README.md feat: add codec id to meta file 2024-05-08 13:58:49 +04:00
version.h feat: capture only video stream 2024-05-11 15:55:29 +04:00
version.h.in feat: single version file 2024-04-19 00:51:04 +04:00

README.md

va

Набор утилит для работы с видео камерами:

  • захват видео и сохранение в файлы
  • инференс видео файлов и сохранение результатов
  • просмотр архива и 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) и выше