Как работать с rtsp-потоком
Содержание:
- Potential Pitfalls
- Тестирование RTSP как WebRTC
- Ретрансляции потоков
- Как узнать RTSP адрес
- Способы узнать адрес камеры
- Подключаем IP камеру к роутеру и к облаку по RTSP для записи видео
- Как настроить сетевое оборудование
- Статьи по теме
- Подводный камень #3 — Битрейт зрителей и потери
- Ссылки
- Смотрим видео через RTSP
- Полный список опций
- Best RTSP IP Cameras Reviews & Recommendations
- Как получить RTSP-ссылку на видеопоток
- Подведем итоги
Potential Pitfalls
RTSP IP cameras enable users to stream live video feeds on an RTSP compatible players, Windows RTSP player, Chrome, IE web browser, RTSP software, or RTSP Client.
However, the convenience of RTSP can lead to serious problems if being used improperly.
For example, some IP cameras were hacked and live footage from homes is being streamed or watched by strangers because some IP cameras shares similar RTSP stream URL and some users are forgetful or indiscreet about their username and password. (Check out unsecured IP camera list)
To prevent your IP cameras from being hacked and footage being watched, users need to take some safeguards.
For example, changing your IP camera account name and creating a strong account password during setup.
Besides, if your IP camera is connected to your home router, one way to fend off any potential attack or hacking is to enable WPA2-based encryption.
Besides, updating IP camera/NVR firmware on a regular basis helps as well.
Тестирование RTSP как WebRTC
Пришла пора провести несколько тестов для выявления действительной картины происходящего. Возьмем реальную IP-камеру и проведем тестирование с целью измерения задержки при трансляции.
Для тестирования возьмем древнюю IP-камеру D-link DCS-2103 с поддержкой RTSP и кодеков H.264 и G.711.
Так как камера долго пролежала в шкафу с другими полезными девайсами и проводами, пришлось отправить ее в Reset, нажав и подержав кнопку на задней стороне камеры 10 секунд.
После подключения к сети, на камере загорелась зеленая лампочка и роутер увидел еще одно устройство в локальной сети с IP адресом 192.168.1.37.
Заходим в веб-интерфейс камеры и выставляем кодеки и разрешение для тестирования:
Далее заходим в сетевые настройки и узнаем RTSP адрес камеры. В данном случае RTSP-адрес live1.sdp, т.е. Камера доступна по адресу rtsp://192.168.1.37/live1.sdp
Доступность камеры легко проверить с помощью VLC плеера. Media — Open Network Stream.
Мы убедились, что камера работает и отдает видео по RTSP.
В качестве сервера для тестирования будем использовать Web Call Server 5. Это стриминг сервер с поддержкой RTSP и WebRTC протоколов. Он будет подключаться к IP-камере по RTSP и забирать видеопоток. Далее раздавать поток по WebRTC.
Вы можете установить Web Call Server на свой хост либо запустить готовый инстанс Amazon EC2.
После установки необходимо переключить сервер в режим RTSP non-interleaved, который мы обсуждали выше. Это можно сделать добавлением настройки
Эта настройка добавляется в конфиг flashphoner.properties и требует перезагрузки сервера:
Таким образом, у нас есть сервер, который работает по схеме non-interleaved, принимает пакеты от IP-камеры по UDP, и далее раздаёт по WebRTC (UDP).
Тестовый сервер находится на VPS-сервере, расположенном в датацентре Франкфурта, имеет 2 ядра и 2 гигабайта RAM.
Камера находится в локальной сети по адресу 192.168.1.37.
Поэтому первое что мы должны сделать — это пробросить порт 554 на адрес 192.168.1.37 для входящих TCP / RTSP соединений, чтобы сервер мог установить подключение к нашей IP-камере. Для этого в настройках роутера добавляем всего одно правило:
Правило говорит роутеру перенаправлять весь входящий на порт 554 трафик, на 37 — IP адрес.
Далее осталось узнать свой внешний IP-адрес. Это можно сделать за 5-15 секунд, погуглив по слову whatismyip
Если у вас дружелюбный NAT и вы знаете внешний IP-адрес, то можно начинать тесты с сервером.
Стандартный демо плеер в браузере Google Chrome выглядит так:
Чтобы начать играть RTSP поток, нужно просто ввести его адрес в поле Stream.В данном случае адрес потока: rtsp://ip-cam/live1.sdpЗдесь ip-cam это внешний IP адрес вашей камеры. Сервер будет пытаться установить соединение именно по этому адресу.
Ретрансляции потоков
Ретрансляция также является вариантом манипуляции над входящими на сервер стримами и заключается в принудительной передаче стрима на сторонний сервер. Синонимом ретрансляции являются такие слова как: републикация, пуш, инжект.
Ретрансляция может осуществляться по одному из следующих протоколов: WebRTC, RTMP, SIP/RTP. В таблице показано направление, по которому может быть ретранслирован поток.
WebRTC | RTMP | SIP/RTP |
---|---|---|
WCS | RTMP server WCS | SIP server |
Ретрансляция WebRTC
Поток может быть ретранслирован на другой WCS-сервер если по каким-то причинам требуется сделать поток доступным на другом сервере. Ретрансляция производится через REST API методом /push. При поступлении такого REST-запроса, WCS подключается к указанному серверу и публикует на него поток сервер-сервер. После этого поток становится доступен для воспроизведения на другой машине.
— используемый REST-метод.
Ретрансляция RTMP
Как и в случае с ретрансляцией по WebRTC, возможна ретрансляция и по RTMP а другой сервер. Разница будет лишь в протоколе ретрансляции. RTMP-ретрансляция также выполняется через /push и позволяет передать поток как на сторонние RTMP серверы, так и на сервисы, поддерживающие RTMP Ingest: Youtube, Facebook streaming, и т.д. Таким образом, WebRTC стрим может быть ретранслирован в RTMP. С тем же успехом в RTMP можно ретранслировать любой другой стрим входящий на сервер, например RTSP или VOD.
Ретрансляция видеопотока на другой RTMP-сервер производится при помощи REST-вызовов
— используемый REST-вызов.
Ретрансляция SIP/RTP
Достаточно редко используемая функция. Чаще всего в энтерпрайзе. Например, когда требуется установить SIP-звонок с внешним сервером SIP-конференций и перенаправить в этот звонок аудио или видеопоток чтобы зрители конференции увидели какой-то видеоконтент: “Посмотрите пожалуйста этот ролик” или “Коллеги, а сейчас давайте посмотрим на стрим с IP-камеры со стройки объекта”. Надо понимать, что сама конференция существует и управляется в данном случае на внешнем ВКС-сервере с поддержкой SIP (Недавно тестировали решение от Polycom DMA), мы же просто подключаемся и ретранслируем на этот сервер существующий поток. Функция REST API называется /inject и служит как раз для этого случая.
REST API команда:
Как узнать RTSP адрес
Ссылка может находиться в документации или явно указываться в веб-интерфейсе устройства. Если известно, что камера точно поддерживает RTSP, но параметры нигде явно не указаны, их придется выяснять:
- На сайте разработчика.
- Запросить напрямую у производителя или поставщика. Как правило, по запросу они такую информацию предоставляют, с этим нет проблем даже у китайских вендоров с AliExpress.
- Распознать камеру с помощью протокола ONVIF, который поддерживается практически всеми моделями.
Для последнего потребуется ПО Onvif Device Manager, компьютер под управлением Windows и сама камера.
Device Manager умеет конфигурировать видеосервер, захватывать видео и так далее, но самая важная функция этой программы в данном случае — WS-Discovery, обнаружение устройств в сети.
Когда вы скачали и поставили программу, нужно сделать следующее:
- запустить ее и нажать внизу кнопку Refresh. Начнется процесс поиска;
- когда камера обнаружится, выбрать в меню пункт Live Video;
- под картинкой будет адрес rtsp-ссылки, который можно скопировать для дальнейшего использования.
Способы узнать адрес камеры
В руководстве пользователя некоторых IP-камер не указываются технические характеристики и способ подключения. В этой ситуации IP-адрес определяется самостоятельно. Имеются такие способы получения адреса потока:
- Обратиться в техническую поддержку продавца или производителя с запросом о предоставлении данной информации. В большинстве случаев способ работает.
- При невозможности связаться с производителем оборудования в интернете находится, загружается и устанавливается приложение Onvif Device Manager. Все IP-камеры работают с протоколом Onvif и передают ему свои настройки. ODM обрабатывает данные и выводит их пользователю, в т. ч. адрес RTSP-камеры.
- Данные параметры устанавливает производитель, применяя одинаковое значение. Этой особенностью можно воспользоваться, зная наименование модели или бренда. Для широко распространенной продукции HIKVISION IP-адрес по умолчанию 192.168.1.64/DHCP. Авторизация осуществляется с логином пользователя admin и таким же значением пароля — admin. Передача и запись данных осуществляются через стандартные порты 80, 443, 554, 8000.
Утилита Onvif Device Manage.
Подключаем IP камеру к роутеру и к облаку по RTSP для записи видео
1451 просмотровИнтернет 24 Фев 2019
В статье опишу самый простой способ организации IP видеонаблюдения через интернет, и с помощью приложения, которое будет слать уведомления о движении.
Что нужно для этого?
- IP камера с поддержкой RTSP протокола;
- Роутер Mikrotik (можно любой роутер, в моем случае именно такой);
- Патчкорд нужной длинны;
- Пара POE инжекторов (для того, что бы пустить питание по патчкорду без лишних проводов);
- Блок питания на 12 Вольт и не меньше 1 Ампера для одной камеры;
- Перфоратор или дрель, в зависимости от того, куда будете крепить камеру;
- Белый IP адрес выданный провайдером;
- Облачный сервис для IP видеонаблюдения, который поддерживает RTSP проктокол;
- Сразу продумайте как прокладывать кабель, будете ли прятать соединения возле камеры в специальную коробочку, нужен ли кабель канал.
Подключили? Теперь нужно правильно настроить подключение камеры в роутере:
Присваиваем камере постоянный локальный IP адрес. В Mikrotik для этого нужно зайти в IP -> ARP. В открывшемся окошке нажимаем правой кнопкой на IP с MAC-адресом камеры и выбираем «Make Static».Так не будет меняться IP у камеры внутри нашей сети, если камеру отключить и снова подключить. Плюс по этому IP всегда будет доступ к настройкам камеры в веб-интерфейсе (т.е. просто внутри локальной сети, открываете браузер, вводите локальный IP камеры и попадаете в её настройки).
Следующий шаг, это сетевые настройки в самой камере
По назначенному локальному IP адресу камеры заходим в браузере в настройки камеры. Настройки многих камер открываются только в Internet Explorer, учтите это (кстати вот статья о том, как открыть Internet Explorer в Windows 10). У разных камер, разный интерфейс настроек. Просто покажу пример сетевых настроек своей камеры с кратким разъяснением.
Проверяем работу RTSP внутри локальной сети
После назначения постоянного IP вашей камере, можно проверить работу видеопотока через RTSP протокол внутри локальной сети. Для этого нужно знать какая правильная ссылка rtsp:// для камеры, так как у разных производителей камер по разному. Эту информацию можно найти в инструкции к камере, на сайте производителя камеры или погуглить.У моей камеры она выглядит так rtsp://admin:123456@192.168.88.
12:554/mpeg4 (admin — логин камеры, 123456 — пароль камеры, 192.168.88.12 — локальный IP камеры, 554 — порт RTSP в камере, почти во всех камерах именно такой, mpeg4 — видеокодирование, в моей камере оно указывается обязательно, в других камерах может указываться по другому).
Устанавливаем VLC плеер -> Запускаем и нажимаем вверху «Медиа» -> выбираем «Открыть URL…» -> в поле «Введите сетевой адрес» введите rtsp ссылку -> нажмите «Воспроизвести». Должна открыться трансляция с камеры.
Открываем видеопоток по RTSP из внешнего интернета
К камере должен быть доступ извне по RTSP протоколу. Для этого нужно сделать проброс портов на 554 порт камеры. Гуглите, что бы узнать как сделать проброс портов в конкретном роутере (обычно это не сложно). В Mikrotik это немного сложнее:
- Заходим в IP -> Firewall.
- Во вкладке Filter Rules нужно хотя бы временно отключить запрещающие фильтры. (это отдельная обширная тема в Микротиках, просто отключите всё, кроме верхнего правила, или погуглите о Filter Rules в Микротиках)
- Во вкладке NAT обязательно должно быть сначала правило маскарадинга, а после него правило переброса. Создадим их.
- Сначала маскарадинг: нажимаем Add -> во вкладке General в пункте Chain выбираем srcnat -> во вкладке Action выбираем masquerade -> нажимаем Apply и OK.
- Переброс на 554й порт камеры: нажимаем Add -> во вкладке General выбираем dstnat -> в пункте Protocol выбираем tcp -> в пункте Dst. Port пропишите 554 -> в пункте In. Interface выберите в какой порт подключен кабель интернета, зачастую это ether1 -> во вкладке Action в пункте Action выберите dst-nat -> в пункте To Addresses пропишите локальный IP камеры -> в пункте To Ports пропишите 554.
В итоге должно получится как на скриншоте:
Подключаем IP камеру к облачному сервису по RTSP протоколу
Сделав проброс 554 порта для видимости RTSP видеопотока во внешний интернет, можно подключить камеру к облачному сервису видеонаблюдения. Заодно проверим всё ли работает.Я выбрал сервис ipeye.ru, там простой интерфейс, бесплатная трансляция и недорогая видеозапись, плюс есть приложение оповещающее о движении и запись так же по движению. Главное, что поддерживает RTSP
Как настроить сетевое оборудование
Хотя процесс настройки схож во многих роутерах, названия параметров и настроек у разных производителей могут отличаться. Прежде чем приступать к настройке, ознакомьтесь с инструкциями к оборудованию. В статье камера будет подключаться к роутеру TP-Link (модель: TL-WR842N, версия прошивки: 150921).
Если вы подключаете IP-камеру внутри корпоративной сети — обратитесь к вашему системному администратору. Он поможет с настройкой.
- Резервирование IP-адреса за камерой.
- Перенаправление сетевых портов.
Как присвоить IP-адрес камере
Существует два способа присвоить камере постоянный IP-адрес:
- В настройках роутера
- В настройках камеры
В примере мы разберём первый способ.
Прежде чем приступить к резервированию IP-адреса, включите DHCP в настройках вашей IP-камеры. Процедура описана в инструкции производителя.
Процесс резервирования IP-адреса:
1. Подключите к камере кабель питания и сетевой кабель роутера.
2. Напишите в адресной строке браузера IP-адрес вашего роутера, чтобы перейти в его настройки.
IP-адрес роутера может зависеть как от настроек сети, так и от модели сетевого оборудования. Как правило, IP-адрес указан в документации вашего роутера (чаще всего это 192.168.0.1 или 192.168.1.1). Узнать его можно и с компьютера или ноутбука, подключенного к вашей сети.
Как узнать IP-адрес роутера в Windows
1. Откройте командную строку
Первый способ: одновременно нажмите WIN и R , введите cmd и нажмите Enter.
Второй способ: войдите в меню Пуск, введите в поле поиска командная строка и выберите её в результатах поиска.
2. Введите команду ipconfig и нажмите Enter. IP-адрес роутера будет указан в строке Основной шлюз.
Как узнать IP-адрес роутера в macOS
- Откройте Системные настройки.
- Выберите меню Сеть и нажмите кнопку Дополнительно.
- Откройте вкладку TCP/IP. IP-адрес вашего роутера указан в строке Маршрутизатор.
При входе в настройки роутер запросит логин и пароль. Они указываются в инструкции, на коробке или корпусе устройства.
3. Перейдите в настройки DHCP. Если DHCP выключен — включите функцию и перезагрузите роутер.
4. Перейдите в DHCP Client List. Вы увидите список подключенных к роутеру устройств. В нем необходимо определить вашу камеру и скопировать её MAC-адрес.
В большинстве случаев камера подписана Unknown или имеет название модели или марки производителя.
5. Перейдите в меню Address Reservation и нажмите Add New. Вставьте МАС-адрес камеры и задайте ей IP-адрес. Чтобы избежать конфликтов IP-адресов мы рекомендуем зарезервировать за камерой тот IP-адрес, который был выдан ей роутером автоматически. Учитывайте, что при подключении нескольких камер необходимо резервировать IP-адрес для каждой из них.
Резервирование IP-адреса необходимо, чтобы IP-адрес камеры не менялся после её переподключения или перезагрузки роутера.
6. Перезагрузите или переподключите к роутеру IP-камеру. Теперь она имеет статический IP-адрес внутри вашей сети.
Как перенаправить сетевые порты
Если у вашего оборудования есть функция UPnP — включите её в настройках IP-камеры и роутера. После этого порты будут перенаправлены автоматически.
Как включить функцию UPnP на роутере TP-link
- Перейдите в настройки роутера.
- Выберите категорию Forwarding.
- Перейдите во вкладку UPnP и нажмите Enable, если опция была отключена.
1. В настройках роутера перейдите в раздел Forwarding. Выберите Port Triggering и нажмите Add New.
2. Укажите сетевые порты: внутренний (который используется камерой внутри сети, значение указано в инструкции производителя) и внешний (который будет доступен из внешнего мира).
Не рекомендуется использовать такие сетевые порты: 20, 21, 22, 53, 80, 110, 138, 139, 443, 3306, 3128, 3389, 5900, так как они чаще всего используются различными служебными сервисами.
Учитывайте, что внешний порт должен быть доступным (открытым в настройках роутера и не занятым каким-либо сервисом). Проверить это можно при помощи онлайн-сервисов, например: 2ip.ru. Если у вас возникли проблемы с определением открытого порта — обратитесь к вашему интернет-провайдеру.
По умолчанию IP-камеры используют 554 порт, но номер порта может отличаться у разных производителей. Точное значение можно узнать в инструкции устройства.
3. Сохраните настройки и перезагрузите роутер. Порты перенаправлены.
При подключении нескольких IP-камер для каждой из них необходимо выделить и настроить свои сетевые порты.
Статьи по теме
- Обзор WCS 5.2 — сервера для веб-разработчиков онлайн трансляций и видеочатов
- Никогда не транслируйте WebRTC потоки в HLS, или проблема первого подключившегося зрителя
- Индикатор качества канала серверного WebRTC через TCP
- Как готовить RTSP на сайте в 2020 году, или почему кабаны не успеют убежать
- Облачный WebRTC стриминг на DigitalOcean
- iOS Safari 11 теперь умеет WebRTC
- Тянем ролик с Youtube и раздаем по WebRTC в реалтайме
- Межсерверное WebRTC
- Встраиваем WebRTC плеер для живых трансляций на сайт
- 7 способов транслировать RTSP на страницу
- Задержка в онлайн-трансляциях с веб-камеры, бессердечная ты стерва
- Браузерная WebRTC трансляция с RTSP IP-камеры с низкой задержкой
Подводный камень #3 — Битрейт зрителей и потери
Если IP-камера отправляет поток, превышающий возможности канала зрителя (например камера отправляет 1 Mbps
, а зритель может принять только 500 Kbps
), то на этом канале будут большие потери и, как следствие фризы видео или сильные артефакты.
- Транскодировать видеопоток индивидуально под каждого зрителя под требуемый битрейт.
- Транскодировать потоки не для каждого подключившегося, а для группы группы зрителей.
- Подготовить потоки с камеры заранее в нескольких разрешениях и битрейтах.
Первый вариант
Второй вариант
- 200 Kbps
- 1 Mbps
две
Третий вариант
В этом случае транскодинговая нагрузка на сервер уходит и смещается на саму камеру, т.к. камера теперь вынуждена кодировать два и более потоков вместо одного.
Ссылки
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 — исходный код мобильного приложения.
Есть ip-камера (embedded устройство с FreeRTOS), которая отдает видео поток (H.264). Просмотр реализован в браузере, с использованием VLC
Вопрос: Как реализовать просмотр видео потока в браузерах (IE, FF, Chrome) без VLC? Если ли open-source решение (на базе Flash, Java или иное)?
Есть некое устройство — мобильный видеорегистратор на базе платформы armhf, работает исключительно через веб-интерфейс. Было неплохое решение по отображению RTSP потока в браузере (Chrome) работавшее на базе расширения VXG Media Player (PNaCl расширение), однако в Chrome 76 оно перестало работать. Как я понял, сейчас для всех NaCl/PNaCl расширений требуется Origin Trial, который Google выдает, и то до декабря 2020, а дальше полный отказ. Ошибка в консоли браузера выглядит так «PNaCl modules can only be used on the open web (non-app/extension) when the PNaCl Origin Trial is enabled». Но есть сложность — все это решение работало на устройстве, которое получает адрес по DHCP, в общем домена нет, адрес постоянно меняется — Origin Trial, как я понимаю, не получишь.
Пошёл в поисках нового решения по трансляции RTSP потока.
Попытка использования ffserver + ffmpeg особо ничего не дала — задержка огромная, довести качество до уровня предыдущего решения не удалось (ранее было FHD разрешение с отличным качеством в браузере).
Следующее решение в теории расписанное везде — использование websocket или WebRTC. И есть готовые решение от Streamdian и Flashphoner. Бесплатные плееры есть, но их websocket-сервера стоят прям немало, да и лицензии на них привязываются к IP/домену. В общем не очень годится. Хотя решение от Streamdian протестировал, качество есть, задержка 5-10 сек, и с небольшими косяками, но возможно можно довести до ума.
Есть бесплатный websocketd (есть даже скомпилированное решение под armhf, которое мне нужно), но как через него прогонять RTSP — — как то непонятно. По факту websocketd проксирует в веб любую программу, использующую stdin/stdout. Для проксирования RTSP нужен какой то проксирующий скрипт.
Конечно, как вариант, остается писать десктопное приложение, но пока не очень хочется.
Что еще не пробовал — это HLS.
Может кто еще другие варианты знает, пока я тестирую HLS.
Смотрим видео через RTSP
Самый простой способ получить rtsp поток с ip камеры — использовать проигрыватель VLC. В нем достаточно пройти в пункт меню «Медиа — Открыть URL…», перейти в появившемся диалоге на вкладку «Сеть» и вставить в строку сетевого адреса rtsp-ссылку.
Для стриминга в интернет, существуют различные способы. Один из самых доступных — использовать связку VLC и программы OBS Studio, это бесплатное и достаточно простого решения.
Существуют также онлайн-сервисы вывода изображения в интернет, например, webcam.io, и прочие. Спецификации протокола открыты, поэтому специалисты могут написать и собственный проигрыватель RTSP.
Полный список опций
Это краткое описание опций для команд openRTSP и playSIP.
-4
вывести файл в формате ‘.mp4’ (в ‘stdout’, если также не задана опция «-P ИНТЕРВАЛ-В-СЕКУНДАХ»)
-a
воспроизводить только аудиопоток (в ‘stdout’, если также не задана опция «-P ИНТЕРВАЛ-В-СЕКУНДАХ»)
-A НОМЕР КОДЕКА
укажите номер статического формата полезной нагрузки RTP аудиокодека для запроса с сервера (только «playSIP»)
-b РАЗМЕР БУФЕРА
изменить размер буфера выходного файла
-B РАЗМЕР БУФЕРА
изменить размер входного буфера сетевого сокета
-c
воспроизводить непрерывно
-C
явно запрашивать многоадресный поток, даже если в ответе сервера «DESCRIBE» не указан многоадресный адрес
(Обратите внимание, что не все серверы поддерживают это.) (Только «openRTSP»). -d ДЛИТЕЛЬНОСТЬ
-d ДЛИТЕЛЬНОСТЬ
укажите явную продолжительность
-D МАКСИМАЛЬНЫЙ-РАЗРЫВ-МЕЖДУ-ПАКЕТАМИ
указать максимальный период бездействия перед выходом
-E ПОЛНОЕ ВРЕМЯ
запросить, чтобы сервер завершил потоковую передачу в указанное абсолютное время (формат: «ГГГГММДДТЧЧММССЗ» или «ГГГГММДДТЧЧММСС.долиZ») (используется только с -U АБСОЛЮТНОЕ-ВРЕМЯ)
-f ЧАСТОТА
укажите частоту кадров видео (используется только с «-q», «-4» или «-i»)
-F ПРЕФИКС ФАЙЛА
укажите префикс для каждого имени выходного файла
-g USER-AGENT
укажите имя пользовательского агента для использования в исходящих запросах
-h ВЫСОТА
укажите высоту видеоизображения (используется только с «-q», «-4» или «-i»)
-H
выводит «подсказку» QuickTime для каждой аудио/видеодорожки (используется только с «-q» или «-4»)
-i
вывести файл в формате ‘.avi’ (в ‘stdout’, если также не задана опция «-P ИНТЕРВАЛ-В-СЕКУНДАХ»)
-I ИНТЕРФЕЙС-ИЛИ-IP
указать конкретный сетевой интерфейс для получения данных
-k ПОЛЬЗОВАТЕЛЬ ПАРОЛЬ
укажите имя пользователя и пароль, необходимые для аутентификации входящей команды «REGISTER» (используется только с «-R»)
-K
Периодически отправляйте команду RTSP «OPTIONS», чтобы поддерживать соединение. (Это полезно для серверов с ошибками, которые вместо этого не слушают наши периодические пакеты RTCP «RR».)
-l
попытаться компенсировать потерю пакетов (используется только с «-q», «-4» или «-i»)
-m
выводить каждый входящий кадр в отдельный файл
-M ПОДТИП MIME
укажите подтип MIME динамического формата полезной нагрузки RTP, который аудиокодек запрашивает у сервера (только «playSIP»)
-n
получать уведомление, когда начинают поступать пакеты данных RTP
-o
запросить возможные параметры команды сервера, не отправляя «DESCRIBE» (только «openRTSP»)
-O
не запрашивать возможные команды сервера; просто отправить «DESCRIBE» (только «openRTSP»)
-p НАЧАЛЬНЫЙ-ПОРТ
укажите номер(а) клиентского порта
-P ИНТЕРВАЛ-СЕКУНДЫ
записывать новые выходные файлы каждые ИНТЕРВАЛ-В-СЕКУНДАХ секунд
-q
вывести файл формата QuickTime ‘.mov’ (в ‘stdout’, если также не задана опция «-P ИНТЕРВАЛ-В-СЕКУНДАХ»)
-Q
выводить статистику QOS о потоке данных (при выходе из программы)
-r
воспроизводить потоки RTP, но не получать их самостоятельно
-R (или -R ПОРТ)
ожидать входящей команды «REGISTER» с указанием URL «rtsp://» для воспроизведения. Этот параметр используется вместо URL-адреса «rtsp://» в командной строке. (только «openRTSP»)
-s НАЧАЛО
запросить у сервера поиск указанного времени (в секундах) перед потоковой передачей
-S БАЙТЫ-СДВИГА
предполагать простой формат полезной нагрузки RTP (пропуск специального заголовка указанного размера)
-t
передавать данные RTP/RTCP через TCP, а не через (обычный) UDP. (только «openRTSP»)
-T ПОРТ
как «-t», за исключением использования туннелирования RTSP через HTTP. (только «openRTSP»)
-u ПОЛЬЗОВАТЕЛЬ ПАРОЛЬ
укажите имя пользователя и пароль для дайджест-аутентификации
-U ПОЛНОЕ-ВРЕМЯ
запросить у сервера поиск указанного абсолютного времени (формат: «ГГГГММДДТЧЧММССЗ» или «ГГГГММДДТЧЧММСС.доляZ») перед потоковой передачей
-v
воспроизводить только видеопоток (в ‘stdout’, если также не задана опция «-P ИНТЕРВАЛ-В-СЕКУНДАХ»)
-V
печатать менее подробный диагностический вывод
-w ШИРИНА
укажите ширину видеоизображения (используется только с «-q», «-4» или «-i»)
-y
попробовать синхронизировать аудио и видео треки (используется только с «-q» или «-4»)
-z СКОРОСТЬ
запросить, чтобы сервер масштабировал поток (ускоренная перемотка вперед, медленное или обратное воспроизведение)
Best RTSP IP Cameras Reviews & Recommendations
There are tons of security cameras or systems out there.
Choosing the right and secure RTSP IP cameras is overwhelming. Today, we list out some best-reviewed and well-received indoor & outdoor IP cameras support RTSP.
Decent & Cheap Outdoor RTSP PoE IP Camera – RLC-410 (5MP Version)
RLC-410 camera, a 1920p HD PoE security camera, is one of the best-selling IP RTSP cameras with IR night vision on the Reolink website.
With a motion sensor and IR night vision, Reolink RLC-410 detects movement and trigger notification to mobile devices in real-time. RLC-410 (5MP version) supports RTSP and stream H.264 format HD videos.
With Reolink apps and desktop software, you can stream live videos effortlessly. Or you can stream live videos from RLC-410 on RTSP-enabled devices, such as Blue Iris, VLC player.
Reolink RLC-410
PoE Bullet IP Security Camera with Audio
5MP/4MP Super HD; Outdoor/Indoor Protection; 100ft Infrared Night Vision; Audio Recording; Mobile Remote Access & Control.
Learn More
Budget Outdoor RTSP Outdoor WiFi Camera – RLC-511W
RLC-511W is one of best-rated outdoor WiFi security cameras, 5MP super HD camera packed with IR night vision and the waterproof housing body.
Affordable and decent, priced at $99.99, RLC-511W WiFi security camera offers SD card option for motion-triggered recordings and supports 2.4/5G WiFi. It supports RTSP and streams 5MP HD videos in real-time on Reolink apps or Client, as well as on RTSP-supported devices.
Reolink RLC-511W
5MP Dual-Band WiFi 4X Optical Zoom Camera
5-Megapixel Super HD; Outdoor/Indoor Protection; Dual-Band WiFi 2.4 GHz and 5 GHz; 4X Optical Zoom; Built-in Micro SD Card Slot.
Learn More
Best Outdoor RTSP Home Security Camera System – RLK8-410B4
It’s a do-it-yourself (DIY) home security system and plug-and-play home security system; homeowners can install all the security cameras and the NVR all by yourself, even though you are a beginner.
Here is a hands-on review of this IP camera system.
Hot
Reolink RLK8-410B4
8-Channel PoE Security System
4 pcs 5MP/4MP Security Cameras; 2TB HDD 8-Channel NVR for 24/7 Reliable Recording; Plug & Play; 2 Network Solutions.
Learn More
Как получить RTSP-ссылку на видеопоток
Есть два способа получить RTSP-ссылку на видеопоток:
1 способ: При помощи документации производителя
Как правило, формат RTSP-ссылки указан в документации производителя или веб-интерфейсе камеры. Если такая информация отсутствует или вы её не смогли найти — воспользуйтесь вторым способом.
2 способ: При помощи онлайн-сервисов
Например, http://www.ispyconnect.com/:
1. Выберите нужную камеру из списка на сайте.
2. Заполните форму, указав внешний IP-адрес, сетевой порт, логин и пароль камеры.
Не передавайте третьим лицам данные для получения RTSP-ссылки или саму ссылку на видеопоток.
При генерации RTSP-ссылки рекомендуем указывать неверные данные и менять их на корректные после генерации. Таким образом вы себя обезопасите от перехвата ссылки на поток сторонними сервисами или кейлоггерами.
3. Нажмите Generate. Вы получите ссылку на ваш видеопоток. При необходимости подмените в ссылке неверные данные корректными.
Проверить работу RTSP-ссылки можно через VLC media player или любой плеер с возможностью просмотра потокового видео.
Подведем итоги
WCS 5.2 — это сервер для разработки приложений с поддержкой реалтайм аудио и видео для браузеров и мобильных устройств. Для разработки предоставляется четыре API: Web SDK, iOS SDK, Android SDK, REST API. На сервер можно публиковать (скармливать) видеопотоки по пяти протоколам: WebRTC, RTMP, RTSP, VOD, SIP/RTP. С сервера можно играть потоки плеерами также по пяти протоколам: WebRTC, RTMP, RTSP, MSE, HLS. Потоками можно управлять и производить над ними такие операции как: запись, нарезку снапшотов, микширование, транскодирование, добавление водяного знака, фильтрация FPS, трансляция поворотов видео в мобильных устройствах. Потоки можно ретранслировать на другие серверы по WebRTC и RTMP протоколам, а также перенаправлять в SIP-конференции. Серверы можно объединить в сеть доставки контента и масштабировать для обработки произвольного количества видеопотоков.
Что должна знать разработчик Алиса для работы с сервером
Разработчику необходимо уметь пользоваться Linux. Команды такого рода в
командной строке не должны вызывать замешательства:
Ванильный JavaScript тоже надо уметь, если речь идет о разработке под
Web.
Пригодится также умение работать с бэкендом.
WCS может не только получать управляющие команды через REST API, но и отправлять хуки — нотификации о событиях, которые на нем происходят.
Например, при попытке установить соединение из браузера или мобильного приложения, WCS вызовет хук /connect, а при попытке проиграть стрим, вызовет хук playStream. Поэтому разработчику придется побыть немного в шкуре бэка, который в состоянии написать как простого REST-клиента, так и небольшой REST-сервер для обработки хуков.
Пример REST API
— пример REST API вывода списка стримов на сервере
Пример REST хука
— обработка REST-хука /connect на стороне бэкенда.
Linux, JavaScript, REST Client / Server — три элемента, которых
достаточно для разработки продакшен сервиса на платформе WCS, работающего
с видео стримами.
Для разработки мобильных приложений потребуется знание Java и Objective C
для Android и iOS соответственно.
Установка и запуск
Быстрый запуск WCS на сегодняшний день можно провести тремя способами:
1) Установить на свой Centos7 или Ubuntu 16.x LTS или Ubuntu 18.x LTS, и
т.д. руководствуясь статьей
из документации.
или
2) Взять готовый
образ на Amazon EC2.
или же
3) Взять готовый
образ сервера на DigitalOcean.
И начать увлекательную разработку проекта с функциями потокового видео.
Обзорная статья получилась достаточно объемной. Спасибо что хватило
терпения прочесть.
Хорошего стриминга!