Задержка RTSP-потока: причины и как уменьшить

Почему видео с камеры идёт с задержкой 5-30 секунд. Как уменьшить latency RTSP: настройки камеры, кодеков, буфера и протоколов.

Проблема RTSP.KZ 🔧 Работает

Откуда берётся задержка RTSP?

Типичная задержка RTSP-камеры: 0.5-2 секунды при прямом подключении (VLC), 5-15 секунд при конвертации в HLS. Если задержка больше — проблема в настройках.

Этапы, добавляющие задержку:

  1. Камера (кодирование): 50-200 мс — зависит от кодека и процессора камеры
  2. Сеть (передача): 10-100 мс — зависит от расстояния и качества канала
  3. Буфер клиента (VLC): 500-3000 мс — VLC по умолчанию буферизует 1-3 секунды
  4. Конвертация HLS: 2000-10000 мс — HLS нарезает видео на сегменты (2-10 сек каждый)

Как уменьшить задержку

1. Уменьшите буфер VLC

VLC → Инструменты → Настройки → Показать все → Ввод/Кодеки:

Кеширование сети: 200 мс (вместо 1000) Кеширование файлов: 200 мс

Или из командной строки:

vlc --network-caching=200 rtsp://admin:pass@ip/stream

2. Используйте TCP вместо UDP

UDP быстрее, но при потерях пакетов даёт артефакты. TCP надёжнее, а задержка при этом минимальна:

ffplay -rtsp_transport tcp rtsp://admin:pass@ip/stream

3. Переключите кодек на H.264 Baseline

H.264 Baseline Profile кодируется и декодируется быстрее, чем High Profile или H.265. В настройках камеры: Видео → Кодек → H.264, Профиль → Baseline.

4. Уменьшите GOP (I-frame interval)

GOP (Group of Pictures) — расстояние между ключевыми кадрами. По умолчанию 50-100 кадров (2-4 сек). Уменьшите до 25 (1 сек) — снизит задержку, но увеличит битрейт.

5. Используйте субпоток

Субпоток (Sub Stream) — пониженное разрешение (CIF/D1/720p). Меньше данных = меньше задержка. Особенно важно при медленном интернете.

6. Low-Latency HLS (LL-HLS)

Стандартный HLS: сегменты 6 сек, 3 сегмента в плейлисте = 18 сек задержка. LL-HLS: partial segments 200-500 мс, задержка 2-3 сек. RTSP.KZ использует оптимизированный HLS с минимальной задержкой.

Часто задаваемые вопросы

Какая нормальная задержка RTSP?

Прямое подключение (VLC/FFplay): 0.5-2 секунды. Через HLS (браузер): 3-5 секунд при оптимальных настройках, 10-15 секунд при стандартных. Для видеонаблюдения 3-5 секунд — приемлемо.

Почему VLC показывает камеру с задержкой 5 секунд?

VLC по умолчанию буферизует 1000 мс сетевого кеша. Уменьшите: Инструменты → Настройки → Все → Ввод/Кодеки → Кеширование сети → 200 мс. Также проверьте, что камера отдаёт H.264, а не H.265.

Как добиться задержки менее 1 секунды?

Используйте WebRTC вместо HLS: Janus Gateway или Ant Media Server. Или подключайтесь напрямую через VLC/FFplay с минимальным буфером (--network-caching=100).

H.265 добавляет задержку?

Да, H.265 (HEVC) требует больше ресурсов на кодирование/декодирование. Задержка может быть на 100-500 мс больше, чем H.264. Если задержка критична — используйте H.264 Baseline.

Другие решения

Устали от проблем с RTSP?

RTSP.KZ берёт на себя конвертацию, транскодирование и доставку видео. Просто вставьте RTSP-ссылку — смотрите в браузере.

Попробовать бесплатно