PDF Печать E-mail

Ретрансляция видео с ip-камер с помощью cvlc


Имеются ip-камеры (ACTI E31) в удаленном офисе. Необходимо организовать онлайн просмотр видео с камер в главном офисе на нескольких компьютерах. Сети главного и удаленного офисов объединены с помощью OpenVPN. Более одного потока с каждой камеры ширина интернет канала не позваляла, поэтому встала необходимость брать поток с камер удаленного офиса и раздавать уже в локалке клиентам главного офиса. На всех камерах был настроен второй rtsp-поток с небольшим разрешением 640х480 (для экономии трафика), который нужно было ретранслировать. Для ретрансляции решил попробовать vlc, который установил на сервере главного офиса.




Установка:


apt-get install vlc

Настройка ретрансляции:


touch /home/it/video_nov.sh
chmod +x /home/it/video_nov.sh
nano /home/it/video_nov.sh


#!/bin/bash
cvlc -d rtsp://admin: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript :8080/stream2 --http-reconnect --loop --repeat --sout "#rtp{sdp=rtsp://10.10.10.10:8080}";
cvlc -d rtsp://admin: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript :8080/stream2 --http-reconnect --loop --repeat --sout "#rtp{sdp=rtsp://10.10.10.10:8081}";
cvlc -d rtsp://admin: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript :8080/stream2 --http-reconnect --loop --repeat --sout "#rtp{sdp=rtsp://10.10.10.10:8082}";


где rtsp://admin: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript .1.8Х:8080/stream2 - ссылки на потоки с ip-камер с именем пользователя и паролем;

rtsp://10.10.10.10:808Х - ссылка на rtsp-поток раздачи с сервера в главном офисе, на который ставим vlc;

-d - запускать в режиме демона;

--http-reconnect --loop --repeat - ключи для восстановления коннекта после разрыва при проблемах сети.

С этими параметрами потоки не конвертируются, а раздаются как есть, т.е. какими забираются с камер.

Созданный скрипт запускать из под root нельзя (vlc ругается), поэтому в автозагрузку добавляем из под обычного пользователя, в данном примере - пользователь "it". В /etc/rc.local пишем строчку:

sudo -u it /home/it/video_nov.sh;

Перезагружаемся.

Для просмотра видео создал простой html-файл:

<html>
<meta http-equiv="refresh" content="600">
<head><title>VIDEO NOVGOROD</title></head>

<body>
<div style="float:left; width:67%; height:99%">
    <embed type="application/x-vlc-plugin"
    name="cam80"
    autoplay="yes" loop="yes" width="100%" height="100%"
    target="rtsp://10.10.10.10:8080/" />
</div>
<div style="float:left; width:33%; height:99%">

    <embed type="application/x-vlc-plugin"
    name="cam81"
    autoplay="yes" loop="yes" width="100%" height="50%"
    target="rtsp://10.10.10.10:8081/" />

    <embed type="application/x-vlc-plugin"
    name="cam82"
    autoplay="yes" loop="yes" width="100%" height="50%"
    target="rtsp://10.10.10.10:8082/" />

</div>
</body>
</html>


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

Кладем этот файлик куда нибудь в общий доступ и на клиентах ставим vlc (нужен vlc-плагин для браузера), и через браузер (пробовал chrome и firefox) открываем созданный html-файлик.

cvlc