ВЕБ-КАМЕРЫ ОНЛАЙН
Как работают камеры онлайн: HLS, RTSP, WebRTC и почему у трансляций есть задержка
Простыми словами о технологиях онлайн-трансляций с камер: RTSP, HLS, MJPEG, WebRTC, ONVIF. Откуда берётся задержка…
Когда вы нажимаете «Смотреть камеру», в браузере запускается видео с устройства, которое может стоять за тысячи километров. Путь картинки от объектива до экрана проходит через кодирование, сервер, сеть доставки и плеер. Понимание этого пути объясняет, почему у трансляций бывает задержка, почему одни камеры идут плавно, а другие обновляются кадром, и почему не все потоки можно показать на сайте.
Путь видео от объектива до браузера
- Камера. Матрица снимает кадры, процессор камеры сжимает их кодеком (чаще всего H.264, всё чаще H.265).
- Передача в сеть. Камера отдаёт поток по протоколу (RTSP, RTMP, HTTP), либо отправляет его на сервер сама.
- Сервер или облако. Видеосервер принимает поток и преобразует его в формат, который понимают браузеры, часто — HLS.
- Доставка. Файлы потока раздаёт веб-сервер или CDN, чтобы выдержать много зрителей.
- Плеер. Страница получает фрагменты, декодирует их и показывает кадры.
Каждый этап добавляет задержку, поэтому суммарно картинка запаздывает.
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 / снимки | Любой браузер | Секунды–минуты (обновление кадра) | Простые камеры, погода |
Почему трансляция может быть недоступна на нашем сайте
Чтобы показать чужую камеру на странице, нужно, чтобы оператор разрешил встраивание или публично открыл поток. Бывает три ситуации:
- Оператор даёт готовый плеер. Мы вставляем его через iframe, вся ответственность за поток и качество на операторе.
- Оператор публикует HLS-ссылку. Плеер нашего сайта воспроизводит её, но только если сервер оператора разрешает такой доступ из браузера (политика CORS).
- Встраивание запрещено. Тогда мы даём только ссылку на страницу оператора — обходить запрет нельзя.
Именно поэтому в карточке камеры всегда есть ссылка на источник. Если трансляция не открывается, смотрите причины в статье «Как смотреть веб-камеры онлайн бесплатно».
Почему поток «зависает»
- Нет новых фрагментов. Камера или сервер оператора остановились; плеер ждёт и в итоге показывает ошибку.
- Узкий канал у зрителя. Плеер не успевает скачивать фрагменты, поэтому буферизируется. Снижение качества помогает.
- Ограничения по региону. Сервер оператора не отдаёт видео вашему IP-адресу.
- Истёк временный адрес. Некоторые сервисы выдают ссылки на поток с ограниченным временем действия; обновление страницы получает новую.
Что полезно знать владельцу камеры
Если вы планируете выставить собственную камеру в интернет, не открывайте её порты напрямую: IP-камеры с заводскими паролями — частая цель взлома. Безопаснее использовать облачный сервис или отдельный видеосервер, сменить пароль по умолчанию и обновить прошивку. Подробнее о рисках — в статье «Можно ли смотреть чужие камеры онлайн». Статья про подключение камеры к сервису Ivideon и тарифы есть в архиве сайта: «Какие видеокамеры можно подключить к сервису Ivideon».
Вопросы и ответы
Почему браузер не воспроизводит RTSP?
Браузеры не поддерживают протокол RTSP напрямую. Для показа на сайте поток преобразуют в HLS или WebRTC на сервере.
Что такое HLS?
Это технология потокового видео по HTTP: поток разбит на короткие фрагменты и плейлист .m3u8. Работает на телефонах, компьютерах и Smart TV.
Почему у трансляции есть задержка?
Видео нужно закодировать, разбить на фрагменты, передать по сети и буферизировать в плеере. У HLS задержка обычно составляет секунды или десятки секунд.
Что быстрее — WebRTC или HLS?
WebRTC обеспечивает задержку меньше секунды, HLS — больше, но проще масштабируется на большое число зрителей.
Что такое ONVIF?
Стандарт совместимости IP-камер и регистраторов разных производителей: поиск устройств, получение потоков, управление.