Разработка клиента протокола национального стандарта GB28181 (1) общий выбор процесса и технологии
Разработка клиента протокола национального стандарта GB28181 (1) общий выбор процесса и технологии

Разработка клиента протокола национального стандарта GB28181 (1) общий выбор процесса и технологии

В этой серии статей будет представлен процесс разработки устройства национального стандарта протокола GB28181. Целью этой статьи является обсуждение общих вопросов проектирования и выбора технологий, чтобы предоставить разработчикам рекомендации и справочные материалы. В статье будет обсуждаться общая архитектура разработки на стороне устройства, процесс взаимодействия сигнализации, выбор ключевых технологий и т. д., чтобы помочь нуждающимся читателям понять и усвоить ключевые моменты разработки на стороне устройства протокола GB28181, а также освоить технологии, необходимые для разработать протокол GB28181 на стороне устройства и получить знания, чтобы заложить основу для разработки реальных проектов.

1. Знакомство с протоколом GB28181.

Полное название GB28181 — «Технические требования к передаче, обмену и управлению сетевыми системами видеонаблюдения общественной безопасности». Он определяет сетевой протокол связи между оборудованием видеонаблюдения и направлен на достижение взаимосвязи и унифицированного управления системами видеонаблюдения. В последние годы, в связи с быстрым развитием систем видеонаблюдения, GB28181 стал фактическим стандартным протоколом для различного оборудования наблюдения, такого как сетевые камеры IPC и сетевые записывающие устройства с жестким диском NVR.

  1. Базовая архитектура:

Базовая архитектура протокола GB28181 включает в себя сторону устройства и сторону платформы. Сторона устройства включает в себя оборудование видеонаблюдения, такое как камеры, видеорегистраторы и т. д.; сторона платформы — это платформа управления системой видеонаблюдения, отвечающая за управление оборудованием, прием и хранение видеопотока и другие функции.

  1. Сигнальное взаимодействие:

Протокол GB28181 использует механизм взаимодействия сигнализации на основе SIP (расширенный). Устройства отправляют сигналы SIP для установления сеансов связи и передачи управляющей информации. Обычно используемые SIP-сообщения включают регистрацию, контрольное сообщение, поиск устройства, запрос статуса устройства, управление устройством и т. д.

  1. Передача данных:

Протокол GB28181 использует RTP для передачи аудио- и видеопотоков. Оборудование видеонаблюдения инкапсулирует аудио- и видеоданные в реальном времени в пакеты данных по протоколу RTP и передает их принимающей стороне через сеть.

Из вышеизложенного видно, что GB28181 очень похож на протокол SIP, но они ориентированы на разные области. Протокол GB28181 настроен и расширен на основе протокола SIP для области видеонаблюдения для удовлетворения потребностей видео. Необходимость сетевой связи между устройствами наблюдения. По сравнению с протоколом SIP протокол GB28181 больше ориентирован на потребности систем видеонаблюдения и предоставляет специфические функции и интерфейсы. Основные функции, включенные в протокол, следующие:

  • Управление регистрацией устройств
  • Запрос информации об оборудовании, запрос каталога, запрос статуса
  • Предварительный просмотр в реальном времени
  • Запрос видео, воспроизведение и загрузка
  • Управление оборудованием (управление PTZ, постановка/снятие с охраны, вспомогательный переключатель и т. д.)
  • Голосовое вещание и голосовая связь
  • Уведомление и рассылка тревожных событий
  • школьные часы
  • Подписки и уведомления

2. Общая архитектура устройства GB28181.

  • Сетевой уровень: отвечает за сетевое соединение и связь устройства.
  • Уровень управления управлением: обрабатывает инструкции по управлению устройством, запросы управления, хранение и извлечение видео.
  • Медиа-уровень: отвечает за кодирование аудио и видео, а также декодирование и анализ медиа-файлов.

3. Процесс работы устройства GB28181.

  1. Запустите устройство: после запуска устройства подключитесь к сети и инициализируйте каждый модуль.
  2. Установить сеть RTP/RTCP: устройству необходимо инициализировать сеть RTP/RTCP после запуска, чтобы установить медиаканал с платформой для передачи аудио- и видеопотоков.
  3. Платформа регистрации: устройство отправляет запрос на регистрацию регистрации на назначенную платформу, включая идентификатор устройства SIP, IP-адрес, порт SIP и другую ключевую информацию. На платформе GB28181 будет проходить двукратный процесс регистрации для проверки пароля, о котором речь пойдет позже.
  4. Поддержание активности пульса: устройство регулярно отправляет на платформу сообщения пульса для поддержания соединения с платформой.
  5. Ответ на запросы управления платформой: устройство получает запросы управления от платформы, такие как запрос каталога устройства, статус, информацию и другие операции, а затем отвечает соответствующим образом в соответствии с запросом.
  6. Предварительный просмотр в реальном времени: Устройство получает Предварительный с платформы GB28181 просмотр в реальном временипросить,Потоковая передача аудио и видео в реальном времени,Объединено в сообщение RTP,Отправлено запрашивающей стороне.
  7. Хранение, запрос и воспроизведение видео: устройство сохраняет видео, разделяет и сохраняет видеоданные в соответствии с периодами времени. Когда платформа GB28181 отправляет запрос на воспроизведение видео, устройство объединяет видеоданные соответствующего периода времени в сообщение RTP в соответствии с запросом и отправляет его запрашивающей стороне для воспроизведения.
  8. Обработка сигналов тревоги: устройство получает сигнал запуска тревоги и отправляет уведомление о тревоге на платформу GB28181. При получении запроса на обработку сигнала тревоги устройство может выполнить соответствующую обработку, например, включить звуковой сигнал тревоги, передачу видео и т. д.
  9. Обслуживание сетевого соединения: устройству необходимо поддерживать стабильное сетевое соединение с платформой GB28181 и обрабатывать нештатные ситуации, такие как отключение и повторное подключение сети.
  10. Выключение устройства: когда устройство получает команду выключения или активно отключается, ему необходимо отправить соответствующее прощальное сообщение SIP в текущий канал передачи данных RTP и освободить соответствующие ресурсы.

Среди них ключевыми этапами являются регистрация, контрольный сигнал, запрос каталога устройства, предварительный просмотр в реальном времени и обслуживание сетевого подключения. Только при достижении этих пунктов его можно рассматривать как базовое устройство GB28181.

4. Выбор технологии

Выбор правильной технологии имеет решающее значение для разработки устройства протокола GB28181. Ниже приведены некоторые предложения по выбору ключевых технологий:

  • Языки и фреймворки разработки. Разработка проекта обычно включает в себя выбор подходящих языков и фреймворков разработки на основе требований проекта и технического опыта команды разработчиков. В соответствии с требованиями этого проекта я использовал C++ для реализации базового процесса и QT для проектирования интерфейса.
  • Библиотека протоколов SIP: выберите стабильную и зрелую библиотеку протоколов SIP для обработки сигнальных взаимодействий. Распространенные варианты включают PJSIP, JAIN-SIP, oSIP, eXosip и т. д. Учитывая зрелость онлайн-информации, eXosip был выбран в качестве базовой библиотеки SIP. Конечно, поскольку сигнализация SIP представляет собой текстовый протокол, аналогичный HTTP, вы также можете рассмотреть возможность реализации его самостоятельно. Или используйте для этого Node.js. Поскольку я реализовал весь проект на C++, я выбрал eXosip.
  • Библиотека протокола RTP. Для реализации передачи аудио- и видеопотоков существует множество базовых библиотек, поддерживающих протокол RTP/RTCP, таких как JRTP, ortp и live555. Учитывая, что сам RTP не сложен и может быть реализован с помощью протокола RTP. сами, я здесь использовал последнее.
  • Медиа-библиотека: поскольку устройству GB28181 необходимо обеспечивать потоки видео/аудио, включая чтение, декодирование, кодирование и другие функции видеофайлов, использование ffmpeg является наиболее подходящим решением.
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose