Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

ONVIF_RTSP_404_NOT_FOUND IP-Телефония и СКУД

ONVIF Ошибка GetStreamUri: устройство возвращает 404 на RTSP-поток

Обновлено: 24.08.2026 · Официальная документация ↗
  • Метод GetStreamUri возвращает URI, но при попытке подключения медиаплеера или VMS сервер RTSP возвращает статус RTSP/1.0 404 Not Found или 404 Stream Not Found.
  • Видеопоток с камеры не открывается в приложениях реального времени.
  • Проблема возникает избирательно для дополнительного субпотока (Sub Stream).

1. Причины возврата 404 на запрос RTSP

Ошибка 404 Not Found генерируется встроенным медиа-сервером (RTSP-демоном) камеры в следующих ситуациях:

  • В запросе GetStreamUri передан токен профиля (ProfileToken), для которого отключен энкодер видео;
  • Камера сгенерировала некорректный внутренний путь к RTSP-треку (например, rtsp://192.168.1.50/Streaming/Channels/102 при выключенном втором потоке);
  • Несоответствие IP-адреса в возвращенном URI реальному адресу за NAT (возврат внутреннего адреса 127.0.0.1 или 0.0.0.0);
  • Аварийное падение RTSP-сервера (rtspd) на камере из-за утечки дескрипторов сокетов.

2. Получение корректного RTSP URI через SOAP

Отправьте запрос к сервису Media с явным указанием транспортного протокола (TCP/RTP):

<soapenv:Body>
  <trt:GetStreamUri xmlns:trt="http://www.onvif.org/ver10/media/wsdl">
    <trt:StreamSetup>
      <tt:Stream xmlns:tt="http://www.onvif.org/ver10/schema">RTP-Unicast</tt:Stream>
      <tt:Transport xmlns:tt="http://www.onvif.org/ver10/schema">
        <tt:Protocol>TCP</tt:Protocol>
      </tt:Transport>
    </trt:StreamSetup>
    <trt:ProfileToken>ProfileToken_1</trt:ProfileToken>
  </trt:GetStreamUri>
</soapenv:Body>

3. Прямая проверка RTSP через FFplay / VLC

Проверьте прямую отдачу потока в обход ONVIF-стека:

# Тестирование основного потока по TCP
ffplay -rtsp_transport tcp "rtsp://admin:password@192.168.1.50:554/Streaming/Channels/101"

# Тестирование дополнительного субпотока
ffplay -rtsp_transport tcp "rtsp://admin:password@192.168.1.50:554/Streaming/Channels/102"

4. Исправление конфигурации потоков на камере

  1. Войдите в веб-интерфейс камеры: Configuration -> Video/Audio;
  2. Переключитесь на Sub-Stream и убедитесь, что стоит флаг Enable Sub-Stream;
  3. Если используется RTSP поверх нестандартного порта (например, 10554), измените порт в веб-интерфейсе и перезагрузите камеру.
💡 Практика специалистов: Если камера возвращает 404 только при обращении по RTSP через ONVIF, но открывает видео в собственном ActiveX/WebAssembly интерфейсе — проверьте, включена ли опция 'ONVIF Authentication' в меню 'Security Service' камеры.

Частые вопросы (FAQ)

Почему GetStreamUri возвращает URI с IP-адресом 0.0.0.0?

Некоторые прошивки возвращают относительный URI или шаблон 0.0.0.0. Клиентское ПО обязано автоматически подставить реальный IP-адрес хоста, к которому выполнялся SOAP-запрос.

Что делать, если камера находится за NAT маршрутизатора?

Настройте проброс портов HTTP и RTSP на разные внешние порты и активируйте в камере опцию 'NAT / UPnP Mapping', указав внешний белый IP-адрес.

Почему 404 возникает только после изменения разрешения потока?

При смене разрешения RTSP-сервер камеры перезапускается. Если клиент пытается подключиться мгновенно, поток еще не инициализирован и возвращает 404.

Как авторизоваться в RTSP, если пароль содержит спецсимволы (@, :, /)?

Спецсимволы в строке URL должны быть закодированы по стандарту URL Percent-Encoding (например, '@' заменяется на '%40').

Полезные материалы
Рекомендуем