Trassir SDK и API: примеры интеграции для разработчиков
Trassir — популярная платформа для видеонаблюдения в России и ближнем зарубежье. Для интеграторов и разработчиков производитель предоставляет набор средств: собственные SDK, серверные API, поддержку стандартов (RTSP, ONVIF) и возможность запускать скрипты и плагины. В этой статье объясню, какие интерфейсы есть, где их лучше применять и приведу практические примеры кода и схемы интеграции для типовых задач.
Коротко о возможностях
Trassir позволяет:
- получать видеопотоки по RTSP и отображать их в приложениях;
- управлять камерами (PTZ) через ONVIF или серверные команды;
- подписываться на события (движение, тревога, входы/выходы) и получать их в реальном времени;
- экспортировать фрагменты архива и метаданные;
- расширять функциональность с помощью плагинов/скриптов (Python/C#/C++ в составе SDK);
- интегрировать внешние системы (POS, СКУД, тревожные панели).
Если нужна конкретная камера или комплект для проекта, смотрите раздел каталога оборудования для систем видеонаблюдения: https://y-ss.ru/catalog/sistemy_videonablyudeniya/
Какие интерфейсы и когда их выбирать
- RTSP — стандартный поток для отображения видео в клиенте или записи в сторонней системе. Хорош для трансляций и анализа видео.
- ONVIF — стандарт для управления (PTZ), получения профиля и базовой аутентификации камер.
- Trassir Server API / SDK — используется когда нужна глубокая интеграция: события сервера, метаданные аналитики, доступ к базе событий, выгрузка архива, создание пользователй и прав.
- Встроенные скрипты/плагины (Python, C#) — для локальной логики прямо на сервере Trassir: автоматические реакции, экспорт в сторонние сервисы, сложная обработка метаданных.
- WebSocket / REST (если доступны в вашей версии) — для подписки на события в реальном времени и получения уведомлений в web-приложениях.
Схема интеграции: типовой сценарий
Камера → Trassir Server (запись/аналитика) → Внешняя система (ACS, POS, SIEM)
- КАМ: RTSP/ONVIF
- SERVER: хранение, аналитика, API-экспорт
- ВНЕШНЕЕ ПРИЛОЖЕНИЕ: подписка на события, запрос видеофрагментов, управление PTZ
ASCII-схема:
[IP-камера] --RTSP/ONVIF--> [Trassir Server] --API/WS--> [Ваш сервис]
|
+-- Архив (HDD)
+-- Логи/метаданные
Практические примеры
1) Подключение RTSP-потока в приложение (пример на Python, OpenCV)
import cv2
rtsp_url = "rtsp://user:pass@camera-ip:554/stream"
cap = cv2.VideoCapture(rtsp_url)
ret, frame = cap.read()
if ret:
cv2.imshow("Frame", frame)
cv2.waitKey(0)
cap.release()
Это работает для просмотра и базовой обработки кадров. Для стабильной работы в проде используйте библиотеку, умеющую восстанавливать соединение и аппаратное декодирование.
2) Запрос метаданных/списка камер через HTTP API (псевдокод)
import requests
base = "http://trassir-server:8080/api"
headers = {"Authorization": "Bearer YOUR_TOKEN"}
r = requests.get(base + "/cameras", headers=headers)
print(r.json())
Вот как это работает: сервер возвращает список камер, их статусы и настройки. Используйте токен/логин, который выделил администратор Trassir.
3) Подписка на события (логика)
- На сервере включите отправку событий (motion, alarm) в сторонний адрес.
- Если доступен WebSocket/JSON-API — подпишитесь и обрабатывайте приходящие уведомления.
- В противном случае можно настроить скрипт на Trassir, который шлёт HTTP POST на ваш endpoint.
Пример простого JSON-сообщения события:
{
"camera_id": 12,
"event": "motion",
"time": "2026-02-24T15:32:10Z",
"meta": {"zone": "entrance"}
}
4) Управление PTZ через ONVIF (микросхема)
- Получаем профиль камеры через ONVIF.
- Отправляем команду AbsoluteMove или RelativeMove.
- Если камера интегрирована в Trassir, можно отправлять команды также через серверное API.
5) Выгрузка архива: алгоритм
- Получить список файлов/сегментов по времени.
- Запросить экспорт фрагмента в файл или поток.
- Скачивать через защищённый канал и хранить с метаданными.
Безопасность и правовые моменты
- Всю передачу паролей и метаданных держите через HTTPS/VPN. IP-камеры часто имеют уязвимости — закрывайте порты и обновляйте прошивку.
- Разграничьте права доступа: выделите сервисный аккаунт с минимальными правами для интеграции.
- Учитывайте требования по хранению персональных данных. Для общественных мест и коммерции нормативы могут отличаться — уточняйте у юриста.
- Логи и аудит: храните записи действий интеграции, чтобы быстро находить причины проблем.
Смотрите, какая штука: интеграция может быть простой (просмотр RTSP) или глубокой (подписка на события, экспорт архива и управление правами). Планируйте сразу под реальные задачи.
Сравнение интерфейсов
| Интерфейс |
Что даёт |
Когда выбрать |
| RTSP |
Видеопоток в реальном времени |
Для отображения и аналитики потоков |
| ONVIF |
PTZ, базовая конфигурация |
Для управления камерами и унификации |
| Trassir SDK/API |
События, экспорт, управление сервером |
Для глубокой интеграции и автоматизаций |
Оценка стоимости и лицензирование
Стоимость проекта зависит от:
- числа камер и качества (разрешение, кодек);
- необходимости аналитики (лицензии на детекцию, распознавание);
- хранения (HDD/облако) и ретеншена (хранить 7/30/90 дней);
- сервисных работ по настройке и монтажу.
Примерная схема расчёта: 1 камера 4 MP + запись 24/7 → ~60–100 GB/мес; добавьте лицензии Trassir на аналитические функции и услуги монтажа.
Чек‑лист для интеграции
- Определили задачи: просмотр, хранение, аналитика, интеграция с ACS/POS.
- Проверили, есть ли у камер RTSP/ONVIF.
- Согласовали требования к хранению и шифрованию.
- Настроили сервисный аккаунт и VPN/HTTPS.
- Тестировали события и экспорт на тестовой базе.
- Спланировали резерв и мониторинг дисков.
Коротко о типичных проблемах
- Потеря потока при нестабильной сети — используйте повторные попытки и буферы.
- Несовместимость ONVIF-профилей — тестируйте команды на одной камере.
- Большая нагрузка на сервер при множестве одновременно экспортируемых фрагментов — ограничьте параллелизм.
Заканчивая, отмечу: если нужно быстро развернуть надёжную систему, лучше сперва спроектировать архитектуру с учётом нагрузки и безопасности, а затем подключать интеграции постепенно. Это поможет избежать переделок и лишних затрат.