Перейти к основному содержимому

05-07-02 Диагностика типичных проблем

05-07-02

Изучим, как системно подходить к выявлению и устранению неисправностей в ONVIF-системах. Вместо хаотичных попыток «включить и посмотреть» предлагается логическая схема диагностики, основанная на разделении проблем по уровням: от физической сети до уровня приложений и медиапотоков.


Подход к диагностике: от общего к частному

Работа с ONVIF-устройствами — это взаимодействие на нескольких уровнях: сетевом, транспортном, прикладном и уровне медиаданных. Когда что-то работает не так, важно не пытаться решить проблему «вслепую», а последовательно проверить каждый уровень.

Принцип диагностики:

Если верхний уровень (например, получение видеопотока) не работает — проверяйте нижележащие уровни.
Невозможно получить видео, если устройство не отвечает по сети.
Нельзя управлять камерой, если не работает сервис ONVIF.

Для удобства диагностика делится на четыре логических этапа:

  1. Проверка сетевой доступности
  2. Проверка работы ONVIF-сервисов
  3. Проверка конфигурации и параметров устройства
  4. Проверка медиапотоков и их доставки

Рассмотрим каждый этап подробно.


Этап 1: Проверка сетевой доступности

Перед тем как говорить об ONVIF, убедитесь, что устройство вообще доступно в сети.

Что проверять:

  • Физическое подключение (кабель, PoE, индикаторы на камере)
  • IP-адрес устройства (статический или DHCP)
  • Доступность по протоколу ICMP (ping)
  • Открытые порты (обычно 80, 443, 3702 для ONVIF)

Пример типичной проблемы:

Камера подключена, но не пингуется.
Возможные причины:

  • Неправильная настройка IP-адреса (например, в другой подсети)
  • Отключён DHCP-сервер
  • Блокировка на уровне коммутатора (VLAN, ACL)
  • Физическая неисправность кабеля или порта

Как проверить:

  1. Подключитесь к той же подсети, что и камера.

  2. Попробуйте пропинговать IP-адрес камеры.

  3. Используйте инструменты вроде arp-scan или nmap для поиска устройств в локальной сети:

    nmap -sn 192.168.1.0/24
  4. Если камера найдена, проверьте, какие порты открыты:

    nmap -p 80,443,3702,554 <IP-камеры>

⚠️ Важно: Если порт 3702 (WS-Discovery) закрыт, автообнаружение ONVIF работать не будет.


Этап 2: Проверка работы ONVIF-сервисов

Если устройство доступно по сети, следующий шаг — убедиться, что ONVIF-сервисы запущены и отвечают.

Что проверять:

  • Доступность ONVIF-сервисов по HTTP/HTTPS
  • Ответ на WS-Discovery (обнаружение устройств)
  • Ответ на SOAP-запросы (например, GetSystemDateAndTime)

Как проверить:

Вариант 1: Автообнаружение (WS-Discovery)

Используйте ONVIF-браузер (например, ONVIF Device Manager, ONVIF Device Tool или wsdd в Linux).

Если устройство не обнаруживается:

  • Убедитесь, что WS-Discovery включён на камере
  • Проверьте, разрешён ли multicast-трафик (239.255.255.250:3702) в сети
  • Убедитесь, что брандмауэр не блокирует UDP-порт 3702

Вариант 2: Прямой HTTP-доступ

Попробуйте открыть в браузере:

http://<IP-камеры>/onvif/device_service

Если страница не отображается:

  • Убедитесь, что веб-интерфейс камеры доступен
  • Проверьте, включена ли поддержка ONVIF в настройках камеры
  • Попробуйте HTTPS, если HTTP заблокирован

::: warn Помимо адреса камеры нужно знать порт ONVIF. Веб-интерфейс обычно располагается по стандартным портам HTTP (80) и HTTPS (443), а ONVIF может быть как на тех же портах, так и на отдельном (например, 8080, 8000, 8899, 8999 и т. д.).

:::

Вариант 3: Проверка через SOAP-запрос

Используйте инструменты вроде Postman, curl или SoapUI, чтобы отправить простой запрос:

POST /onvif/device_service HTTP/1.1
Host: <IP-камеры>
Content-Type: application/soap+xml; charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<GetSystemDateAndTime xmlns="http://www.onvif.org/ver10/device/wsdl"/>
</soap:Body>
</soap:Envelope>

Если вы получаете ответ — ONVIF-сервис работает.
Если нет — возможны проблемы с аутентификацией, сертификатами или самим сервисом.

💡 Совет: Включите логирование на камере, если возможно. Это поможет понять, доходит ли запрос до устройства.


Этап 3: Проверка конфигурации и параметров устройства

Даже если ONVIF-сервисы работают, устройство может не вести себя ожидаемо из-за неправильной конфигурации.

Что проверять:

  • Поддерживаемые профили (Profiles)
  • Наличие RTSP-URL для видеопотока
  • Аутентификация (логин/пароль)
  • Поддержка нужных сервисов (PTZ, события и т.д.)

Пример: Нет видеопотока, хотя камера отвечает

Шаги диагностики:

  1. Получите список профилей:

    <GetProfiles xmlns="http://www.onvif.org/ver10/media/wsdl"/>
  2. Убедитесь, что профиль содержит VideoEncoderConfiguration.

  3. Извлеките RTSP-URL:

    <GetStreamUri xmlns="http://www.onvif.org/ver10/media/wsdl">
    <StreamSetup>
    <Stream xmlns="http://www.onvif.org/ver10/schema">RTP-Unicast</Stream>
    <Transport xmlns="http://www.onvif.org/ver10/schema">
    <Protocol>RTSP</Protocol>
    </Transport>
    </StreamSetup>
    <ProfileToken>token_1</ProfileToken>
    </GetStreamUri>
  4. Попробуйте открыть полученный URL в VLC:

    rtsp://user:pass@<IP-камеры>:554/stream1

⚠️ Распространённая ошибка: ONVIF возвращает URL, но не проверяет, работает ли RTSP-сервер.
Камера может быть ONVIF-совместимой, но RTSP-сервис — отключён или настроен неправильно.


Этап 4: Проверка медиапотоков и их доставки

Если все предыдущие этапы пройдены, но видео не отображается — проблема, скорее всего, в медиапотоке.

Что проверять:

  • Работоспособность RTSP-сервера
  • Корректность кодека и разрешения
  • Пропускная способность сети
  • Поддержка медиаклиентом (например, VLC, браузер)

Пример: Видео «зависает» или идёт с артефактами

Возможные причины:

  • Перегрузка сети (высокий битрейт камеры)
  • Недостаточная производительность клиента
  • Несовместимость кодека (например, H.265 при отсутствии поддержки)
  • Потеря пакетов (UDP-транспорт)

Как проверить:

  1. Используйте Wireshark для анализа RTP-трафика:

    • Фильтр: rtp && ip.addr == &lt;IP-камеры&gt;
    • Проверьте, идут ли пакеты
    • Ищите потери, джиттер, нестабильность
  2. Попробуйте уменьшить битрейт или разрешение в настройках камеры.

  3. Переключитесь с UDP на TCP (если поддерживается):

    <Transport>
    <Protocol>RTSP</Protocol>
    <Tunnel xmlns="http://www.onvif.org/ver10/schema"/>
    </Transport>

💡 Практический совет: Всегда тестируйте поток сначала в VLC — это «эталонный» медиаклиент, способный работать с большинством ONVIF-камер.


Типичные проблемы и их причины

Ниже приведена таблица распространённых сценариев и возможных причин:

ПроблемаВозможная причинаКак проверить
Камера не обнаруживаетсяWS-Discovery отключён, блокировка multicastПроверить настройки камеры, использовать nmap
ONVIF-сервис не отвечаетСервис выключен, порт закрыт, HTTPS без сертификатаПроверить доступность /onvif/device_service
Ошибка аутентификацииНеверный логин/пароль, неподдерживаемый метод (Digest/UsernameToken)Проверить настройки учётных данных, включить логи
Нет видеопотокаRTSP отключён, неправильный профиль, сеть перегруженаПроверить GetStreamUri, открыть в VLC, проанализировать трафик
PTZ не работаетСервис PTZ отключён, камера не поддерживаетПроверить GetServices, GetPTZConfiguration
События не приходятПодписка не создана, сеть блокирует уведомленияПроверить CreatePullPointSubscription, PullMessages

Заключение: Алгоритм диагностики

Чтобы быстро и системно решать проблемы, используйте следующий алгоритм:

  1. Проверьте сеть — ping, порты, доступность.
  2. Проверьте ONVIF-сервис — доступность по HTTP, ответ на SOAP.
  3. Проверьте аутентификацию — логин/пароль, метод, права.
  4. Проверьте профили и параметры — есть ли поток, какой URL.
  5. Проверьте медиапоток — открыть в VLC, проанализировать трафик.

🛠️ Ключевой принцип:
ONVIF — это управляющий слой, а не транспорт видео.
Он помогает найти камеру, получить настройки и управлять ею, но видео передаётся по другим протоколам (RTSP/RTP).
Поэтому диагностика всегда включает два мира: управление (ONVIF) и данные (медиа).

Следуя этому подходу, вы сможете быстро локализовать и устранить большинство проблем в ONVIF-системах.