Зеленоградск променад онлайн: веб-камера в реальном времени

Променад в Зеленоградске давно перестал быть просто точкой на карте Балтики — теперь это место, куда заглядывают через экран. Проверить, штормит ли море, людно ли у волнорезов, надел ли кто-то шорты в мае, можно в любой момент: камеры на опорах освещения, кафе и отелях круглосуточно отдают картинку в интернет. Для туриста это способ спланировать поездку без сюрпризов, для местного — быстрый взгляд на погоду, для разработчика — готовый полигон для работы с видеопотоком.
Город стоит у основания Куршской косы: с одной стороны Балтийское море, с другой — Куршский залив. Основные камеры смотрят вдоль променада — обновлённой набережной с деревянным настилом, широкими сходнями к воде, скамейками и смотровыми площадками. В объектив попадают полоса пляжа и волнорезы, по которым проще всего оценить волнение и направление ветра; сам променад с пешеходами, велосипедистами и колясками; линия кафе и отелей, по заполненности веранд видно, насколько людно в городе; горизонт с облаками, закатами, а зимой — низким серым небом и брызгами от волн. Днём картинка живая и шумная, ночью большинство уличных камер переключаются в инфракрасный режим и показывают чёрно-белое изображение с подсветкой фонарей. Именно из-за смены режимов вечером и на рассвете поток часто «дёргается» на несколько секунд — камера подстраивает экспозицию.
Технически всё устроено прозаично. IP-камера с матрицей и объективом стоит на мачте, питается по PoE и кодирует видео в H.264 или H.265. Наружу она отдаёт поток по RTSP/RTP — этот протокол браузеры напрямую не понимают. Поэтому на сервере или в облачном сервисе оператора стоит перекодировщик, превращающий RTSP в HLS или DASH, нарезая видео на короткие фрагменты по несколько секунд. Дальше файлы раздаёт веб-сервер или CDN, а в браузере их склеивает плеер вроде hls.js или video.js.
Отсюда и главный параметр, который замечает зритель, — задержка эфира. У классического HLS она составляет от 6 до 30 секунд: плеер держит в буфере 3–6 сегментов, чтобы картинка не рвалась на мобильном интернете. Протоколы вроде LL-HLS и WebRTC сокращают паузу до 1–5 секунд, но требуют более сложной инфраструктуры и стабильного канала. Если вы просто смотрите на море и людей, задержка в 15 секунд не имеет значения — она критична только тогда, когда камера используется как «глаз» для охраны объекта или для управления чем-то в реальном времени.
Второй параметр — битрейт. Для 720p обычно хватает 1,5–3 Мбит/с, для 1080p с 25 кадрами в секунду — 4–6 Мбит/с. Уличные камеры на побережье дополнительно защищают корпусом IP66/IP67, ставят подогрев объектива от обледенения и включают WDR, чтобы в контровом свете заката не превращать людей в чёрные силуэты на фоне белого неба.
Публичных точек входа несколько, и они заметно отличаются по качеству и удобству. Ориентировочные цифры для типовой уличной камеры на променаде:
- Плеер на сайте города или турпортала: 720p–1080p, задержка 6–20 секунд, трафик 0,7–1,8 ГБ в час — быстрый взгляд с телефона.
- Трансляция на видеоплатформах: до 1080p60, задержка 10–30 секунд, трафик 0,7–2,7 ГБ в час — тем, у кого медленно грузится сайт.
- Прямой RTSP с IP-камеры: разрешение зависит от модели, задержка 0,2–1 секунда, трафик 1,8–4,5 ГБ в час — интеграторам и локальным системам.
- Своя HLS-раздача через ffmpeg: до 1080p, задержка 4–12 секунд, трафик 0,7–1,8 ГБ в час — тем, кто делает собственный портал.
- Таймлапс или архив за сутки: 1080p, задержка — часы и дни, трафик — единицы МБ — для анализа погоды и загруженности пляжа.
Общий архив за прошлые даты на публичных камерах встречается редко: хранить сутки-двое видео в 1080p — это десятки гигабайт на каждую точку. Чаще сервисы кладут в свободный доступ только live-поток, а запись держат внутри системы видеонаблюдения города.
Если вы администрируете страницу с трансляцией или просто хотите понять, живой ли эфир, начните с проверки плейлиста. Сервер HLS отвечает заголовком и отдаёт индексный файл со списком сегментов. Для собственной раздачи подойдёт ffmpeg: поток с IP-камеры по RTSP забирается по TCP и упаковывается в HLS. Параметр hls_time задаёт длину сегмента в секундах, а hls_list_size — сколько сегментов держать в плейлисте. Уменьшите первое значение до 2, и задержка упадёт, но вырастет нагрузка на канал и число запросов. Копирование видеопотока без перекодирования экономит процессор: камера уже отдаёт готовый H.264, и трогать его без нужды не стоит.
На стороне клиента достаточно подключить hls.js и отдать ему ссылку на плейлист. В Safari на iOS и macOS можно обойтись нативным тегом video: система умеет играть HLS сама. Если картинка не стартует, проверьте три вещи: не блокирует ли запрос расширение-блокировщик, разрешён ли CORS на сервере с плейлистом и включено ли аппаратное ускорение в браузере.
Практических нюансов тоже хватает. Лучший свет — первый час после рассвета и час перед закатом: мягкие тени, тёплые цвета, меньше пересветов на воде. Купальный сезон на балтийском побережье короткий, обычно с середины июня до конца августа; в остальное время камера показывает скорее погоду, чем пляжную жизнь. Признак «зависшего» эфира — статичная картинка и таймстамп, который не меняется: иногда помогает перезагрузка страницы, иногда проблема на стороне оператора. Штормовой ветер видно по волнорезам: если брызги перелетают настил, гулять там не стоит, а камера наверняка подрагивает на мачте. Мобильный трафик расходуется быстро: час просмотра в 1080p съедает до 2 ГБ, так что в роуминге лучше ограничиться 480p.
Отдельный вопрос — правовой. Общественное пространство снимать можно, но операторы обязаны избегать наведения камеры в окна жилых домов и публикации крупных планов людей без согласия. Именно поэтому часть уличных камер размывает лица или ставит широкий план. Вечером трансляция тормозит чаще: растёт нагрузка на домашний интернет и на серверы оператора, и HLS в этом случае жертвует плавностью, держа более длинный буфер. Звука у большинства уличных камер нет вообще — шум ветра и порта только мешает, а запись звука в публичном месте требует отдельного правового разбирательства. Ночная съёмка есть, но она чёрно-белая и с меньшей детализацией: отличить живой эфир проще по редким прохожим и колышущимся от ветра проводам.
Пожалуй, главная ценность таких трансляций в том, что они дают точную картинку вместо приблизительного прогноза. Метеосводка может обещать «небольшой дождь», а в кадре променада люди спокойно идут в кроссовках по сухому настилу. Единственное, что раздражает, — привычка операторов менять адрес потока раз в сезон, из-за чего старая ссылка в закладках однажды перестаёт работать. Веб-камера на променаде Зеленоградска — это рабочий, а не декоративный инструмент: она даёт точную картину по погоде и загруженности набережной, а технически представляет собой обычный HLS-поток, который можно проверить одной командой и встроить на свою страницу за десять минут. Главное — помнить про задержку и не ждать от уличной съёмки кинематографического качества.


