В этой статье мы узнаем, как подключиться к видеокамере для просмотра изображения без веб-браузера и программ от производителя. То есть мы напрямую подключимся к IP камере для просмотра и записи видео на компьютер.
Чтобы подключиться к IP камере и записать видео RTSP поток нужно знать маршрут (route), то есть URL адрес, который начинается с «rtsp://».
- rtsp://85.105.131.242:554/stream1
- rtsp://192.168.0.167:554/user=admin_password=JUkhMFgP_channel=1_stream=0.sdp/
- rtsp://:@79.127.101.32:554/user=admin&password=&channel=1&stream=0.sdp?
Как открыть RTSP в VLC и MPlayer
Оба этих проигрывателя поддерживают работу с потоковым видео.
В меню VLC перейдите в Медиа → Открыть URL, либо откройте окно ввода адреса с помощью сочетания клавиш Ctrl+n. Перейдите на вкладку «Сеть» и введите адрес вместе с указанием протокола.
Когда всё будет готово, нажмите кнопку «Воспроизвести».
openRTSP — клиент RTSP
IP-камеры разного качества, некоторые из них, по моему опыту, ведут себя нестабильно. Работа с их потоками RTSP требует определённого терпения.
Проект Live555 предоставляет относительно отказоустойчивую реализацию клиента RTSP, openRTSP, для получения аудио/видеопотоков RTSP через интерфейс командной строки.
Связанная статья: Инструкция по openRTSP — клиент RTSP для приёма и записи потокового медиа
Например, чтобы сохранять аудио/видео RTSP камеры в файлы в формате MP4 (также доступны AVI и QuickTime), один файл каждые 15 минут:
openRTSP -D 1 -c -B 10000000 -b 10000000 -4 -Q -F cam_eight -d 28800 -P 900 -t -u admin 123456 rtsp://192.168.1.108:554/11
Эти опции означают:
-D Выйти, если нет пакетов в течение 1 секунды или более -c Непрерывная запись после завершения -d таймфрейма -B 10000000 Входной буфер 10 МБ -b 10000000 Буфер вывода 10 МБ (в файл) -4 Создавать файлы в формате MP4 -Q Показать статистику QOS -F cam_eight Префикс имени файла вывода с этим текстом -d 28800 Время работы openRTSP столько секунд -P 900 Записывать новый выходной файл каждые -P секунд -t Запросить конечный поток камеры по TCP, а не UDP -u admin 123456 Имя пользователя и пароль, ожидаемые камерой rtsp://192.168.1.108:554/11 RTSP URL камеры
Удаление опции -t заставляет openRTSP по умолчанию использовать UDP, что может немного уменьшить сетевой трафик. Вам нужно будет поиграть с вариантами, чтобы найти комбинацию, которая вам подходит.
Честно говоря, сами камеры иногда ненадёжны или просто реализованы по-другому — вроде неожиданного закрытия соединение — это не так уж и необычно для них.
Запись RTSP потока в ffmpeg
Следующий пример должен сохранить видео фрагментами по 300 секунд. (Обратите внимание, что длина клипа будет зависеть от частоты кадров на входе и выходе):
ffmpeg -i rtsp://192.168.0.21:554/mpeg4 -vcodec copy -acodec copy -map 0 -f segment -segment_time 300 -segment_format mp4 "ffmpeg_capture-%03d.mp4"
VLC с интерфейсом командной строки
У VLC есть ещё и консольный интерфейс.
VLC выглядит как идеальный кандидат для обработки вашего потока. Команда для записи выходного сигнала камеры в файл:
cvlc rtsp://85.105.131.242:554/stream1 --sout=file/ts:mystream.mpg
Для непрерывной записи с разбивкой на файлы можно запустить скрипт, который завершает этот процесс vlc и запускает новый экземпляр каждые 30 минут.
Вместо того, чтобы запускать задание cron для периодического уничтожения процесса VLC, можно было бы указать VLC, чтобы он работал в течение определённого времени и затем закрылся.
Это команда запускает VLC в течение указанного времени, а затем завершает работу. Параметр vlc://quit является обязательным, поскольку VLC остановит запись и останется открытым. Эту команду нужно поместить в цикл.
cvlc -vvv rtsp://192.168.1.128:1554/11 --sout=file/ts:/ПУТЬ/ДО/ХРАНИЛИЩА/ЗАПИСЕЙ-$(date +"%Y%m%d%H%M%S").ts -I dummy --stop-time=480 vlc://quit
Связанные статьи:
- Инструкция по openRTSP — клиент RTSP для приёма и записи потокового медиа (82.1%)
- Как в Linux узнать свойства медиафайлов (видео, аудио, фотографии) (68.7%)
- Как управлять камерами по протоколу DVR-IP, NetSurveillance, Sofia (NETsurveillance ActiveX плагин XMeye SDK) (66.8%)
- Как включить 10-битную глубину цвета в Linux (и нужно ли включать 30-битный цвет) (53.3%)
- Как определить контент с 10-битной глубиной цвета. Как проверить какая глубина цвета используется в фотографии и видео (53.3%)
- Как добавить текст на изображения в ImageMagick (RANDOM - 50%)