ВЕБ-КАМЕРЫ ОНЛАЙН

Как работают камеры онлайн: HLS, RTSP, WebRTC и почему у трансляций есть задержка

Простыми словами о технологиях онлайн-трансляций с камер: RTSP, HLS, MJPEG, WebRTC, ONVIF. Откуда берётся задержка…

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

Путь видео от объектива до браузера

  1. Камера. Матрица снимает кадры, процессор камеры сжимает их кодеком (чаще всего H.264, всё чаще H.265).
  2. Передача в сеть. Камера отдаёт поток по протоколу (RTSP, RTMP, HTTP), либо отправляет его на сервер сама.
  3. Сервер или облако. Видеосервер принимает поток и преобразует его в формат, который понимают браузеры, часто — HLS.
  4. Доставка. Файлы потока раздаёт веб-сервер или CDN, чтобы выдержать много зрителей.
  5. Плеер. Страница получает фрагменты, декодирует их и показывает кадры.

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

RTSP: язык камер

RTSP (Real-Time Streaming Protocol) — стандартный способ получить видео напрямую с IP-камеры или видеорегистратора. Адрес выглядит как rtsp://адрес:554/путь, по умолчанию используется порт 554. Протокол отлично подходит для локальной сети и систем видеонаблюдения, но у него есть важное ограничение: браузеры не умеют воспроизводить RTSP. Поэтому для показа на сайте поток нужно преобразовать — например, сервером в HLS или WebRTC.

Ещё одна особенность: адрес RTSP содержит логин и пароль камеры или привязан к её внутреннему адресу. Открывать камеру в интернет напрямую небезопасно, поэтому публичные трансляции делают через промежуточные серверы.

HLS: стандарт для сайтов

HLS (HTTP Live Streaming) разбивает видео на небольшие файлы по несколько секунд и публикует список этих файлов — плейлист с расширением .m3u8. Плеер скачивает плейлист, затем фрагменты один за другим. Для сайта у HLS много плюсов: он работает через обычный веб-сервер, кэшируется в CDN, поддерживает адаптивное качество (плеер подстраивается под скорость интернета) и воспроизводится на телефонах и компьютерах — нативно в Safari и через библиотеки (например, hls.js) в других браузерах.

Цена удобства — задержка. Плеер обычно ждёт несколько фрагментов, прежде чем начать показ, поэтому типичная задержка классического HLS — порядка 10–30 секунд и зависит от длины фрагментов и настроек. Режимы с низкой задержкой (LL-HLS) сокращают её до нескольких секунд, но требуют более сложной инфраструктуры.

WebRTC: минимальная задержка

WebRTC создан для видеозвонков и обеспечивает задержку меньше секунды. Его используют, когда важна быстрая реакция: например, для двусторонней связи. Для массовых публичных трансляций он дороже, потому что каждому зрителю нужно отдельное соединение, поэтому на сайтах с тысячами зрителей применяют HLS.

MJPEG и обновляемые снимки

Старые и простые камеры могут отдавать MJPEG — последовательность отдельных JPEG-кадров — или просто статичную картинку, которую страница перезагружает каждые несколько секунд. Качество и плавность невысоки, зато такой способ работает везде и очень мало нагружает канал. Многие погодные и дорожные камеры до сих пор показывают именно кадр раз в 10–60 секунд.

ONVIF: как камеры «понимают» друг друга

ONVIF — отраслевой стандарт, который описывает, как IP-камеры, регистраторы и программы просмотра находят друг друга, получают список потоков и управляют поворотом. Благодаря ему камеры разных производителей можно подключить к одному ПО. Для зрителя публичной трансляции ONVIF не заметен, но именно он делает возможным единый городской портал наблюдения из разных устройств.

Сравнение технологий

ТехнологияГде работаетЗадержкаДля чего
RTSPКамеры, регистраторы, приложения (не браузер)Секунда или меньше в локальной сетиВидеонаблюдение
HLSБраузеры, телефоны, Smart TVОт нескольких секунд до десятков секундПубличные трансляции
WebRTCСовременные браузерыМеньше секундыЗвонки, интерактив
MJPEG / снимкиЛюбой браузерСекунды–минуты (обновление кадра)Простые камеры, погода

Почему трансляция может быть недоступна на нашем сайте

Чтобы показать чужую камеру на странице, нужно, чтобы оператор разрешил встраивание или публично открыл поток. Бывает три ситуации:

Именно поэтому в карточке камеры всегда есть ссылка на источник. Если трансляция не открывается, смотрите причины в статье «Как смотреть веб-камеры онлайн бесплатно».

Почему поток «зависает»

Что полезно знать владельцу камеры

Если вы планируете выставить собственную камеру в интернет, не открывайте её порты напрямую: IP-камеры с заводскими паролями — частая цель взлома. Безопаснее использовать облачный сервис или отдельный видеосервер, сменить пароль по умолчанию и обновить прошивку. Подробнее о рисках — в статье «Можно ли смотреть чужие камеры онлайн». Статья про подключение камеры к сервису Ivideon и тарифы есть в архиве сайта: «Какие видеокамеры можно подключить к сервису Ivideon».

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

Почему браузер не воспроизводит RTSP?

Браузеры не поддерживают протокол RTSP напрямую. Для показа на сайте поток преобразуют в HLS или WebRTC на сервере.

Что такое HLS?

Это технология потокового видео по HTTP: поток разбит на короткие фрагменты и плейлист .m3u8. Работает на телефонах, компьютерах и Smart TV.

Почему у трансляции есть задержка?

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

Что быстрее — WebRTC или HLS?

WebRTC обеспечивает задержку меньше секунды, HLS — больше, но проще масштабируется на большое число зрителей.

Что такое ONVIF?

Стандарт совместимости IP-камер и регистраторов разных производителей: поиск устройств, получение потоков, управление.