Диагностика потока камеры RTSP: систематический рабочий процесс устранения неполадок от описания до воспроизведения

Проблемы с камерой RTSP обычно следуют шаблону: уровень подключения, уровень управления или уровень мультимедиа. Этот рабочий процесс диагностики показывает, какие доказательства необходимо собрать, на каком этапе протокола произошел сбой и как читать SDP, RTP и RTCP, чтобы точно определить причину сбоя.

Диагностика RTSP, устранение неполадок, поток камеры, ОПИСАНИЕ, НАСТРОЙКА, RTP

Сбои RTSP-камеры не требуют догадок. Протокол является многоуровневым: "соединение (TCP/TLS), управление (DESCRIBE/SETUP/PLAY) и медиа (RTP/RTCP). Когда поток прерывается, проблема возникает в одном из этих слоев. Ваша задача — найти какой именно."

Трехслойная модель

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

Уровень 1 — Соединение: Может ли клиент вообще добраться до камеры? TCP-квитирование, согласование TLS, фильтрация портов, маршрутизация VPN. Если telnet camera-ip 554 не подключается, все остальное не имеет значения.

Уровень 2 — Управление: Соединение работает, но команды RTSP не выполняются. DESCRIBE возвращает 400/404/401. SETUP возвращает 461. PLAY возвращает 453. На плоскости управления есть проблемы на уровне протокола: формат URL-адреса, аутентификация, согласование транспорта, управление сеансом.

Уровень 3 — Медиа: Управление работает отлично, но видео/аудио не работает. Пакеты RTP приходят, но не могут быть декодированы. Временные метки смещаются. Рамки повреждены. RTCP сообщает о потере. В медиаплоскости имеются проблемы с полезной нагрузкой, кодеком или качеством сети.

Таблица быстрой сортировки

Symptom Вероятный слой Сначала проверьте
"В соединении отказано" Слой 1 Порт 554 доступен? Брандмауэр блокирует?
400 Неверный запрос на DESCRIBE Слой 2 Формат URL-адреса RTSP, кодировка, заголовки прокси-сервера
401 Несанкционированный Слой 2 Дайджест параметров аутентификации, имя пользователя/пароль
461 Неподдерживаемый транспорт Слой 2 UDP против TCP-транспорта, заголовок SETUP
ОПИСАНИЕ ОК, НАСТРОЙКА ОК, видео нет Слой 3 Тип полезной нагрузки RTP, сопоставление кодеков
Видео воспроизводится, а затем зависает Слой 3 Потеря пакетов, поддержка активности, тайм-аут сеанса
Аудио и видео расходятся Слой 3 Временная метка RTP, несоответствие тактовой частоты

Доказательства, которые вы должны собрать

Прежде чем диагностировать любую проблему RTSP, соберите эти пять доказательств:

  1. Полный ответ DESCRIBE — SDP сообщает вам, какие дорожки существуют, какие кодеки используются и какие типы полезных данных назначены.
  2. Запрос и ответ SETUP — заголовок транспорта показывает UDP и TCP, клиентские порты и идентификаторы чередующихся каналов.
  3. Ответ PLAY — подтверждает, что сеанс активен и RTP передается.
  4. Образцы пакетов RTP — байт типа полезной нагрузки, порядковые номера, временные метки, SSRC.
  5. Отчеты отправителя/получателя RTCP — количество потерь пакетов, дрожание, задержка между поступлениями.

Без этого, как вы думаете. С ними провал обычно очевиден.

Подробные руководства по ошибкам

Когда следует обострять ситуацию

Если все три уровня проверены — TCP подключается, команды RTSP выполняются успешно, пакеты RTP поступают с правильными типами полезной нагрузки и стабильными временными метками — но видео по-прежнему выглядит неправильно, проблема, вероятно, заключается в декодере или уровне приложения, а не в транспорте RTSP. На этом этапе запишите короткий PCAP, экспортируйте несколько секунд RTP и передайте его команде декодера.