Исправление неверного запроса RTSP 400: ошибка DESCRIBE, неверный URL-адрес камеры и ошибки заголовка

Исправьте неверный запрос RTSP 400 на DESCRIBE. Охватывает неверные URL-адреса камер для Axis/Dahua/Hikvision, неподдерживаемые заголовки, проблемы с обратным прокси-сервером, аутентификацию и пути потоков, зависящие от поставщика, с реальными диагностическими командами.

rtsp 400 неверный запрос, описать не удалось, URL-адрес камеры, устранение неполадок ip-камеры, rtsp-диагностика, неверный URL-адрес RTSP

«RTSP/1.0 400 Bad Request» означает, что камера отклонила ваш запрос RTSP как неверный. Это не проблема сети. Это не проблема кодека. Это проблема формата запроса, и ее можно исправить, как только вы увидите точный запрос, полученный камерой.

Быстрый ответ: 30-секундная сортировка

  1. Сначала протестируйте с помощью VLC. Если VLC работает, запишите точный запрос RTSP, который он отправляет. Сравните с вашим неудачливым клиентом.
  2. Проверьте URL-адрес. Разные камеры используют совершенно разные пути для одного и того же потока RTSP. Копирование URL-адреса камеры одной марки на другую является причиной №1 400 ошибок.
  3. Check URL encoding. Special characters in passwords break RTSP URL parsing. Encode @ as %40, : as %3A, / as %2F.
  4. Проверьте наличие помех прокси. Прямой RTSP к камере работает, но через прокси возвращает 400? Прокси изменяет заголовки RTSP.

Если ничего из этого не помогло, прочитайте подробные разделы ниже.

Сначала убедитесь, что камера доступна.

Перед отладкой RTSP подтвердите базовое подключение:

# TCP reachability
nc -zv 192.168.1.100 554

# Or with telnet
telnet 192.168.1.100 554

# RTSP OPTIONS — the simplest RTSP request
# If this fails, the camera isn't speaking RTSP

Camera-specific URL formats

Axis

rtsp://<ip>/axis-media/media.amp
rtsp://<ip>/mpeg4/media.amp
rtsp://<ip>:554/axis-media/media.amp?videocodec=h264

Dahua

rtsp://<user>:<pass>@<ip>:554/cam/realmonitor?channel=1&subtype=0
rtsp://<user>:<pass>@<ip>:554/cam/realmonitor?channel=1&subtype=1
  • subtype=0: main stream
  • subtype=1: sub stream

Generic / ONVIF

rtsp://<ip>:554/stream1
rtsp://<ip>:554/live
rtsp://<ip>:554/h264
rtsp://<ip>:554/h265
rtsp://<ip>:554/profile1/media.smp
rtsp://<ip>/onvif1
rtsp://<ip>/onvif2

Testing with ffmpeg

# Test DESCRIBE only (don't decode)
ffmpeg -rtsp_transport tcp -i "rtsp://user:pass@192.168.1.100:554/stream1" -t 1 -f null -

# Подробный вывод показывает точный обмен RTSP.
ffmpeg -loglevel debug -rtsp_transport tcp -i "rtsp://..." -t 1 -f null - 2>&1 | grep -E "ОПИСАНИЕ|НАСТРОЙКА|ответ"

Кодирование URL: тихий триггер 400

WRONG: rtsp://admin:pa@ss@192.168.1.100/stream1
       parser sees: user=admin, pass=pa, host=ss@192.168.1.100

RIGHT:  rtsp://admin:pa%40ss@192.168.1.100/stream1
       parser sees: user=admin, pass=pa@ss, host=192.168.1.100

Full diagnostic decision tree

RTSP returns 400 Bad Request
│
├─ Is port 554 reachable?
│  ├─ NO → Fix network/firewall. Not an RTSP issue.
│  └─ YES → Continue
│
├─ Does VLC play the same URL?
│  ├─ YES, VLC works → Capture VLC's exact request. Compare with your client.
│  │   Differences in headers, URI format, or auth will point to the fix.
│  └─ NO, VLC also fails → Problem is in the URL or camera config
│
├─ Check the URL path
│  ├─ Wrong manufacturer format → Use correct format for your camera brand
│  ├─ Query parameters missing → Add required parameters (channel, subtype)
│  └─ Path contains unencoded special chars → URL-encode credentials
│
├─ Check DESCRIBE headers
│  ├─ Missing Accept: application/sdp → Add it
│  ├─ Extra HTTP headers (via proxy) → Remove proxy from RTSP path
│  └─ Malformed Authorization → Fix Digest auth parameters
│
├─ Check CSeq and RTSP syntax
│  ├─ Missing CSeq → Add sequential CSeq header
│  ├─ Wrong RTSP version → Use RTSP/1.0
│  └─ CRLF formatting wrong → Ensure \r\n line endings
│
└─ Still failing?
   ├─ Try ONVIF discovery to get the correct RTSP URL
   ├─ Check camera firmware version (older firmware may have stricter parsing)
   └─ Test with a known-working RTSP client as baseline

Обратный прокси: скрытая причина 400

RTSP через обратный прокси-сервер HTTP ненадежен. Прокси, разработанные для HTTP, могут:

  1. Внедрить заголовки, специфичные для HTTP (Host, X-Forwarded-For, User-Agent)
  2. Перепишите URI запроса.
  3. Буферизация и изменение поведения TCP-соединения
  4. Вмешиваться в модель постоянного соединения RTSP.

Симптомы вмешательства прокси:

  • Прямой RTSP на камеру: работает
  • RTSP через прокси: 400 неверных запросов
  • В журналах камеры отображается «неверный запрос» с дополнительными заголовками, отсутствующими в прямом потоке.

Исправление: либо обойдите прокси-сервер для трафика RTSP, либо используйте прокси-сервер с поддержкой RTSP, либо настройте прокси-сервер для передачи трафика RTSP без изменений.

Пограничные случаи аутентификации

Большинство проблем с аутентификацией возвращают 401, но неверный заголовок авторизации может возвращать 400.

Шаблон «работает с первой попытки, при повторной попытке происходит сбой»:

  1. Клиент отправляет DESCRIBE без аутентификации
  2. Камера возвращает 401 с вызовом Digest (область, nonce)
  3. Клиент вычисляет дайджест-ответ
  4. Клиент отправляет аутентифицированный DESCRIBE с заголовком авторизации.
  5. Камера возвращает 400

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

Проверка. Сравните URI запроса в заголовке авторизации с фактическим URI запроса в сети. При дайджест-аутентификации URI является частью хеша — если они не совпадают посимвольно (включая кодировку), ответ недействителен.

Когда камера просто сломана

Некоторые камеры имеют некорректную реализацию RTSP. Если вы проверили все вышеперечисленное и все равно получили 400:

  1. Проверьте наличие обновлений прошивки
  2. Протестируйте с помощью собственного клиентского программного обеспечения производителя.
  3. Попробуйте ONVIF в качестве альтернативного пути обнаружения и потоковой передачи.
  4. Если камера работает со своим собственным приложением, но не с RTSP-клиентами, совместимыми со стандартами, стек RTSP камеры не соответствует требованиям.

Сообщите об ошибке поставщику камеры. Включите точный запрос и ответ RTSP DESCRIBE. Правильная реализация RTSP не должна возвращать 400 для действительного, правильно сформированного запроса независимо от пути URL — она должна возвращать 404.

<!-- rtsp-localized-evidence-foundation-v1:start -->

Воспроизводимая проверка темы «Исправление неверного запроса RTSP 400: ошибка DESCRIBE, неверный URL-адрес камеры и ошибки заголовка»

Краткий ответ: чёрный экран или одиночный код не доказывает источник сбоя. Надёжная диагностика связывает запрос и ответ RTSP, согласованный Transport, действующую Session, а затем номера последовательности RTP, временные метки и данные RTCP. Для «Исправление неверного запроса RTSP 400: ошибка DESCRIBE, неверный URL-адрес камеры и ошибки заголовка» начните с уровня, ближайшего к симптому, но сохраняйте единую временную шкалу, чтобы не смешать управление, сеть и декодирование.

До изменения камеры, межсетевого экрана или VMS создайте небольшой базовый тест. Запишите RTSP URL без пароля, время, путь, запрошенный Transport, ответ сервера и момент первого медиапакета. Проверяйте UDP и TCP interleaved отдельно, если устройство поддерживает оба режима. Не меняйте одновременно путь, учётные данные и транспорт: иначе успешная вторая попытка не покажет решающую переменную.

Уровень Сохраняемое доказательство Вопрос
RTSP метод, статус, заголовки, CSeq и Session Сервер принял именно эту операцию?
SDP control, payload type, clock rate и codec Описана ожидаемая дорожка?
Transport client_port, server_port или interleaved Обе стороны используют один канал?
RTP SSRC, sequence, timestamp и marker Медиаданные идут в объяснимом порядке?
RTCP sender report, CNAME и BYE Часы, идентичность и конец прослеживаются?
Decoder SPS/PPS/VPS и packetization mode Полученный payload позволяет инициализацию?

Разделяйте «медиа не пришло» и «медиа пришло, но не декодируется». Отсутствие RTP после успешных SETUP и PLAY ведёт к проверке UDP, NAT, firewall и ответа Transport. Пробелы последовательности доказывают потерю или перестановку. Непрерывный RTP без изображения переводит расследование к payload type, clock rate, границам кадра и параметрам H.264 или H.265. Эта граница полезнее общего сообщения проигрывателя.

Как написать цитируемый ответ?

Используйте три предложения: последняя успешная операция, первое отсутствующее доказательство и следующий разделяющий тест. Пример: «DESCRIBE, SETUP и PLAY успешны; RTP не приходит на объявленные порты клиента; проверка TCP interleaved отделит блокировку UDP от неверного медиапути». Не обвиняйте камеру или сеть без ответа либо пакета, подтверждающего границу.

Что делает случай воспроизводимым?

Сохраните OPTIONS, DESCRIBE, SETUP и PLAY, SDP, ответ Transport и очищенный Session. Для RTP запишите SSRC, первый и последний sequence, clock rate, число пробелов и длительность. Результат VLC или другой VMS используйте как дифференциальный тест, а не как доказательство правильной реализации всех правил успешным клиентом.

Когда проверять сервер или клиент?

Проверяйте сервер при отказе метода, несуществующем control URL, несовместимом Transport или необъяснимой смене SSRC или часов. Проверяйте клиент при повторном старом nonce, потере Session, запросе UDP без открытых портов или трактовке каждого конца NAL как конца access unit. Для промежуточной неисправности каждому выводу нужны пакет и время.

Как проверить отчёт?

Повторите тест с нового соединения и сравните временные шкалы до первого отличия. Удалите пароли и полные Authorization. Свяжите выводы с CSeq, sequence или timestamp. Используйте связанный справочник RTSP, а RTSP Inspector — для локальной проверки RTSP-потока и сбора доказательств без загрузки видео в публичный сервис.

Добавьте явный критерий приёмки. На том же URL и с теми же учётными данными управляющие запросы должны завершиться ожидаемыми статусами, RTP — непрерывно идти по выбранному Transport, а после нужных параметров кодека должен восстановиться реальный кадр. Смена Session или SSRC после нового подключения сама по себе не является ошибкой; не объединяйте пакеты старой и новой сессии. Оставшуюся неопределённость формулируйте как непроверенный порт, трек, интервал времени или условие декодера, а не как общий «сбой камеры».

<!-- rtsp-localized-evidence-foundation-v1:end --><!-- multilingual-blog-closeout:start -->

Прямой ответ и граница приемки

Краткий ответ по теме «Исправление неверного запроса RTSP 400: ошибка DESCRIBE, неверный URL-адрес камеры и ошибки заголовка»: Исправьте неверный запрос RTSP 400 на DESCRIBE. Охватывает неверные URL-адреса камер для Axis/Dahua/Hikvision, неподдерживаемые заголовки, проблемы с обратным прокси-сервером, аутентификацию и пути потоков, зависящие от поставщика, с реальными диагностическими командами. Считайте это проверяемым результатом, а не обещанием для любого входа, устройства, проекта или окружения. Полный результат фиксирует исходное состояние, точное действие, видимый выход и условие, подтверждающее завершение задачи в RTSP Inspector.

Порядок работы от доказательств

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

Контрольная точка 1: Исправление неверного запроса RTSP 400: ошибка DESCRIBE, неверный URL-адрес камеры и ошибк

Для «Исправление неверного запроса RTSP 400: ошибка DESCRIBE, неверный URL-адрес камеры и ошибки заголовка» отделите решение продукта от границы системы, оборудования, исходного файла, прав или процесса. Установите, какой слой дал доказательство, прежде чем назначать причину. Так соседний симптом не станет якобы доказанной первопричиной.

Контрольная точка 2: Исправьте неверный запрос RTSP 400 на DESCRIBE. Охватывает неверные URL-адреса камер для A

Закрывайте «Исправьте неверный запрос RTSP 400 на DESCRIBE. Охватывает неверные URL-адреса камер для Axis/Dahua/Hikvision, неподдерживаемые заголовки, проблемы с » только когда сохраненный, экспортированный или повторно открытый результат соответствует наблюдению. Временный отклик интерфейса полезен, но долговечное доказательство сильнее. Запишите оставшиеся ограничения.

Контрольная точка 3: Быстрый ответ: 30-секундная сортировка

Для «Быстрый ответ: 30-секундная сортировка» отделите решение продукта от границы системы, оборудования, исходного файла, прав или процесса. Установите, какой слой дал доказательство, прежде чем назначать причину. Так соседний симптом не станет якобы доказанной первопричиной.

Контрольная точка 4: Сначала убедитесь, что камера доступна.

Закрывайте «Сначала убедитесь, что камера доступна.» только когда сохраненный, экспортированный или повторно открытый результат соответствует наблюдению. Временный отклик интерфейса полезен, но долговечное доказательство сильнее. Запишите оставшиеся ограничения.

Контрольная точка 5: Camera-specific URL formats

Для «Camera-specific URL formats» отделите решение продукта от границы системы, оборудования, исходного файла, прав или процесса. Установите, какой слой дал доказательство, прежде чем назначать причину. Так соседний симптом не станет якобы доказанной первопричиной.

Контрольная точка 6: Axis

Закрывайте «Axis» только когда сохраненный, экспортированный или повторно открытый результат соответствует наблюдению. Временный отклик интерфейса полезен, но долговечное доказательство сильнее. Запишите оставшиеся ограничения.

Контрольная точка 7: Dahua

Для «Dahua» отделите решение продукта от границы системы, оборудования, исходного файла, прав или процесса. Установите, какой слой дал доказательство, прежде чем назначать причину. Так соседний симптом не станет якобы доказанной первопричиной.

Контрольная точка 8: Generic / ONVIF

Закрывайте «Generic / ONVIF» только когда сохраненный, экспортированный или повторно открытый результат соответствует наблюдению. Временный отклик интерфейса полезен, но долговечное доказательство сильнее. Запишите оставшиеся ограничения.

Контрольная точка 9: Testing with ffmpeg

Для «Testing with ffmpeg» отделите решение продукта от границы системы, оборудования, исходного файла, прав или процесса. Установите, какой слой дал доказательство, прежде чем назначать причину. Так соседний симптом не станет якобы доказанной первопричиной.

Контрольная точка 10: Кодирование URL: тихий триггер 400

Закрывайте «Кодирование URL: тихий триггер 400» только когда сохраненный, экспортированный или повторно открытый результат соответствует наблюдению. Временный отклик интерфейса полезен, но долговечное доказательство сильнее. Запишите оставшиеся ограничения.

Матрица приемки

Точка Сохраняемое доказательство Критерий успеха
Исправление неверного запроса RTSP 400: ошибка DESCRIBE, неверный URL-адрес камеры и ошибки заголовка Исходное состояние, одно действие и результат Второй оператор воспроизводит заявленный результат
Исправьте неверный запрос RTSP 400 на DESCRIBE. Охватывает неверные URL-адреса камер для Axis/Dahua/Hikvision, неподдерж Исходное состояние, одно действие и результат Второй оператор воспроизводит заявленный результат
Быстрый ответ: 30-секундная сортировка Исходное состояние, одно действие и результат Второй оператор воспроизводит заявленный результат
Сначала убедитесь, что камера доступна. Исходное состояние, одно действие и результат Второй оператор воспроизводит заявленный результат
Camera-specific URL formats Исходное состояние, одно действие и результат Второй оператор воспроизводит заявленный результат
Axis Исходное состояние, одно действие и результат Второй оператор воспроизводит заявленный результат

Изоляция, восстановление и передача

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

Отличайте отсутствие доказательств от доказательства отсутствия. Пустой экран может означать неверный вход, область, фильтр, права, устройство, период или состояние проекта. Подтвердите получение или импорт до толкования decoder, редактора, отчета или экспорта.

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

Вопросы и ответы

Как надежнее всего начать?

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

Какие доказательства сохранять?

Сохраните идентификатор входа, версию, платформу, настройки, точное действие, первый неожиданный переход и конечный выход. Закройте и повторно откройте проект, сеанс, отчет или экспорт.

Когда повторять процедуру?

После значимого изменения приложения, системы, драйвера, прошивки, модели, источника или процесса. Сохраните предыдущий принятый случай как неизменную основу сравнения.

Когда результат готов к передаче?

Когда другой уполномоченный человек определяет вход, повторяет действие, видит тот же результат, понимает ограничения и открывает артефакт без недокументированного локального состояния.

Связанные руководства

Эти страницы на том же языке описывают соседние этапы, не меняя канонического владельца темы:

<!-- multilingual-blog-closeout:end -->