Программа просмотра rtsp для windows
Программа для подключения и записи видео с IP камер (протокол RTSP)
openRTSP — это программа с интерфейсом командной строки, которую можно использовать для открытия, потоковой передачи, приёма и (необязательно) записи медиапотоков, указанных в URL-адресе RTSP, т. е. URL-адресе, который начинается с rtsp://
Как установить openRTSP. Как установить LIVE555 Streaming Media
Программа openRTSP является частью пакета LIVE555 Streaming Media, поэтому для её установки, нужно установить набор программ LIVE555.
В Debian, Linux Mint, Kali Linux, Ubuntu и их производных это можно сделать командой:
В Arch Linux и производных для установки выполните команду:
В других дистрибутивах попробуйте данный поискать пакет по ключевым словам «livemedia» и «live-media». Если его нет, то вы можете скомпилировать программу из исходного кода. Для этого выполните команды:
Теперь исполнимый файл openRTSP находится в папке testProgs:
Простой запуск
Самый простой способ запустить эту программу:
где URL - это URL-адрес RTSP для открытия (т. е. начинающийся с «rtsp://»). Программа откроет указанный URL (используя команду RTSP «DESCRIBE»), получит описание SDP сеанса, а затем для каждой аудио/видео подсессии, чей формат полезной нагрузки RTP она понимает, запустит подсессии командами «SETUP» и «PLAY».
Полученные данные для каждой части записываются в отдельный выходной файл, названный в соответствии с его типом MIME. Например, если сеанс содержит аудиоподсекцию MPEG-1 или 2 (тип полезной нагрузки RTP 14), например, MP3, и видеоподсекцию MPEG-1 или 2 (полезная нагрузка RTP 32), то данные каждой подсессии будут извлечены из входящих пакетов RTP и записаны в файлы с именами «audio-MPA-1» и «video-MPV-2» (соответственно). (Затем вам, вероятно, потребуется переименовать эти файлы — присвоив им соответствующее расширение имени файла (например, «.mp3» и «.mpg») - чтобы иметь возможность воспроизводить их с помощью обычных медиаплееров.)
Вы можете использовать опцию «-F ПРЕФИКС-ИМЕНИ-ФАЙЛА», чтобы добавить префикс к имени файла, который записывается для каждой части. (Это может быть полезно, если вы запускаете «openRTSP» несколько раз в одном каталоге для чтения данных из разных сеансов RTSP.)
Извлечение одного потока
Менее подробный диагностический вывод
По умолчанию программа распечатывает (в stderr) каждый полный запрос и ответ RTSP. Для менее подробного вывода используйте параметр «-V» (верхний регистр).
Воспроизведение без получения
Если вы хотите, чтобы программа воспроизводила сеанс RTSP, но не принимала его на самом деле, вы можете сделать это, указав программе параметр «-r» («не получать»). Это полезно, если у вас есть отдельное приложение (работающее на том же хосте), которое фактически принимает входящие медиа-сеансы. (Обратите внимание, что это отдельное принимающее приложение также должно отправлять обратно отчёты о приёме RTCP, чтобы гарантировать, что время сеанса не истечёт.)
Если вы используете опцию «-r» для воспроизведения одноадресного сеанса, вы, вероятно, также захотите использовать опцию «-p НАЧАЛЬНЫЙ-НОМЕР-ПОРТА». Эта опция сообщает программе, какие номера клиентских портов использовать в командах RTSP «SETUP», т. е. какие порты RTP/RTCP сервер должен отправлять. (Без опции «-r» программа сама принимает потоки и использует для этого свои собственные временные номера портов.) НАЧАЛЬНЫЙ-НОМЕР-ПОРТА должен быть чётным числом.
Например, если сеанс RTSP состоит из части аудио и видео (перечисленных в этом порядке в возвращённом описании SDP), то "-p 6666" приведёт к тому, что порты 6666 и 6667 будут использоваться для части аудио (6666 для RTP ; 6667 для RTCP) и порты 6668 и 6669, которые будут использоваться для подсессии видео (6668 для RTP; 6669 для RTCP).
(Если вы используете параметр «-r» для воспроизведения сеанса многоадресной рассылки, вам, вероятно, также не понадобится использовать опцию «-p НАЧАЛЬНЫЙ-НОМЕР-ПОРТА», потому что описание SDP для сеансов многоадресной рассылки обычно включает номер порта для использования.)
Опции продолжительности воспроизведения
Вы можете изменить эту продолжительность, используя опцию «-d ДЛИТЕЛЬНОСТЬ». Если ДЛИТЕЛЬНОСТЬ положительна, это общее количество секунд потока, которое будет воспроизведено перед закрытием сеанса и выходом. Если ДЛИТЕЛЬНОСТЬ отрицательна, то -ДЛИТЕЛЬНОСТЬ даёт количество дополнительных секунд для задержки после времени, указанного в атрибуте SDP «a=range». (Как отмечалось выше, значение по умолчанию для этого дополнительного времени составляет 5 секунд.)
Например, если описание SDP содержит «a=range:npt=0-25», то «-d 10» означает «воспроизвести поток(и) в течение 10 секунд, затем выйти», а «-d -10» означает «воспроизвести поток(и) в течение 35 секунд, затем выйти».
Вы также можете использовать опцию «-D МАКСИМАЛЬНЫЙ-РАЗРЫВ-МЕЖДУ-ПАКЕТАМИ», чтобы запросить завершение работы программы, если в течение периода не менее МАКСИМАЛЬНЫЙ-РАЗРЫВ-МЕЖДУ-ПАКЕТАМИ секунд не было получено новых входящих пакетов RTP (т. е. данных). Эта опция полезна, если вы запускаете программу автоматически (например, из сценария) и хотите учесть возможность неожиданной остановки серверов. (Обратите внимание, что «-d» и «-D» это разные параметры, и оба могут использоваться одновременно.)
Однако обратите внимание, что если программа получает пакет RTCP «BYE» от источника — для каждого потока в сеансе — тогда программа закроет сеанс и выйдет немедленно, независимо от использования «-d» и/или опции «-D».
Вы также можете использовать опцию «-c» для непрерывного воспроизведения сеансов мультимедиа. То есть по истечении времени окончания программа запускается заново, выдавая ещё один набор запросов «PLAY». (Обратите внимание: если вы получаете данные (т.е. вы не используете опцию «-r»), это означает, что вы получите несколько копий данных в выходных файлах.)
Обратите внимание, что вы можете комбинировать «-c» с «-d ДЛИТЕЛЬНОСТЬ» и/или «-D МАКСИМАЛЬНЫЙ-РАЗРЫВ-МЕЖДУ-ПАКЕТАМИ». Так, например, «-c -d 10» означает «воспроизвести поток(и) в течение 10 секунд, затем вернуться и воспроизвести их снова в течение ещё 10 секунд и т. д. и т. д.»
Потоковая передача сеансов с контролем доступа
Некоторые серверы RTSP требуют аутентификации пользователя (с помощью имени и пароля) перед потоковой передачей сеанса. Для потоковой передачи такого сеанса используйте параметр «-u ПОЛЬЗОВАТЕЛЬ ПАРОЛЬ». (Чтобы указать пустой пароль, используйте "" вместо ПАРОЛЬ.) Программа аутентифицируется с использованием «дайджест-аутентификации» RTSP; пароль не будет отправлен в открытом виде по сети.
В качестве альтернативы вы можете попробовать включить имя пользователя и пароль в URL-адрес, например: «rtsp://ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@ХОСТ:ПРОЧЕЕ». (Однако в этом случае пароль будет отправлен в открытом виде по сети. Кроме того, не все серверы будут принимать этот тип URL-адреса.)
Вывод файла в формате ".mov", ".mp4" или ".avi"
Используйте параметр «-q» для вывода полученных данных на стандартный вывод в виде файла Apple QuickTime в формате «.mov». Каждая полученная часть будет иметь свой собственный трек в выходном файле.
Аналогично, опция «-4» создаёт файл в формате .mp4 (то есть MPEG-4).
В настоящее время эти параметры полностью поддерживаются только для ограниченного числа кодеков. Для тех кодеков, которые не полностью поддерживаются, программа по-прежнему сохранит все полученные данные в дорожке фильма, но будет использовать фиктивный атом мультимедийных данных (названный «. ») в описании образца. (Эта дорожка также будет отключена.) Прежде чем вы сможете воспроизвести такую дорожку, вам необходимо отредактировать файл.
Если сеанс содержит часть видео, вы также должны использовать параметры «-w ШИРИНА», «-h ВЫСОТА» и «-f ЧАСТОТА», чтобы указать ширину и высоту (в пикселях), и частоту кадров (в секунду) соответствующей видеодорожки. (Если эти параметры опущены, используются значения ширина = 240 пикселей; высота = 180 пикселей; частота кадров = 15). Эти значения важны; если они неверны, ваш файл может вообще не воспроизводиться!
В качестве альтернативы, если описание SDP сеанса содержит атрибут уровня мультимедиа «a=x-dimensions: ШИРИНА,ВЫСОТА», то вместо этого будут использоваться эти значения (в этом случае вам не нужно использовать «-w» и «-h»). Точно так же, если описание SDP сеанса содержит атрибут уровня мультимедиа «a=x-framerate: ЧАСТОТА», то вместо этого будет использоваться это значение (в этом случае вам не нужно использовать опцию «-f»).
Если полученный файл фильма QuickTime содержит несинхронизированные аудио- и видеодорожки, то вы можете использовать параметр «-y», чтобы попытаться создать синхронизированные аудио/видеодорожки. (Этот параметр работает путём прослушивания пакетов RTCP "Sender Report", содержащих информацию о синхронизации времени — для каждого потока. Некоторые исходные несинхронизированные данные могут быть отброшены.)
Примечание: поддержка openRTSP для создания файлов формата QuickTime весьма ограничена. В настоящее время поддерживается только звук PCM (u-law и a-law), MPEG-4, GSM и QCELP (также известный как PureVoice), и только MPEG-4, H.263/H.263+ и H.264 видео поддерживается. (Кроме того, для создания файлов формата QuickTime с подсказками звук QCELP в настоящее время не поддерживается.)
Параметр «-i» создаёт файл в формате .avi. (Эта функция поддерживается не полностью. Поддерживается видео MPEG-1, 2 или 4, JPEG и H.263, а также необработанный звук PCM или u-law. Однако MPEG и другие аудиокодеки ещё не поддерживаются.)
Важное примечание: если вы выводите файл формата «.mov», «.mp4» или «.avi», вы должны позволить «openRTSP» работать до конца, или же завершить его чисто, сигнализировав SIGHUP или SIGUSR1. Вы не должны завершать его, используя Ctrl+c, иначе выходной файл не будет записан должным образом.
Периодический вывод файла
Если задана опция «-P ИНТЕРВАЛ-В-СЕКУНДАХ», то «openRTSP» будет выводить новый файл каждые ИНТЕРВАЛ-В-СЕКУНДАХ секунд. (Имя каждого выходного файла будет включать временной диапазон (в секундах), который он представляет.)
Эту опцию также можно использовать с опциями «-q», «-4» и «-i» (для вывода файлов «.mov», «.mp4» и «.avi» соответственно). В этом случае выходные файлы будут записаны отдельно, а не в stdout.
Серверы RTSP могут дополнительно поддерживать операции «специализированного воспроизведения» в потоке — в частности, возможность поиска определённого времени в потоке и/или возможность воспроизведения потока в ускоренном, медленном или обратном воспроизведении.
Используйте параметр «-s НАЧАЛЬНОЕ-ВРЕМЯ», чтобы запросить запуск потока на второй отметке НАЧАЛЬНОЕ-ВРЕМЯ (по умолчанию: 0,0). Используйте параметр «-z СКОРОСТЬ», чтобы запросить ускоренное воспроизведение вперёд (СКОРОСТЬ > 1.0), медленное воспроизведение (0 < СКОРОСТЬ < 1.0) или обратное воспроизведение (СКОРОСТЬ < 0.0). (Значение по умолчанию 1.0: нормальное воспроизведение.)
Важно отметить, что многие, если не большинство серверов RTSP не поддерживают операции «специализированного воспроизведения» или могут поддерживать их только для некоторых типов носителей. Фактические НАЧАЛЬНОЕ-ВРЕМЯ и СКОРОСТЬ, выбранные сервером, будут показаны в ответе сервера на команду RTSP «PLAY».
Полный список опций
Это краткое описание опций для команд openRTSP и playSIP.
-4
-a
-A НОМЕР КОДЕКА
укажите номер статического формата полезной нагрузки RTP аудиокодека для запроса с сервера (только "playSIP")
-b РАЗМЕР БУФЕРА
изменить размер буфера выходного файла
-B РАЗМЕР БУФЕРА
изменить размер входного буфера сетевого сокета
-c
-C
явно запрашивать многоадресный поток, даже если в ответе сервера «DESCRIBE» не указан многоадресный адрес. (Обратите внимание, что не все серверы поддерживают это.) (Только "openRTSP")
-d ДЛИТЕЛЬНОСТЬ
укажите явную продолжительность
-D МАКСИМАЛЬНЫЙ-РАЗРЫВ-МЕЖДУ-ПАКЕТАМИ
указать максимальный период бездействия перед выходом
-E ПОЛНОЕ ВРЕМЯ
запросить, чтобы сервер завершил потоковую передачу в указанное абсолютное время (формат: «ГГГГММДДТЧЧММССЗ» или «ГГГГММДДТЧЧММСС.долиZ») (используется только с -U АБСОЛЮТНОЕ-ВРЕМЯ)
-f ЧАСТОТА
укажите частоту кадров видео (используется только с "-q", "-4" или "-i")
-F ПРЕФИКС ФАЙЛА
укажите префикс для каждого имени выходного файла
-g USER-AGENT
укажите имя пользовательского агента для использования в исходящих запросах
-h ВЫСОТА
укажите высоту видеоизображения (используется только с "-q", "-4" или "-i")
-H
выводит "подсказку" QuickTime для каждой аудио/видеодорожки (используется только с "-q" или "-4")
-i
-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
-p НАЧАЛЬНЫЙ-ПОРТ
укажите номер(а) клиентского порта
-P ИНТЕРВАЛ-СЕКУНДЫ
записывать новые выходные файлы каждые ИНТЕРВАЛ-В-СЕКУНДАХ секунд
-q
-Q
выводить статистику QOS о потоке данных (при выходе из программы)
-r
воспроизводить потоки RTP, но не получать их самостоятельно
-R (или -R ПОРТ)
ожидать входящей команды «REGISTER» с указанием URL «rtsp://» для воспроизведения. Этот параметр используется вместо URL-адреса «rtsp://» в командной строке. (только "openRTSP")
-s НАЧАЛО
запросить у сервера поиск указанного времени (в секундах) перед потоковой передачей
-S БАЙТЫ-СДВИГА
предполагать простой формат полезной нагрузки RTP (пропуск специального заголовка указанного размера)
-t
передавать данные RTP/RTCP через TCP, а не через (обычный) UDP. (только "openRTSP")
-T ПОРТ
-u ПОЛЬЗОВАТЕЛЬ ПАРОЛЬ
укажите имя пользователя и пароль для дайджест-аутентификации
-U ПОЛНОЕ-ВРЕМЯ
запросить у сервера поиск указанного абсолютного времени (формат: «ГГГГММДДТЧЧММССЗ» или «ГГГГММДДТЧЧММСС.доляZ») перед потоковой передачей
-v
-V
печатать менее подробный диагностический вывод
-w ШИРИНА
укажите ширину видеоизображения (используется только с "-q", "-4" или "-i")
-y
попробовать синхронизировать аудио и видео треки (используется только с "-q" или "-4")
-z СКОРОСТЬ
запросить, чтобы сервер масштабировал поток (ускоренная перемотка вперед, медленное или обратное воспроизведение)
В этой статье покажем 7 технологически разных способов отображения видеопотока с IP-камеры с поддержкой RTSP на web-странице браузера.
Браузеры, как правило, не поддерживают RTSP, поэтому поток будет конвертироваться для браузера через промежуточный сервер.
Способ 1 — RTMP
RTMP протокол браузеры не поддерживают, но его поддерживает старый добрый Flash Player, который работает неплохо, хоть и не во всех браузерах, и может отобразить видеопоток.
Код плеера в этом случае будет построен на Action Script 3 и выглядеть примерно так:
rtmp://192.168.88.59/live — это адрес промежуточного сервера, который заберет RTSP видеопоток с камеры и конвертирует его в RTMP
rtsp://192.168.88.5/live.sdp — это RTSP адрес самой камеры.
Немного избыточный вариант кода плеера на Flex и AS3 доступен здесь.
Выглядит это так:
Способ 2 — RTMP с оберткой HTML5
Желающих кодить на Action Script 3 все меньше. Специально для этого придуман способ с HTML5 оберткой, которая позволяет управлять RTMP-плеером из JavaScript. В этом случае флэшка подгружается на HTML-страницу только для того чтобы отобразить картинку и выдать в динамики звук.
Полный код плеера находится здесь. А выглядит это так:
Способ 3 — RTMFP
Протокол RTMFP также работает внутри флэш плеера. Разница с RTMP в том, что RTMFP работает поверх протокола UDP и тем самым является более пригодным для получения трансляции с низкой задержкой.
Код плеера на AS3 в этом случае полностью идентичен используемому в RTMP, добавлена одна буква F в строке протокола подключения к серверу.
Для порядка дадим скриншот с RTMFP
Способ 4 — RTMFP c оберткой HTML5
Этот способ идентичен пункту 2, с той разницей, что мы при инициализации в JavaScript устанавливаем RTMFP протокол для использования в нижележащей флэшке (swf-объекте).
Способ 5 — WebRTC
В данном случае Flash не используется совсем и видеопоток проигрывается средствами самого браузера, без использования сторонних плагинов. Это работает и в Android Chrome и Android Firefox — мобильных браузерах, где Flash не установлен. WebRTC дает самую низкую задержку — менее 0.5 секунды.
Код плеера тот же:
Автоматически определяется поддержка WebRTC, и если поддерживается то поток играет по WebRTC.
Способ 6 — Websockets
WebRTC и Flash не покрывают все браузеры и платформы. Например, в браузере iOS Safari эти технологии не поддерживаются.
На iOS Safari можно доставить видеопоток по транспорту Websocket (TCP соединению между браузером и сервером). В этот туннель можно завернуть сконвертированный с RTSP видеопоток. После того, как бинарные данные придут их можно декодировать с помощью JavaScript и отрисовать на Canvas HTML5-элементе.
Именно этим занимается Websocket — плеер при работе в браузере iOS Safari, а его код снаружи выглядит также:
Это чем-то похоже на подход с флэшкой, когда под HTML5 лежит swf-элемент. В данном случае, под HTML5-страницей лежит не swf-объект, а JavaScript-приложение, которое тянет данные по вебсокетам, декодирует и отрисовывает на Canvas в нескольких потоках.
Так выглядит RTSP поток на Canvas в браузере iOS Safari
Способ 7 — HLS
При конвертации RTSP в HLS, видеопоток разбивается на сегменты, которые благополучно скачиваются с сервера и отображаются в HLS-плеере.
В качестве HLS-плеера мы используем video.js. Код плеера можно скачать здесь.
Как выглядит плеер:
Способ 8 — Android приложение, WebRTC
Приложение забирает поток с сервера по WebRTC. Задача сервера в этом случае — сконвертировать RTSP в WebRTC и скормить мобильному приложению.
Java-код плеера для Android находится здесь и выглядит так:
Тестовое мобильное приложение плеера можно установить из Google Play, а исходники приложения скачать здесь.
Так выглядит воспроизведение RTSP потока по WebRTC на планшете Asus под Android:
Способ 9 — iOS приложение, WebRTC
Приложение также как и в случае Android забирает поток с сервера по WebRTC.
А из App Store можно установить тестовое приложение, которое использует показанные выше куски кода. Его работа с RTSP-потоком выглядит так:
Результаты
Подведем итоги и объединим полученные результаты в табличку:
Способ отображения | Применение | Задержка | |
1 | RTMP | Там, где важно использование legacy — флэш клиента, Flex или Adobe Air | medium |
2 | RTMP + HTML5 | В браузерах IE, Edge, Mac Safari, если там установлен Flash Player | medium |
3 | RTMFP | Там, где важно использование legacy — флэш клиента, Flex или Adobe Air и важна низкая задержка | low |
4 | RTMFP + HTML5 | В браузерах IE, Edge, Mac Safari, если там установлен Flash Player и важна низкая задержка. | low |
5 | WebRTC | В браузерах Chrome, Firefox, Opera на десктопах и мобильных браузерах под Android, где важна real-time задержка. | real-time |
6 | Websocket | В браузерах, где нет Flash и WebRTC, но нужна средняя или низкая задержка. | medium |
7 | HLS | Во всех браузерах. Где не важна задержка. | high |
8 | Android app, WebRTC | В нативных мобильных приложениях под Android, где требуется real-time задержка. | real-time |
9 | iOS 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
Как построить, что использовать, почему не работает и т.п. Не знаете куда писать? Пишите сюда!софт для видеонаблюдение по RTSP
есть 2-3 камеры Xiaomi.
Наигрался с ними, перепрошил, от китая отвязал, теперь они отдают видео по rtsp - в VLC можно открыть и смотреть онлайн.
нужно мнение более опытных камрадов - какие есть варианты, чтобы сделать motion detect в этом rtsp потоке с отправкой алертов на телефон/почту/etc и с возможностью просмотра этих видео с телефона и-или компа/браузера
конечно надо это все opensource или просто на халяву, так как для себя делаю)
вот как мне это представляется - rtsp поток надо скармливать какойто программе - это или windows приложение и в нем есть настройки для motion detect и возможность записи видео на диск и потом просмотра этого видео.
или это какое-то cloud решение, которому точно так же можно скормить rtsp через интернет и там уже точно так же будет обрабатываться оно.
чтото вроде ivideon, но может есть какието другие решения, которые например можно поставить на свой сервер на хостинге?
главное тут вот что - rtsp - чтобы его понимала система, которая будет обрабатывать все.
проверял кстати ONVIF manager - он не принимает мой URL - rtsp:/ip_address:554/ch0.h264
знаю про ZoneMinder - когдато даже ставил его для ip камер - но это такой монстр, что не хочется с ним связываться..
в идеале это виндовое простенькое приложение, но пока нахожу только триальные, которые в итоге попросят бабло, так что даже пробовать не хочу.
прошу высказываться по теме, очень надеюсь, что ктото уже делал подобное - я же только вот вчера решил заняться этой темой.
спасибо.
спасибо за ответ.
хм..
то есть "возможность работать с RTSP потоком", или как это правильнее выразиться, считается premium фичей и поэтому доступна только в платных решениях зачастую?
не думал, что так все..
но мне конечно интересно любое бесплатное решение - даже с ограничениями. я же пока не знаю, что это ограничения, вот проверю - и тогда решу, оставлять так или искать чтото другое.
минирег - это я так понимаю какойто отдельный девайс? пока нет возможности-желания покупить еще какуюто коробку. хочу на базе компа пока что проверить как оно будет.
поэтому ищу софт или клауд какойто с указанными возможностями..
похоже только ivideon подходит.
спасибо за ответы..
надо же, оказывается не все так просто.
а я то думал, что счас поставлю бате на винду чтото простенькое, за выходные настрою и покажу как пользоваться и все - будет он спокоен за свой двор, когда уходит куда-то по делам)
я так понимаю, вы о стоковой прошивке камеры + приложение для телефона?
если так - то меня оно не устраивает.. при плохом интернете - очень медленно все работает + только на телефоне/планшете - отдельное неудобство в моем случае.
мышка и монитор будут удобнее.
опять же - даже родной этот софт работает как попало.. прокрутка видео не работает, настроить motion detect нельзя никак, только включить-выключить..
в общем "не то пальто"
да и от китая хотелось отвязаться, просто из принципа.. не вижу смысла гонять туда еще како-то трафик.
такие вот мысли.
похоже таки надо покупать этот mini NVR.. для дома пригодится вэтой задаче.
а пока буду искать чтото под linux раз под винду нету..
но за качественный софт надо платить или за сам софт или за железку, для которой этот софт пишут. это аксиома.
сегодня заменял клиентке хайвотч на секулинк с облаком goolink, так клиентке очень не понравилось приложение гоулинка после ivms.
ну коль заговорили про облака, то мож объясните как же оно работает в случае ксяоми (я думаю +- везде так)
вот есть камера, с какойто заточеной прошивкой, для работы с камерой надо качнуть апликуху для телефона, поплясать c QR-кодами, чтобы подключить камеру в инету через wifi и только после этого камера появится в телефонной апликухе.
и какая разница, что мы в одной wifi сети?
разве прошивка это как-то определяет (ну это ясное дело - не сложно определить) и меняется логика работы? врядли.. разве что может быстрее будет открываться видео реалтайм и скачиваться записанные ролики по алертам.
хотя надо сказать не так быстро они и скачиваются для просмотра - вот пришел алерт на телефон, кликаешь, и ждешь пока ролик откроется, даже если ты в одной сетке с камерой.
ну вроде не быстро sd карта работает, ok, 10 сек подожду не умру.
но если находишься в другом городе - точно также ждешь. не сильно больше я бы сказал, ибо заметил бы это.
то есть на этот момент локалка не влияет по субъективным оценкам.
далее - камера то, похоже работает чисто по rtsp (который в свою очередь уже роутит куда чего писать - на карту или на облако или что там еще он может)
и "отвязка камеры от китая" оставляет ее исключительно с этим голым функицоналом - с нее можно тлько стримать видео в реалтайм.
что как-бы наверное коссвенно доказывает, что и с китайским облаком она работает тоже по rtsp и значит облако это содержит в себе все рули на моушин детект и записывает на себя ролики эти, а камере видимо просто сигналит - сохрани этот ролик и на SD карту - ну для "быстрого" доступа из локалки.
короче это все я к тому, что камера выдает некий стандартный rtsp поток, который совсем не обязательно нужно в китай слать, а можно на свой сервер "на чердаке" ну или на виндовое приложение..
я правильно понимаю картинку эту? или гдето есть грубые ошибки в рассуждении?
Чтобы обеспечить потоковое вещание VLC RTSP, сначала необходимо настроить медиа-проигрыватель. Воспроизведение и захват RTSP-потока востребованы в системах охраны, где организовано круглосуточное видеонаблюдение. Из плеера VLC на IP-камеру можно посылать команды-инструкции для управления видеосъемкой. Узнаем, что нужно для настройки и как работает RTSP в медиа плеере.
VLC – как смотреть RTSP поток с камеры
RTSP (RealTimeStreamingProtocol) представляет собой протокол передачи видеопотока. Описываемые им команды способны сообщать видеокамере разные действия: остановка, трансляция данных, изменение режима, скорости записи/ чтения, доступ по времени к файлам, находящимся на сервере. В маркировке IP-камеры или видеорегистратора может быть указано «RTP» или «UDP». Это обозначение механизма передачи видеоинформации. Данный вид съемки может быть организован:
- через локальную сеть;
- по беспроводной технологии Wi-Fi.
Замечание. Каждый производитель устройства видеозаписи имеет разный вид запроса RTSP. Эти данные необходимо уточнять у изготовителя прибора.
Пример запроса RTSP
К VLC MediaPlayer можно подключать IP-камеры, работающие по LAN или беспроводной сети. Пример обращения VLC проигрывателя по RTSP к видеокамере или серверу может выглядеть так. rtsp:// boss: psw @172.27.0.60: 582/ cam1.sdp
- boss – имя пользователя (логин);
- pass – пароль;
- 27.0.60 – IP-адрес камеры в сети LAN или Wi-Fi;
- 582 – номер порта, для протокола RTSP;
- cam1 – видеопоток видео от веб-камеры.
Таким запросом происходит обращение к веб камере D-link DSC-2103. Компьютер запрашивает по RTSP у видеоустройства информацию, записанную в файл с названием «cam1.sdp». Если требуется получить еще один видеопоток с этой же камеры, то «cam1.dsp» в запросе меняется на «cam2.dsp». Иначе будет выглядеть запрос к видеорегистратору Polyvision: rtsp:// 172.27.0.162: 592/usr= adm&pass= qwe321&channel= 1&stream= 1.sdp?real_stream
- channel = 1 – номер канала для передачи данных;
- 1 – номер видеопотока (в данном случае второй поток).
Важно! При передаче логина и пароля в строке параметров, они остаются в кэше на сервере. Эти данные могут быть перехвачены. Поэтому для RTSP-запроса рекомендуется использовать учетную запись (логин/пароль) без административных прав.
Просмотр трансляции в VLC по RTSP
VLC Media Player работает с любыми регистраторами и веб-камерами. Для того чтобы просматривать VLC RTSP поток с камеры на персональном компьютере, понадобится настроить медиа-плеер. Все действия выполняем согласно следующей инструкции.
- Открыть проигрыватель VLC, выбрать раздел меню «Инструменты», затем пункт «Настройки».
- Перейти во вкладку «Ввод/кодеки» нажатием значка вверху справа.
- Пролистать страницу вниз. В разделе «Сеть» найти подпункт «Транспорт потока Live 555», установить переключатель в положение «RTP поверхRTSP (TCP)». Нажать на кнопку «Сохранить».
- Выбрать в меню раздел «Медиа», затем пункт «Открыть URL…».
- В поле указания сетевого адреса ввести параметры для соединения с устройством видео-регистрации. Сетевые параметры необходимо уточнить у производителя техники.
Передача видеопотока по RTSP в VLC
Разберем теперь, как организовать VLC трансляцию RTSP. Здесь также нужно обратиться к настройкам при выборе видеоустройства.
- После выбора медиа-файла, нажать стрелке рядом с кнопкой «Воспроизвести» и выбрать команду «Поток».
- В появившемся окне ознакомиться с информацией по работе «мастера» и нажать кнопку «Следующий».
- Напротив надписи «Новое значение» указать «RTSP». Выбрать «Добавить».
- В открывшемся диалоговом окне рекомендуется оставить параметры потоковой трансляции по умолчанию. Жмем кнопку продолжения.
- На следующей странице оставить настройки перекодирования, как есть, и перейти к следующему шагу.
- Здесь настраиваются дополнительные настройки вещания (ffmpeg). Данные записаны в строке вывода для генерации потока. Это кодеки, каналы передачи и другие свойства. Нажимаем по кнопке «Поток» для старта видеотрансляции.
- Если все выполнено правильно, начнется потоковая передача видео из указанного источника.
Таким же способом можно подключиться к трансляции с другого ПК. Потребуется знать только IP-адрес компьютера. Можно транслировать сразу несколько файлов, по-очереди. Доступна передача мультимедиа не только из файла, но и с устройства ipcamera, микрофона, видеорегистратора или просто экрана монитора.
Примечание. В «живой» потоковой передаче нельзя использовать перемотку или поставить видео на паузу.
Проверка RTSP-потока
Чтобы проверить, успешно ли началась трансляция можно использовать любо другой медиа-проигрыватель, либо просто еще один VLC. Плеер должен имет ьвосзможность принимать потоковое видео.
- Запустить второй проигрыватель (здесь VLC). Выбрать пункт «Открыть URL…» и раздела меню «Медиа».
- Прописать в появившемся окне локальный IP-адрес компьютера, порт, путь и префикс «rtsp://» в начале строки. Нажимаем кнопку воспроизведения трансляции.
Для организации потокового RTSP-вещания с видеокамеры, ПК или другого устройства потребуется знать только IP-адрес, а также как открыть или передать трансляцию. Если адрес устройства неизвестен, можно воспользоваться любой поисковой системой. В строке поиска вводим запрос «мой IP адрес» и получаем результат.
Обязательное условие потокового вещания RTSP через VLC – камера и ПК должны находиться в одной локальной сети. Видеопоток можно выводить на экран телевизора или передать трансляцию с видеокамеры на веб-ресурс.
RTSP - потоковый протокол реального времени (Real Time Streaming Protocol), предназначенный для использования в системах, работающих с мультимедиа данными, позволяющий клиенту удалённо управлять потоком данных с сервера, предоставляя возможность выполнения команд, таких как «Старт», «Стоп», а также доступа по времени к файлам, расположенным на сервере.
VLC media player - это бесплатный, мульти-платформенный мультимедиа проигрыватель, который воспроизводит большинство мультимедийных файлов, а также различные протоколы потокового вещания.
Все современные видеорегистраторы и IP видеокамеры могут передавать изображение и звук, используя протокол RTSP. Чтобы получить данные от устройства (камеры или регистратора) по этому протоколу, необходимо обратиться к устройству с запросом. У каждого производителя, вид RTSP запроса разный.
Пример rtsp запроса к камере D-link DSC-2103:
rtsp:// admin : pass @ 192.168.0.102 : 554 / live 1 .sdp
- admin – имя пользователя
- pass – пароль
- 192.168.0.102 – адрес камеры в локальной сети
- 554 – адрес порта, зарезервирован за протоколом rtsp
- 1 – номер потока данных получаемого с видеокамеры.
Отправляя данный запрос, мы стучимся по адресу 192.168.0.102, заходим в дверь номер 554, где живёт протокол RTSP, и говорим: «Вот тебе имя пользователя, вот пароль. Дай мне, пожалуйста, поток с видеокамеры, который называется live1.sdp». Если мы хотим получить вторичный поток с этой же камеры, то мы отправляем запрос вида:
rtsp://admin:pass @192.168.0.102:554/live 2 .sdp
Пример rtsp запроса к видеорегистратору tbtec, divitec, polyvision:
rtsp:// 192.168.0.101 : 554 /user= admin &password= pass &channel= 1 &stream= 0 .sdp?real_stream
- 192.168.0.101 - адрес видеорегистратора в локальной сети
- 554 - адрес порта, зарезервирован за протоколом rtsp
- admin - имя пользователя
- pass - пароль
- 1 - номер канала, с которого будут передаваться данные.
- 0 - номер потока данных получаемого от видеокамеры. В данном случае 0 - это основной поток. Если поставить единицу, то будет вторичный поток.
Локальный просмотр
Для локального просмотра изображения, необходимо находиться в одной локальной сети с IP камерами и видеорегистратором, установить VLC плеер в вашей системе и создать плейлист. VLC media player под Вашу операционную систему можно взять здесь.
Создание плейлиста в windows7:
Создаём в любой папке новый текстовый документ - файл с разрешением txt. В windows, это делается кликом правой кнопки мыши в папке или на рабочем столе. Выбираем «создать» и затем «текстовый документ». Открываем вновь созданный документ и построчно записываем rtsp запросы к нашим камерам и регистраторам. Если я хочу просмотреть основные потоки с камеры D-link DSC-2103, а затем с видеорегистратора TBR-H1904 с камер номер 1 и 2, я создаю текстовый документ вида:
- rtsp://admin:pass @192.168.0.102:554/live1.sdp
- rtsp://192.168.0.101:554/user=admin&password=pass&channel=1&stream=0.sdp?real_stream
- rtsp://192.168.0.101:554/user=admin&password=pass&channel=2&stream=0.sdp?real_stream
Сохраняем документ. После сохранения меняем расширение файла с txt на m3u. Это подскажет операционной системе, что данный файл – это плейлист для видео-плеера. Кликаем по документу. Открывается окно медиаплеера, плеер начинает воспроизводить изображение с камеры D-link. Нажимаю клавишу «N» на клавиатуре или кнопку >> VLC плеера - отображается видео с первой видеокамеры видеорегистратора. И так по кругу.
Удаленный просмотр через Интернет
Для удалённого просмотра необходимо иметь выделенный, статический IP адрес. В роутере пробросить соответствующие порты. Свободный пул адресов: 49001—49150. Пример проброса:
- Порт № 49001 пробросить на локальный адрес 192.168.0.102 и порт № 554
- Порт № 49002 пробросить на локальный адрес 192.168.0.101 и порт № 554
Если Интернет провайдер выделил нам статический IP адрес 177.177.177.177, то плейлист для удалённого просмотра будет выглядеть так:
- rtsp://admin:pass @176.176.176.176:49001/live1.sdp
- rtsp:// 176.176.176.176:49002/user=admin&password=pass&channel=1&stream=0.sdp?real_stream
- rtsp:// 176.176.176.176:49002/user=admin&password=pass&channel=2&stream=0.sdp?real_stream
Безопасность
Безопасности никогда не бывает много!
В данном случае, пароль и логин передаются в адресной строке, а это значит, что он остаётся в кэше сервера и может быть легко перехвачен. Отправляя rtsp запрос, используйте логин и пароль юзера без административных прав.
Сфера применения
Работоспособность проверена в операционных системах Windows, Android. Возможная сфера применения: вывод изображения на экраны телевизоров или вывод изображения с видеокамеры на сайт.
Читайте также: