Skip to content

Устранение неполадок стриминга, WebRTC и HLS ​

В данном руководстве описаны способы диагностики и решения проблем с воспроизведением live-видео, согласованием WebRTC WHEP, буферизацией HLS и ошибками браузерных декодеров.


1. WebRTC / WHEP: Ошибка согласования ICE (Connection Failed) ​

Если в веб-плеере отображается бесконечная загрузка или ошибка ICE failed:

Причины и пошаговые решения: ​

ПричинаИндикатор в логах/консолиРешение
Не указан public_ipКлиент получает только локальный IP (10.x.x.x или 172.x.x.x)Укажите ваш внешний IP: webrtc.public_ip: "ВНЕШНИЙ_IP" в config.yaml.
Закрыт диапазон UDPВ консоли браузера статус ICE failed через 5–10 секундОткройте диапазон портов UDP 50000-50100 в фаерволе и Security Group облачного провайдера.
Незащищённое HTTP соединениеБраузер блокирует WebRTC APIБраузеры требуют контекст HTTPS для WebRTC. Настройте SSL-сертификаты.
Симметричный NATОшибка возникает только у клиентов через мобильный интернет / корпоративный Wi-FiНастройте TURN-сервер в секции webrtc.turn_servers в config.yaml.

2. HLS: Бесконечная буферизация или чёрный экран ​

Причина A: Кодек H.265 (HEVC) в неподдерживаемых браузерах ​

  • Симптом: Звук воспроизводится, но видео остаётся чёрным или появляется ошибка декодера.
  • Объяснение: Браузеры Chrome и Firefox требуют аппаратной поддержки и WebCodecs для H.265. Safari на macOS/iOS поддерживает H.265 в HLS нативно.
  • Решение: Для универсальной совместимости со всеми браузерами переключите видеопоток камеры на кодек H.264.

Причина B: Отсутствие параметров кодека SPS / PPS ​

  • При подключении клиента в середине трансляции Кольцевой буфер (Ring Buffer) атомарно кеширует параметры CodecParams и подставляет их перед ключевым кадром.
  • Убедитесь, что камера регулярно отправляет ключевые кадры (GOP 1-2 секунды).

3. Рассинхронизация звука и видео ​

Если аудио отстаёт или опережает видео при просмотре:

  1. Джиттер меток времени камеры: Некоторые камеры при перегрузке процессора передают нестабильные PTS-метки звука.
  2. Формат аудио: Убедитесь, что звук кодируется в AAC (48 кГц или 44.1 кГц). Избегайте устаревших кодеков G.726.

Связанная документация ​

Released under the MIT License.