[Национальный стандарт видеонаблюдения GB/T28181] Как поддерживать доступ TCP и UDP
[Национальный стандарт видеонаблюдения GB/T28181] Как поддерживать доступ TCP и UDP

Национальный стандарт видеонаблюдения GB/T28181 поддерживает доступ TCP и UDP, в основном полагаясь на протокол связи и механизм передачи, определенные в стандарте. Ниже приводится подробное объяснение этих двух методов доступа:

1. Метод доступа TCP

1.1 Характеристики TCP-доступа

надежность:TCPпротокол Обеспечить ориентированное на соединение、Надежный сервис потоков байтов。Во время передачи данных,TCP-протокол обеспечит целостность и порядок данных,Исправьте ошибки передачи с помощью механизма повторной передачи.

контроль потока:TCPпротокол С функцией контроля потока,Возможность контролировать скорость передачи данных между отправителем и получателем.,Это сделано для того, чтобы получатель не смог обработать данные из-за того, что отправитель отправил их слишком быстро.

контроль перегрузок:TCPпротокол Также имеетконтроль перегрузок Функция,Возможность автоматического снижения скорости передачи данных при перегрузке сети.,для снижения нагрузки на сеть.

1.2 Конкретная реализация TCP-доступа

В GB/T28181 метод доступа TCP в основном используется для передачи видеопотоков. Когда устройства (такие как IPC, NVR и т. д.) подключаются к платформе видеонаблюдения через протокол TCP, они устанавливают TCP-соединение и передают данные потокового видео через это соединение.

Режимы доступа TCP включают активный режим TCP и пассивный режим TCP. В активном режиме TCP устройство действует как клиент и активно инициирует соединение с платформой; в пассивном режиме TCP платформа действует как сервер и прослушивает TCP-порт, ожидая, пока устройство инициирует соединение.

2. Метод доступа UDP

2.1 Характеристики UDP-доступа

высокийэффективность:UDPпротоколэто соединение без установления соединения、Ненадежный протокол транспортного уровня. Это не гарантирует порядок пакетов.、целостность инадежность,поэтому Эффективность передачисравниватьвысокий。

в реальном времени:потому чтоUDPпротокол Никаких сложных рукопожатий и механизмов подтверждения,Следовательно, его задержка передачи больше, чем у Низкого.,Применимо к Да реальном времени Требоватьсравниватьвысокийиз Сценарии применения (например, передача аудио и видео).

2.2 Конкретная реализация доступа UDP

В GB/T28181 метод доступа UDP также широко используется для передачи видеопотоков. Платформа сначала включит мониторинг порта UDP и передаст информацию описания носителя UDP-порта при инициировании запроса INVITE. Устройство активно отправляет потоки RTP на платформу через этот порт.

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

3. Сравнение методов доступа TCP и UDP.

TCP-метод доступа

UDP-метод доступа

надежность

высокий

Низкий

Эффективность передачи

относительно Низкий

высокий

в реальном времени

относительно Низкий

высокий

Сценарии применения

Сценарии применения, требующие надежной передачи и сложного контроля

Да реальном времени Требоватьвысокийи данадежность Требовать Нетвысокийиз Сценарии применения (например, передача аудио и видео)

4. Примеры кода

Пример использования библиотеки JAIN SIP для поддержки доступа TCP и UDP в Java относительно сложен, поскольку сам JAIN SIP представляет собой реализацию стека протоколов, который поддерживает несколько протоколов транспортного уровня, но конкретные детали реализации (например, как одновременно прослушивайте TCP и UDP) UDP-порт) обычно зависит от конкретной SIP-библиотеки или платформы, которую вы используете.

Однако я могу предоставить концептуальный пример и шаги, которые помогут вам настроить точки прослушивания TCP и UDP в приложении SIP. Обратите внимание, что следующие примеры, возможно, потребуется скорректировать в зависимости от конкретной реализации библиотеки SIP.

4.1 Инициализация SIP-стека

Сначала вам необходимо инициализировать стек SIP и установить необходимые свойства.

Язык кода:javascript
копировать
SipFactory sipFactory = SipFactory.getInstance();  
sipFactory.setPathName("gov.nist"); // Предполагая, что вы используете JAIN NIST. реализация SIP  
  
Properties properties = new Properties();  
properties.setProperty("javax.sip.STACK_NAME", "MySipStack");  
// Установите другие свойства стека SIP...  
  
SipStack sipStack = sipFactory.createSipStack(properties);
4.2 Создать точку прослушивания

Тогда вам нужно Создать точку прослушивания для TCP и UDP соответственно.

Язык кода:javascript
копировать
// Создать точку прослушивания UDP  
ListeningPoint udpListeningPoint = sipStack.createListeningPoint("127.0.0.1", 5060, "udp");  
  
// Создайте точку прослушивания TCP  
ListeningPoint tcpListeningPoint = sipStack.createListeningPoint("127.0.0.1", 5061, "tcp");
4.3 Создайте провайдера SIP и добавьте прослушиватели.

Создайте поставщика SIP для каждой точки прослушивания и добавьте прослушиватели SIP к этим поставщикам.

Язык кода:javascript
копировать
SipProvider udpProvider = sipStack.createSipProvider(udpListeningPoint);  
udpProvider.addSipListener(new MySipListener()); // Предположим, что MySipListener реализует интерфейс SipListener.  
  
SipProvider tcpProvider = sipStack.createSipProvider(tcpListeningPoint);  
tcpProvider.addSipListener(new MySipListener()); // Вы можете использовать один и тот же прослушиватель или разные прослушиватели для каждого провайдера.
4.4 Реализовать интерфейс SipListener

вам нужно реализоватьSipListenerинтерфейс для обработкиSIPсобытие,Такие как запросы, ответы и таймауты.

Язык кода:javascript
копировать
public class MySipListener implements SipListener {  
    // Реализовать процесс Запрос, processResponse, ProcessTimeout и другие методы  
  
    @Override  
    public void processRequest(RequestEvent requestEvent) {  
        // Обработка SIP-запросов  
        // ...  
    }  
  
    // Реализуйте другие методы...  
}
На что следует обратить внимание
  1. Параллельная обработка:если тыизSIPЗаявление необходимо обработатьвысокийодновременно,Возможно, вы захотите рассмотреть возможность использования пула потоков или другого механизма параллелизма для оптимизации производительности.
  2. Обработка ошибок:СозданиеSIPкуча、при точке прослушивания или провайдере,Может быть выброшено исключение. Убедитесь, что ваш код правильно обрабатывает эти исключения.
  3. безопасность:если тыизSIPЗаявление необходимо обработатьконфиденциальная информация,Убедитесь, что ваша реализация соответствует соответствующим стандартам безопасности и передовым практикам.
  4. зависимости библиотеки:убедитесь, что выиз Проект содержит правильныеизJAIN SIPзависимости библиотека. Если вы используете такой инструмент сборки, как Maven или Gradle, вы можете добавить соответствующие зависимости в файл сборки проекта.
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