чем открыть протокол rtsp

Как получить RTSP поток с IP-камеры

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Установка IP камеры — удобный способ получения картинки в любом месте, где присутствует подключение к интернету. Но для работы с видеопотоком необходим соответствующий инструментарий. Существуют различные варианты поддерживаемых IP камерами протоколов трансляции, и один из самых удобных среди них — RTSP.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Что такое RTSP

Аббревиатура расшифровывается как Real Time Streaming Protocol, или потоковый протокол реального времени. Это решение прикладного уровня для работающих с мультимедийным контентом систем. Оно позволяет удаленно контролировать поток информации с медиасервера (которым может выступать IP камера), отправлять команды управления этим потоком. Также, если на сервере хранятся файлы записей, RTSP обеспечивает к ним доступ.

Сжатие в рамках RTSP не выполняется. Транспортные протоколы и способ инкапсуляции передаваемой информации он тоже не устанавливает. Упрощенно процесс выглядит следующим образом:

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

По умолчанию сервер RTSP работает на порту 544. Захват видео и звука можно выполнять с помощью таких программ, как плееры VLC или Windows Media Player, и иных клиентов с поддержкой протокола. Существуют также веб-приложения и программные решения для трансляции потока в интернет (например, стриминга на YouTube).

Как получить поток RTSP с камеры

Чтобы просматривать видео и захватывать звук посредством этой технологии, необходима поддержка RTSP на стороне камеры. Этот протокол поддерживают многие образцы имеющихся на рынке устройств, но в документации возможность описана не всегда.

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

Здесь rtsp — указание на протокол подключения, addr — IP-адрес камеры. Через двоеточие указан порт. Последний может отличаться, если в настройках указан отличный от «дефолтного».

Перед выполнением дальнейших инструкций рекомендуем прочитать как узнать IP камеры видеонаблюдения.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

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

Как узнать RTSP адрес

Ссылка может находиться в документации или явно указываться в веб-интерфейсе устройства. Если известно, что камера точно поддерживает RTSP, но параметры нигде явно не указаны, их придется выяснять:

Для последнего потребуется ПО Onvif Device Manager, компьютер под управлением Windows и сама камера.

Важно: она и ПК должны находиться в одной сети.

Device Manager умеет конфигурировать видеосервер, захватывать видео и так далее, но самая важная функция этой программы в данном случае — WS-Discovery, обнаружение устройств в сети.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Когда вы скачали и поставили программу, нужно сделать следующее:

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Смотрим видео через RTSP

Самый простой способ получить rtsp поток с ip камеры — использовать проигрыватель VLC. В нем достаточно пройти в пункт меню «Медиа — Открыть URL…», перейти в появившемся диалоге на вкладку «Сеть» и вставить в строку сетевого адреса rtsp-ссылку.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Для стриминга в интернет, существуют различные способы. Один из самых доступных — использовать связку VLC и программы OBS Studio, это бесплатное и достаточно простого решения.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Существуют также онлайн-сервисы вывода изображения в интернет, например, webcam.io, и прочие. Спецификации протокола открыты, поэтому специалисты могут написать и собственный проигрыватель RTSP.

Где купить IP-видеокамеру

Видео по теме

Источник

7 способов отобразить видео с RTSP IP-камеры на веб-странице и 2 в мобильном приложении

В этой статье покажем 7 технологически разных способов отображения видеопотока с IP-камеры с поддержкой RTSP на web-странице браузера.

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

Способ 1 — RTMP

RTMP протокол браузеры не поддерживают, но его поддерживает старый добрый Flash Player, который работает неплохо, хоть и не во всех браузерах, и может отобразить видеопоток.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Код плеера в этом случае будет построен на Action Script 3 и выглядеть примерно так:

rtmp://192.168.88.59/live — это адрес промежуточного сервера, который заберет RTSP видеопоток с камеры и конвертирует его в RTMP

rtsp://192.168.88.5/live.sdp — это RTSP адрес самой камеры.

Немного избыточный вариант кода плеера на Flex и AS3 доступен здесь.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Способ 2 — RTMP с оберткой HTML5

Желающих кодить на Action Script 3 все меньше. Специально для этого придуман способ с HTML5 оберткой, которая позволяет управлять RTMP-плеером из JavaScript. В этом случае флэшка подгружается на HTML-страницу только для того чтобы отобразить картинку и выдать в динамики звук.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Полный код плеера находится здесь. А выглядит это так:

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Способ 3 — RTMFP

Протокол RTMFP также работает внутри флэш плеера. Разница с RTMP в том, что RTMFP работает поверх протокола UDP и тем самым является более пригодным для получения трансляции с низкой задержкой.

Код плеера на AS3 в этом случае полностью идентичен используемому в RTMP, добавлена одна буква F в строке протокола подключения к серверу.

Для порядка дадим скриншот с RTMFP

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Способ 4 — RTMFP c оберткой HTML5

Этот способ идентичен пункту 2, с той разницей, что мы при инициализации в JavaScript устанавливаем RTMFP протокол для использования в нижележащей флэшке (swf-объекте).

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Способ 5 — WebRTC

В данном случае Flash не используется совсем и видеопоток проигрывается средствами самого браузера, без использования сторонних плагинов. Это работает и в Android Chrome и Android Firefox — мобильных браузерах, где Flash не установлен. WebRTC дает самую низкую задержку — менее 0.5 секунды.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Автоматически определяется поддержка WebRTC, и если поддерживается то поток играет по WebRTC.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Способ 6 — Websockets

WebRTC и Flash не покрывают все браузеры и платформы. Например, в браузере iOS Safari эти технологии не поддерживаются.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

На iOS Safari можно доставить видеопоток по транспорту Websocket (TCP соединению между браузером и сервером). В этот туннель можно завернуть сконвертированный с RTSP видеопоток. После того, как бинарные данные придут их можно декодировать с помощью JavaScript и отрисовать на Canvas HTML5-элементе.

Именно этим занимается Websocket — плеер при работе в браузере iOS Safari, а его код снаружи выглядит также:

Это чем-то похоже на подход с флэшкой, когда под HTML5 лежит swf-элемент. В данном случае, под HTML5-страницей лежит не swf-объект, а JavaScript-приложение, которое тянет данные по вебсокетам, декодирует и отрисовывает на Canvas в нескольких потоках.

Так выглядит RTSP поток на Canvas в браузере iOS Safari

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Способ 7 — HLS

При конвертации RTSP в HLS, видеопоток разбивается на сегменты, которые благополучно скачиваются с сервера и отображаются в HLS-плеере.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp
В качестве HLS-плеера мы используем video.js. Код плеера можно скачать здесь.

Как выглядит плеер:

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Способ 8 — Android приложение, WebRTC

Приложение забирает поток с сервера по WebRTC. Задача сервера в этом случае — сконвертировать RTSP в WebRTC и скормить мобильному приложению.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Java-код плеера для Android находится здесь и выглядит так:

Тестовое мобильное приложение плеера можно установить из Google Play, а исходники приложения скачать здесь.

Так выглядит воспроизведение RTSP потока по WebRTC на планшете Asus под Android:

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Способ 9 — iOS приложение, WebRTC

Приложение также как и в случае Android забирает поток с сервера по WebRTC.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Скачать исходный код плеера для iOS можно здесь.

А из App Store можно установить тестовое приложение, которое использует показанные выше куски кода. Его работа с RTSP-потоком выглядит так:

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Результаты

Подведем итоги и объединим полученные результаты в табличку:

Способ отображенияПрименениеЗадержка
1RTMPТам, где важно использование legacy — флэш клиента, Flex или Adobe Airmedium
2RTMP + HTML5В браузерах IE, Edge, Mac Safari, если там установлен Flash Playermedium
3RTMFPТам, где важно использование legacy — флэш клиента, Flex или Adobe Air и важна низкая задержкаlow
4RTMFP + HTML5В браузерах IE, Edge, Mac Safari, если там установлен Flash Player и важна низкая задержка.low
5WebRTCВ браузерах Chrome, Firefox, Opera на десктопах и мобильных браузерах под Android, где важна real-time задержка.real-time
6WebsocketВ браузерах, где нет Flash и WebRTC, но нужна средняя или низкая задержка.medium
7HLSВо всех браузерах. Где не важна задержка.high
8Android app, WebRTCВ нативных мобильных приложениях под Android, где требуется real-time задержка.real-time
9iOS app, WebRTCВ нативных мобильных приложениях под iOS, где требуется real-time задержка.real-time

Для тестирования мы использовали сервер Web Call Server 5, который конвертирует RTSP поток для раздачи в 9 перечисленных направлениях.

Ссылки

Web Call Server 5 — сервер для раздачи RTSP потока
Flash Streaming — пример swf приложения, проигрывающего потоки по RTMP и RTMFP. Способы 1 и 3.
Source — исходный код swf приложения на Flex / AS3.

Player — пример web-приложения, которое воспроизводит RTSP поток по RTMP, RTMFP, WebRTC, Websocket. Способы 2,4,5,6.
Source — исходный код веб-плеера.

HLS плеер — пример web-плеера, играющего HLS. Способ 7.
Source — исходный код HLS плеера.

Android плеер WebRTC — пример мобильного приложения, которое играет поток по WebRTC. Способ 8.
Source — исходный код мобильного приложения.

iOS плеер WebRTC — пример мобильного приложения, которое играет WebRTC поток. Способ 9.
Source — исходный код мобильного приложения.

Источник

Что такое протокол RTSP для IP-камер

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

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

В этой статье вы узнаете, что такое протокол RTSP и как его использовать для IP-камеры, цифрового рекордера (DVR) или сетевого рекордера (NVR).

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Что такое протокол RTSP?

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

Протокол RTSP для CCTV

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

Приобретая IP-камеру и сетевой видеомагнитофон от разных производителей, вы можете общаться с ними по этому универсальному протоколу.

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

Как использовать протокол RTSP

Представьте, что вы приобрели IP-камеру у Dahua (китайского производителя) и хотите использовать ее с сетевым рекордером (NVR), который у вас уже есть, но он принадлежит другому производителю, например Samsung.

Вам следует поискать в руководстве по эксплуатации камеры Dahua команду RTSP, которая должна использоваться для потоковой передачи видео по сети.

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

После получения этой информации вы должны вставить ее в устройство записи, которое инициирует запрос на отправку видео по этому универсальному протоколу.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

На практике просто откройте меню NVR и введите команду RTSP, а затем введите имя пользователя и пароль IP-камеры, и после получения этой информации камера отправит видеопоток в реальном времени.

Как использовать протокол RTSP для облачной записи

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

На приведенной ниже схеме показана IP-камера, которая установлена ​​во внутренней сети и подключена к маршрутизатору. Вам просто нужно настроить сервер записи в облаке для отправки команды RTSP через Интернет, и как только она будет получена камерой, она начнет потоковую передачу видео.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

В этом примере сервер просто отправляет команду RTSP через Интернет и, достигнув внешнего интерфейса маршрутизатора, направляет его во внутреннюю сеть, где расположена камера.

Следовательно, необходимо настроить маршрутизатор и ввести правила маршрутизации, основанные на сетевых интерфейсах и портах связи.

Как проверить IP-камеру с протоколом RTSP

Существует традиционное бесплатное программное обеспечение под названием VLC, которое можно использовать для таких тестов. Диаграмма ниже показывает пример того, как его использовать.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

В этом примере IP-камера подключена к маршрутизатору, который, в свою очередь, подключен к ноутбуку, который использует программное обеспечение VLC для отправки команды RTSP на камеру. Все находится в локальной сети, и поэтому нет необходимости в правилах маршрутизации (устройства подключены к внутренним портам).

В программном обеспечении VLC просто откройте меню « Media> Open Network Stream » или введите CTRL + N и вставьте команду RTSP с IP-камеры.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Команда в этом случае:

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

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

После этого начального теста можно перейти к более сложным тестам и использовать удаленное соединение с устройствами записи IP-камер или системами облачной записи.

Практический пример использования протокола RTSP через облако

Давайте поговорим о практическом примере использования протокола RTSP для CCTV.

Представьте себе ситуацию, когда у вас есть несколько аналоговых камер видеонаблюдения, подключенных к цифровому рекордеру (DVR), и вы намерены иметь избыточные видеозаписи. Вам просто нужно выбрать сервис, который позволяет хранить все на сервере в облаке (где-то в Интернете).

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

В этом примере я буду использовать службы Angelcam, которые работают с различными марками устройств, а также хорошо работают с протоколом RTSP.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Настройка роутера для работы с облаком

Перед выполнением тестов с помощью команды в облаке необходимо настроить маршрутизатор, эта процедура предельно проста, достаточно использовать информацию IP и порт IP-камеры.

По сути, вы должны сообщить маршрутизатору, что он должен направлять трафик, поступающий из Интернета, на IP-камеру всякий раз, когда запрос направлен на определенный логический порт, который в случае протокола RTSP по умолчанию равен 554.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Очевидно, вам придется искать другие меню в разных моделях маршрутизаторов, обычно вы находите это меню как переадресация портов, переадресация портов или NAT.

Как настроить облачный сервер

Видеорегистратор Dahua может беспрепятственно работать с этой службой, поскольку она позволяет использовать команду RTSP, а информация, необходимая для настройки, доступна в руководстве по продукту.

В этом конкретном случае устройство представляет собой 4-канальный цифровой видеорегистратор Dahua, который использует следующую команду RTSP

Просто используйте эту команду и замените информацию об IP, порте, пользователе и пароле, и все, все будет работать в соответствии с вашей сетью. Все должно быть настроено на стороне сервера облака, и правила маршрутизации должны быть готовы на маршрутизаторе, который находится в вашей локальной сети.

Посмотрите на следующем изображении пример того, как настроить облако Angelcam. После создания учетной записи платформы на сайте https://angelcam.com войдите под именем пользователя и паролем и выберите опцию DVR и NVR.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

После этого просто введите или вставьте команду RTSP, как показано на следующем рисунке

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

Обратите внимание, что используемая команда включает внешний IP-адрес, используемый маршрутизатором, и порт 554, который использовался в конфигурации маршрутизатора и который является стандартом DVR.

Важно понимать концепцию: команда RTSP, отправляемая облачным сервером, поступает на маршрутизатор через внешний интерфейс перед маршрутизацией в соответствии с установленными правилами, и поэтому вы должны убедиться, какой внешний IP-адрес используется маршрутизатором.

На следующем рисунке показан конечный результат подключения камеры к серверу в облаке.

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp

В некоторых случаях вы заметите, что качество изображения может ухудшаться из-за некоторых факторов, таких как отсутствие стабильности интернет-соединения, уменьшение доступной полосы пропускания или несовместимость команд между облачным сервером или камерой.

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

Если у вас нет статического IP-адреса в вашей интернет-ссылке

Если у вас нет статического IP-адреса в интернет-соединении, вы можете использовать службу DDNS, доступную в Интернете, поэтому облачная служба будет продолжать работать и записывать изображения с вашей камеры, даже если произошла автоматическая смена внешнего IP-адреса. вашего роутера.

Как найти команду RTSP вашей IP-камеры

Заключительные соображения

Теперь вы уже знаете, что такое протокол RTSP и как вы можете проводить тесты и использовать его в практических ситуациях.

Я рекомендую вам выполнить локальные тесты с программным обеспечением VLC и устройствами, имеющимися в вашей сети, чтобы ознакомиться с использованием этого протокола.

Если понравилась статья поделитесь в социальных сетях, кликнув по иконкам ниже

Источник

Захват видео с сетевых камер, часть 2

чем открыть протокол rtsp. Смотреть фото чем открыть протокол rtsp. Смотреть картинку чем открыть протокол rtsp. Картинка про чем открыть протокол rtsp. Фото чем открыть протокол rtsp
В первой своей статье «измерение расстояния до объекта и его скорости» я рассмотрел захват изображений с веб-камер через Video4Linux2 и через DirectX. В следующей статье «захват видео с сетевых камер, часть 1» я рассмотрел как работать с сетевыми Motion-JPEG камерами. Сейчас я поведаю Вам о захвате изображений с сетевых RTSP камер, в частности поток Motion-JPEG по RTSP.

Задача эта более сложная нежели Motion-JPEG по HTTP, так как необходимо больше действий, больше подключений, но взамен мы получаем большую гибкость, скорость, функциональность и даже некую универсальность. Честно говоря, RTSP для простых задач избыточен, но я не сомневаюсь, что найдутся ситуации, где он будет необходим.

Что такое RTSP

Рабочей лошадкой является другой протокол: RTP — Real-time Transport Protocol — транспортный протокол реального времени. С его помощью и передаются нужные нам данные. Стоит отметить, что с этим протоколом очень даже приятно работать, дело в том, что он облегчает клиентскому ПО восстановление данных после их фрагментации на канальном уровне. А также несёт в себе ещё несколько полезных полей: формат передаваемых данных, временную метку и поле синхронизации (если передаётся, например, одновременно аудио и видео). Хотя этот протокол может работать по TCP, его обычно используют с UDP из-за его ориентированности на скорость. То есть RTP данные это UDP датаграмма с заголовком и полезными данными медиа-контента (payload).

Казалось бы нам больше ничего и не нужно. Подключаемся по RTSP, забираем по RTP. Но не тут-то было, умные дяди придумали третий протокол: RTCP — Real-time Transport Control Protocol — протокол контроля за транспортом в реальном времени. Этот протокол служит для определения качества сервиса, с его помощью клиент и сервер знают как хорошо или плохо идёт передача контента. В соответствии с этими данными сервер, например, может понизить битрейт или вообще перейти на другой кодек.

Принято, что RTP использует чётный номер порта, а RTCP следующий нечётный.

Пример общения по RTSP

У меня только один источник RTSP потока — камера eVidence APIX Box M1, поэтому все примеры относятся к ней.

Ниже лог общения между плеером VLC (он правда мне очень помогает в моих исследованиях) и этой камерой. Первый запрос от VLC на порт 554 камеры. Ответ через пустую строку и начинается с «RTSP/1.0».

Первым делом VLC спрашивает камеру:
— А что я вообще могу с тобой делать? (OPTIONS)
— И тебе привет. А можешь ты меня просить сделать любое из OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY и PAUSE.
— Ладно, тогда скажи мне что у тебя есть по запросу «/jpeg»? (DESCRIBE)
— Тут у меня видео первой дорожкой идёт, M-JPEG, а второй дорожкой идёт аудио простое.
— Интересно глянуть на видео, первую дорожку, отсыпь мне его, пожалуйста в карман номер 41760, а шелуху всякую можешь в карман номер 41761 скидывать. (SETUP track1)
— ОК, по твоей команде…
— И звук тоже хочу послушать, сыпь в 7878, 7879 карманы. (SETUP track2)
— Да без проблем.
— Ну, посыпали. (PLAY)
Через некоторое время:
— Ладно, хватит, насмотрелся. (TEARDOWN)
— Как скажешь.

А ответ от сервера начинается с » RTSP/1.0 200 OK «, это прямо как » HTTP/1.1 200 OK » — знак, что всё хорошо: запрос принят, запрос понятен и не было никаких проблем в его реализации. И прямым текстом следует перечисление всех доступных методов.

Далее мы собираем информацию о том, что нас ждёт по запросу /jpeg, ведь мы именно за ним и пришли по ссылке » rtsp://192.168.0.254/jpeg «. Также указываем, что хотим получить ответ в виде SDP (строка 12).

Здесь всё достаточно очевидно. Нужны нам следующие строки:

Если мы хотим получать только видео, то из аудио данных мы игнорируем всё, кроме названия трека. Он нам нужен, чтобы настроить поток, но нас никто не заставляет этот поток принимать, однако камера отказывается работать, если игнорировать аудио полностью (если делать SETUP только для видео трека).

После команды PLAY начнётся передача видео на порт 41760 и аудио на порт 7878. И по команде TEARDOWN вещание прекращается, соединение разрывается.

MJPEG over RTP

Переносимся на один уровень инкапсуляции выше. Теперь стоит задача преобразовать получаемые видео данные в полноценное JPEG изображение. В случае MJPEG по HTTP всё просто — вырезаем кусок потока и работаем с ним сразу как с JPEG изображением. В случае же RTP изображение передаётся не полностью, JPEG заголовок опускается для экономии трафика. Его необходимо восстановить самостоятельно из прилагаемых данных.

RTCP пакет содержит в себе некоторое подмножество, он бывает четырёх типов: 201 — отчёт источника, 202 — отчёт получателя, 203 — описание источников и 204 — назначение определяется приложением. Мы должны принимать в первую очередь 201 тип, затем отправлять 202 тип. 203 и 204 необязательны, но я их тоже учитываю. В одном UDP пакете может быть несколько RTCP пакетов.

На этом введение заканчивается.

Python MJPEG over RTSP client

Вот мы и добрались до питона. Клиент состоит из нескольких файлов, main.py содержит в себе callback функцию, которая обрабатывает получаемые изображения, также он запускает механизмы сетевого фреймворка Twisted и хранит в себе параметры подключения к камере. Все листинги я привожу укороченными, полную версию можно скачать по ссылке в конце статьи.
main.py

В принципе можно работать и без реализации RTCP протокола и приёма аудио данных. В этом случае камера разрывает соединение через примерно минуту. Приходится всё время переподключаться, это делается автоматически, поэтому проблем не доставляет. Однако для статьи я дописал RTCP часть и сделал заготовку для приёма аудио данных.

В случае присутсвия аудио трека, этот модуль также запускает rtp_audio_client.py и соответствующий RTCP клиент.

Парсер RTP датаграм выглядит вот так:
rtp_datagram.py

Модуль восстановления JPEG достаточно большой, так как содержит в себе несколько таблиц и довольно длинную функцию генерации заголовка. Поэтому я их здесь опущу, предоставив только функции парсинга полезной нагрузки RTP и создания окончательного JPEG изображения.
rfc2435jpeg.py

Для корректной работы нам нужно принимать и отсылать RTCP пакеты, принимаем Sender’s Reports, отсылаем Receiver’s Reports. Для упрощения задачи мы будем отсылать наши RR сразу после приёма SR от камеры и будем в них закладывать идеализированные данные о том, что всё хорошо.
rtcp_client.py

А вот модуль работы непосредственно с RTCP датаграмами. Он получился тоже достаточно большим.
rtcp_datagram.py

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *