четверг, 25 апреля 2013 г.

Что там делается у меня дома, пока я на работе и наоборот. Или просмотр видео с удаленной камеры.

Я из тех людей, которые любят изобретать велосипед. Но в этот раз решил задачу, используя уже существующие утилиты. Технологии, которые использованы: vlc, vpn, iptables. Для получения конечного результата необходимо решить три задачи.
  • Захват данных.
  • Передача данных.
  • Транспортирование данных.


Хочу отметить, что я поражён утилитой vlc - кроссплатформенный видеопроиграватель со своими кодеками. Единственное разочарование, что на iphone попросил денежку, с другими платформами проблем не было: Ubuntu Linux, Windows, Android. Кроме этого данный видеопроигрыватель выполняет много других задач, неприсущи простому видеопроигрывателю из коробки.


Захват данных.

Выполним данную команду в командной строке. Вы можете самостоятельно узнать, как сделать тоже самое используя UI VLC.
cvlc v4l:///dev/video0 --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:standard{access=http,mux=ogg,dst=10.10.10.2:12345}

Данная команда поднимает сервер, который раздаёт видеотрафик захваченный с видео камеры.

Обратите внимание, что вам необходимо указать ip адрес локального интерфеса(Так как их может быть несколько, если вы поднимите VPN) и порт.
dst=10.10.10.2:12345

Данное выражение:
v4l:///dev/video0

говорит с какого интерфеса смотрим видео. Есть возможность подключить несколько видеокамер.

Проверить работоспособность вы можете локально. Запустите VLC проигрыватель, следуйте Media > Open network stream в строке меню. Введите:
http://localhost:12345

Транспортирование данных


Задача может выполняться различными путями. Зависит от структуры сети.
- Если машина с камерой доступна из внешней сети, тогда достаточно
тунельное проксирование портов, используя утилиту ssh.

ssh -L 12345:localhost:12345 user@remotehost.com
 

Воспроизведение данных


Запустите VLC проигрыватель, следуйте Media > Open network stream в строке меню. Введите:
http://localhost:12345

- Если машина недоступна из внешней сети, тогда необходимо организовать vpn, но для этого всё равно понадобиться машина с выделенным ip.
Достаточно будет указать адресс машины во внутренней сети VPN.

- Если желаете, чтоб канал был доступен из внешней сети, не забудьте про форвардинг и проброс портов.
Проброс портов Ubuntu.

Комментариев нет:

Отправить комментарий