Представьте: вы хотите видеть, что происходит у вас дома или в офисе, прямо с телефона или компьютера. Но камера — это не просто глаз, а целая система, которая должна уметь разговаривать с вашим устройством. И тут на сцену выходит RTSP — протокол, который позволяет передавать видео в реальном времени. В этой статье вы узнаете, как подключить камеру по RTSP, настроить систему видеонаблюдения с обнаружением движения и организовать просмотр видео онлайн и из архива. Всё просто, понятно и с примерами!


Что такое RTSP и почему он важен

RTSP (Real Time Streaming Protocol) — это как дирижёр в оркестре видеонаблюдения. Он управляет потоками видео, чтобы вы могли смотреть картинку в реальном времени. Но не каждая камера умеет играть по его правилам. Поэтому первое, что нужно проверить — поддерживает ли ваша камера RTSP. Обычно эта информация есть в документации.


Как подключить камеру по RTSP

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

rtsp://<имя_пользователя>:<пароль>@<IP-адрес>:<порт>/<путь_к_потоку>

Например, для камер Axis это может быть:

rtsp://root:password@192.168.0.90:554/mpeg4/media.amp

Совет: Если камера не поддерживает RTSP, то подключить её таким способом не получится.


Схема работы системы видеонаблюдения

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

Вот упрощённая схема:

Камера RTSP-сервер (ffserver) RTMP-сервер (nginx) Просмотр в браузере (HLS/RTMP)
Обнаружение движения (motion) Запись архива

Настройка основных компонентов

1. RTSP-сервер (ffserver)

Он принимает видеопоток с камер и передаёт дальше. Конфигурация простая:

RTSPPort 554
HTTPPort 8080
MaxClients 2000
MaxBandwidth 50000
<Feed cam1.ffm>
</Feed>
<Stream cam1>
Feed cam1.ffm
Format rtp
NoAudio
VideoSize 1280x720
</Stream>

2. Обнаружение движения (motion)

Программа, которая смотрит видео и понимает, когда что-то движется. Настройки:

event_gap 10
output_pictures off
ffmpeg_video_codec mp4
stream_port 0
webcontrol_port 8080
camera_dir /etc/motion/conf.d

Для каждой камеры создаётся отдельный конфиг с RTSP-адресом.

3. RTMP-сервер (nginx с модулем rtmp)

Он позволяет смотреть видео в браузере с минимальной задержкой.

rtmp {
  server {
    listen 1935;
    application stream {
      live on;
      hls on;
      hls_path /srv/http/hls;
      exec_static ffmpeg -i rtsp://192.168.20.100/channel=1_stream=0 -c copy -f flv rtmp://127.0.0.1:1935/stream/cam1;
    }
  }
}

Как смотреть видео онлайн и из архива

Для просмотра используется HTML5-плеер Video.js, который поддерживает HLS и RTMP. Вот как это работает:

  • Видео с камер транслируется через nginx.
  • В браузере открывается страница с плеером и списком камер.
  • Выбираете камеру — и смотрите видео в реальном времени.
  • Для архива — отдельная страница с файлами записей.

Практический пример: настройка одной камеры

  1. Проверяем, что камера поддерживает RTSP и узнаём её адрес, например:
rtsp://admin:12345@192.168.1.10:554/stream1
  1. Настраиваем ffserver, чтобы принимать поток с камеры.

  2. Запускаем motion для обнаружения движения и записи видео.

  3. Настраиваем nginx для трансляции RTMP и HLS.

  4. Создаём страницу с Video.js для просмотра.


Почему стоит использовать RTSP и связку с nginx и motion

  • RTSP — стандарт для передачи видео в реальном времени.
  • motion — умный глаз, который не даст пропустить движение.
  • nginx с RTMP-модулем — мощный и стабильный сервер для трансляций.
  • Video.js — удобный плеер для браузера и мобильных устройств.

Что делать, если камера не поддерживает RTSP

Тогда можно попробовать:

  • Использовать ПО производителя камеры.
  • Подключить камеру через ONVIF (если поддерживается).
  • Заменить камеру на модель с RTSP.

Таблица сравнения протоколов для видеонаблюдения

Протокол Задержка Поддержка в браузерах Особенности
RTSP Минимальная Нет (нужен плеер) Прямой поток, требует сервер
RTMP Минимальная Flash (устаревший) Хорош для стриминга
HLS Высокая (секунды) Да (HTML5) Поддержка iOS, адаптивный

Полезные советы

  • Используйте RTSP с TCP транспортом для стабильности.
  • Настраивайте motion с порогом чувствительности, чтобы не было ложных срабатываний.
  • Для нескольких камер используйте RTSP-сервер, чтобы не перегружать камеры.
  • Храните архив на отдельном диске, чтобы не потерять данные.

Итог

Подключить камеру по RTSP — не магия, а инженерия. С помощью ffserver, motion и nginx вы создадите мощную систему видеонаблюдения с обнаружением движения, онлайн-просмотром и архивом. Всё это — на вашем сервере, без лишних затрат и сложностей.


Теперь вы вооружены знаниями, чтобы сделать видеонаблюдение, которое не подведёт. Только представьте: вы в отпуске, а ваш дом под надёжной защитой, и вы видите всё, что происходит, одним взглядом на экран. Звучит круто, правда? Тогда вперёд — настраивать!