Каждый современный человек владеет ноутбуком, но как самому убрать возникающие...
![Пропал звук на ноутбуке — что делать?](https://i0.wp.com/sovets.net/photos/uploads/120/8110495-2razrabotanyi-spetsialnyie-programmyi-kotoryie-testiruyut-audio-drayveryi-soundcheck.jpg)
Протокол RTSP
RTSP (Real Time Streaming Protocol, или, по-русски, потоковый протокол реального времени) – это прикладной протокол, в котором описаны команды для управления видеопотоком. С помощью этих команд мы можем «приказать» камере или серверу, например, начать трансляцию видеопотока. Пример запроса на начало воспроизведения выглядит так: PLAY rtsp://192.168.0.200/h264 RTSP/1.0
То есть RTSP – это просто набор команд для управления видеопотоком. Проведем эксперимент. Для этого нам понадобится IP-камера с поддержкой RTSP протокола и ее RTSP адрес. Этот адрес выглядит примерно так rtsp://
Протокол TCP
Допустим, мы выбрали метод RSTP over TCP и хотим начать передачу видеопотока. Что будет происходить на уровне транспортных механизмов? Предварительно с помощью нескольких команд будет установлено соединение между отправителем и получателем. После этого начнется передача видеоданных. При этом механизмы TCP
будут следить за тем, чтобы все данные дошли до адресата без изменений и в нужной последовательности. Также TCP будет регулировать скорость передачи, чтобы передатчик не посылал данные интенсивнее, чем их может обработать приемник, к примеру,
UDP – это альтернатива транспортному протоколу TCP. В отличие от TCP, UDP не устанавливает предварительного соединения, а вместо этого просто начинает передавать данные. UDP не следит за тем, чтобы данные были получены и не дублирует их, если отдельные части пропали или пришли с ошибками. UDP менее
надежен, чем TCP. Но с другой стороны, он обеспечивает более быструю передачу потоков благодаря отсутствию механизма повторения передачи потерянных пакетов. Различие в протоколах TCP и UTP можно иллюстрировать следующим примером. Встречаются два друга. Вариант TCP:
Иван: «Привет! Поболтаем?» (устанавливается соединение)
Семен: «Привет! Давай!» (устанавливается соединение)
Иван: «Я вчера был в магазине. Ты понял?» (передача данных)
Семен: «Да!» (подтверждение)
Иван: «Там разгружали новое оборудование. Ты понял?» (передача данных)
Семен: «Нет» (подтверждение)
Иван: «Там разгружали новое оборудование. Ты понял?» (повторная передача)
Семен: «Да!» (подтверждение)
Иван: «Завтра я там еще раз буду. Ты понял?» (передача данных)
Семен: «Да!» (подтверждение)
Вариант UDP
Иван: «Привет! Я вчера был в магазине» (передача данных)
Иван: «Там разгружали новое оборудование» (передача данных)
Иван: «Завтра я там еще раз буду» (передача данных)
Иван: «Могу узнать для тебя цены» (передача данных)
Иван: «Они обещали скидки при хороших объемах» (передача данных)
Иван: «Если хочешь, позвони – поедем вместе» (передача данных)
Семен: «Да, позвоню» (передача данных)
Вы также можете увидеть различие в протоколах, поставив следующий эксперимент: попробуйте перевести камеру в режим RTSP over TCP и помашите рукой перед объективом - на экране монитора вы увидите задержку. А теперь проведите этот же тест в режиме RTSP over UDP. Задержка будет меньше. На время задержки влияют несколько факторов: формат сжатия, мощность компьютера, протокол передачи и особенности программного обеспечения, участвующего в декодировании видео.
RTP (Real-time Transport Protocol), или по-русски транспортный протокол реального времени. Этот протокол специально создан для передачи реалтайм трафика. Он позволяет следить за синхронизацией передаваемых данных, корректировать последовательность доставки пакетов и потому более других подходит для передачи видео- и аудиоданных. В общем случае для передачи видеопотока предпочтительнее использовать либо RTP либо UDP. Работа через TCP оправдана лишь если нам приходится работать с проблемными сетями, так как протокол TCP сможет корректировать ошибки и сбои, возникающие при передаче данных.
В данной статье мы рассмотрим немного другое применение IP-камеры
, а именно применение в онлайн-трансляциях, где требуется низкая коммуникационная задержка.
Прежде всего давайте устраним возможное недопонимание в терминологии про вебкамеры и IP-камеры.
Вебкамера - это устройство захвата видео, не имеющее собственного процессора и сетевого интерфейса. Вебкамера требует подключения к компьютеру, смартфону, либо другому устройству, имеющему сетевую карту и процессор.
Низкая задержка (low latency) - это достаточно редкое требование для IP-камер и онлайн-трансляций. Необходимость работы с низкой задержкой появляется, например, в том случае, если источник видеопотока активно взаимодействует со зрителями этого потока.
Обычная RTSP IP камера, как правило жмёт видео в H.264 кодек и может работать в двух режимах транспортировки данных: interleaved и non-interleaved .
Режим interleaved наиболее популярный и удобный, т.к. в этом режиме видео данные передаются по протоколу TCP внутри сетевого подключения к камере. Для того чтобы раздавать с IP-камеры в interleaved нужно всего лишь открыть / пробросить один RTSP-порт камеры (например 554) наружу. Плееру остаётся лишь подключиться к камере по TCP и забрать поток уже внутри этого соединения.
Итак, для того чтобы забрать видео с камеры с минимальной задержкой, нужно использовать non-interleave mode и получать видеотрафик по UDP.
Браузеры не поддерживают стек протоколов RTSP / UDP напрямую, но поддерживают стек протоколов встроенной технологии WebRTC .
Чтобы устранить эту несовместимость требуется промежуточный сервер-ретранслятор, который будет являться мостом между протоколами IP-камеры и протоколами браузера.
Технология WebRTC работает по протоколу UDP и тем самым обеспечивает низкую задержку по направлению Сервер > Браузер . IP-камера также работает по протоколу RTP / UDP и обеспечивает низкую задержку по направлению Камера > Сервер .
Камера может отдать ограниченное количество потоков, в силу ограниченных ресурсов и полосы пропускания. Использование промежуточного сервера позволяет масштабировать трансляцию с IP камеры на большое число зрителей.
С другой стороны, при использовании сервера, включаются две коммуникационных ноги:
1) Между зрителями и сервером
2) Между сервером и камерой
Такая топология имеет ряд «особенностей» или «подводных камней». Перечислим их ниже.
Например, если камера отдает 720p видеопоток в H.264, а подключается Chrome-браузер на смартфоне Android с поддержкой только VP8.
Поэтому если серверные мощности не позволяют транскодировать планируемое количество камер, то транскодинга нужно избегать. Например обслуживать только браузеры с поддержкой H.264, а остальным предлагать использовать нативное мобильное приложение для iOS или Android, где есть поддержка кодека H.264.
Как вариант для обхода транскодинга в мобильном браузере, можно использовать HLS
. Но стриминг по HTTP совсем не обладает низкой задержкой и в настоящий момент не может быть использован для интерактивных трансляций.
Если IP-камера отправляет поток, превышающий возможности канала зрителя (например камера отправляет 1 Mbps , а зритель может принять только 500 Kbps ), то на этом канале будут большие потери и, как следствие фризы видео или сильные артефакты.
В этом случае транскодинговая нагрузка на сервер уходит и смещается на саму камеру, т.к. камера теперь вынуждена кодировать два и более потоков вместо одного.
Для тестирования возьмем древнюю IP-камеру D-link DCS-2103 с поддержкой RTSP и кодеков H.264 и G.711 .
После подключения к сети, на камере загорелась зеленая лампочка и роутер увидел еще одно устройство в локальной сети с IP адресом 192.168.1.37.
Заходим в веб-интерфейс камеры и выставляем кодеки и разрешение для тестирования:
В качестве сервера для тестирования будем использовать Web Call Server 5 . Это стриминг сервер с поддержкой RTSP и WebRTC протоколов. Он будет подключаться к IP-камере по RTSP и забирать видеопоток. Далее раздавать поток по WebRTC .
После установки необходимо переключить сервер в режим RTSP non-interleaved , который мы обсуждали выше. Это можно сделать добавлением настройки
Rtsp_interleaved_mode=false
Эта настройка добавляется в конфиг flashphoner.properties и требует перезагрузки сервера:
Service webcallserver restart
Таким образом, у нас есть сервер, который работает по схеме non-interleaved, принимает пакеты от IP-камеры по UDP, и далее раздаёт по WebRTC (UDP).
Камера находится в локальной сети по адресу 192.168.1.37.
Поэтому первое что мы должны сделать - это пробросить порт 554 на адрес 192.168.1.37 для входящих TCP / RTSP соединений, чтобы сервер мог установить подключение к нашей IP-камере. Для этого в настройках роутера добавляем всего одно правило:
Если у вас дружелюбный NAT и вы знаете внешний IP-адрес, то можно начинать тесты с сервером.
Стандартный демо плеер в браузере Google Chrome выглядит так:
Для этого будем использовать таймер, который будет показывать на экране монитора доли секунды. Включаем таймер и воспроизводим видеопоток одновременно на VLC локально и на браузере Firefox через удалённый сервер.
Пинг до сервера 100 ms
.
Пинг локально 1 ms
.
Zero | VLC | Firefox, WCS | |
Time | 50.559 | 49.791 | 50.238 |
Latency ms | 0 | 768 | 321 |
Мы сделали несколько снимков чтобы зафиксировать значения задержки.
В случае сложностей с настройкой или эксплуатацией продукции, ознакомьтесь с часто задаваемыми вопросами и ответами на них.
Как получить подарочную лицензию REVISOR VMS?
Для получения подарочной лицензии Revisor VMS следуйте инструкции. Скачать инструкцию .
У меня 1.3 Мп IP-камера RedLine. Пытаюсь установить ActiveX, но возникает ошибка "HTTP 404 — не найдено", что делать?
В 1.3 Мп видеокамерах модуль ActiveX не встроен, его необходимо установить с диска, который идет в комплекте или загрузить по ссылке
Для камер 4MP:
rtsp://admin:123456@IP-адрес:554/ch01/0 - основной поток
rtsp://admin:123456@IP-адрес:554/ch01/1 - доп поток
rtsp://admin:123456@IP-адрес:554/streaming/mjpeg - поток mjpeg
Для камер 1,3MP и 2 MP
rtsp://admin:123456@IP-адрес:554/streaming/video0 - основной поток
rtsp://admin:123456@IP-адрес:554/streaming/video1 - доп поток
Какое ПО подходит для мобильных устройств?
Какие порты необходимы для работы через сеть?
80 - web интерфейс
554- rtsp (видео) поток
4900 - моб. порт
9988 - Для клиенских подключений к 4MP IP-камерам
Что делать если не работает звук на регистраторе или в стороннем ПО?
Для передачи звука необходимо в настройках во вкладке СЕТЬ - RTSP поток, активировать передачу аудио.
Объем занимаемого пространства зависит от выбранного качества записи и частоты движения (при записи по детекции). Для расчёта архива можно использовать ПО Disk calculator .
Как найти IP камеру в локальной сети?
Установите ПО и запустите от имени администратора. В появившемся окне Вы увидите список оборудования, подключенного в локальную сеть.
Для изменения настроек сети необходимо выбрать оборудование в верхнем поле и в нижнем поле указать настройки сети (IP-адрес, маску, шлюз), ввести имя пользователя, пароль и нажать кнопку Modify. В дальнейшем для подключения необходимо использовать заданный IP
.
Для 1,3MP и 2 MP IP-камер реккомендуется использовать
Как добавить 1.3 MP IP камеру в CVMS?
Если камера находится в локальной сети, то в режиме просмотра, в меню Устройства (слева) нажать правой кнопкой и выбрать "Быстрый поиск", затем выбрать нужную камеру и указать пароль.
Если подключение будет осуществляться через интернет, то в режиме просмотра, в меню Устройства (слева) нажать правой кнопкой и выбрать "Добавить устройство" и ввести данные для подключения, НЕОБХОДИМО УКАЗЫВАТЬ ПОРТ TCP (по умолчанию 1115)
Часто возникает вопрос: Как подключить ip камеру к NVR если ее нет в списке совместимости?
Существует два варианта ONVIF и RTSP
Начнем с протокола ONVIF (Open Network Video Interface Forum)
ONVIF это общепринятый протокол для совместной работы IP камер, видеорегистраторов NVR, программного обеспечения, на случай если все устройства разных производителей. ONVIF можно сравнить с английским языком для международного общения людей.
Убедитесь, что подключаемые устройства имеют поддержку ONVIF, на некоторых устройствах ONVIF может быть выключен по умолчанию.
Либо может быть отключена авторизация по ONVIF это значит, что логин/пароль будет всегда по умолчанию
независимо от логина/пароля для WEB
Также стоит отметить, что некоторые устройства используют отдельный порт для работы по протоколу ONVIF
В некоторых случаях ONVIF пароль может отличаться от пароля для WEB доступа.
Что доступно при подключении по ONVIF ?
Обнаружение устройств
Передача видеоданных
Прием и передача аудио данных
Управление поворотными камерами (PTZ)
Видеоаналитика (например обнаружение движения)
Эти параметры зависят от совместимости версий протокола ONVIF. В некоторых случаях часть параметров недоступна, или работает некорректно.
К и с использованием ONVIF
В регистраторах SNR и Dahua протокол ONVIF находится на вкладке Remote Device, строка Manufacturer
Выберите канал к которому будет подключено устройство
Из вкладки Manufacturer выберите ONVIF
Укажите ip адрес устройства
RTSP порт остается по умолчанию
Камеры используют ONVIF
порт 8080
(с 2017 года, на новых моделях ONVIF порт изменен на 80 для серии Альфа, Мира)
Камеры OMNY Base
используют ONVIF
порт 80
, в регистраторе он указывается как HTTP порт
Имя
Пароль в соответствии с параметрами устройства
Remote channel по умолчанию 1. В случае если устройство многоканальное, указывается номер канала.
Decoder Buffer — буферизация видео потока с указанием значения времени
Server type здесь есть выбор TCP,UDP Schedule
TCP - устанавливает соединение между отправителем и получателем, следит за тем, чтобы все данные дошли до адресата без изменений и в нужной последовательности, также регулирует скорость передачи.
В отличие от TCP, UDP не устанавливает предварительного соединения, а вместо этого просто начинает передавать данные. UDP не следит чтобы данные были получены, и не дублирует их в случае потерь или ошибок.
UDP менее надежен, чем TCP. Но с другой стороны, он обеспечивает более быструю передачу потоков благодаря отсутствию повторения передачи потерянных пакетов
Schedule — автматическое определение типа.
Так выглядят подключенные устройства в Dahua
Зеленый статус означает, что регистратор и камера соединены успешно
Красный статус означает, что есть проблемы в подключении. Например порт подключения неправильный.
Второй способ подключения это RTSP
(Real Time Streaming Protocol)
RTSP потоковый протокол реального времени, в котором описаны команды для управления видеопотоком.
С помощью этих команд происходит трансляция видеопотока от источника к получателю
например от IP-камеры к видеорегистратору или серверу.
Что доступно при подключении по RTSP?
Передача видеоданных
Прием и передача аудио данных
Приемущество этого протокола передачи в том, что он не требует совместимости по версиям.
на сегодняшний день RTSP поддерживают практически все IP камеры и NVR
Недостатки протокола в том, что кроме передачи видео и аудио данных больше ничего не доступно.
Разберем пример подключения камеры к и с использованием RTSP
RTSP находится на вкладке Remote Device, строка Manufacturer, в регистраторе SNR и Дахуа он представлен как General
Выберите канал, к которому будет подключено устройство
URL Addr - здесь вводим строку запроса, по которой камера отдает основной RTSP поток с высоким разрешением.
Extra URL - здесь вводим строку запроса, по которой камера отдает дополнительный RTSP поток с низким разрешением.
Пример запроса:
rtsp://172.16.31.61/1 основной поток
rtsp://172.16.31.61/2 дополнительный поток
Зачем нужен дополнительный поток?
На локальном мониторе подключенном к регистратору в мульти-картинке регистратор использует дополнительный поток для экономии ресурсов. К примеру в маленьких картинках по 16 окон совсем не обязательно декодировать Full HD разрешение, достаточно D1. Ну а если Вы открыли 1/4/8 окон в этом случае декодируется основной поток с высоким разрешением.
Имя в соответствии с параметрами устройства
Пароль в соответствии с параметрами устройства
Decoder Buffer буферизация видео потока с указанием значения времени
Server type - TCP, UDP, Schedule (аналогично протоколу ONVIF)
Данная статья отвечает на самые распространенные вопросы, такие как:
совместима ли IP камера с регистратором NVR ?
А если совместима то как подключить!?