Главная

Monday, 11 May 2020

Web-камера как камера видеонаблюдения.

Всем привет.

Web-камеру компьютера можно использовать как камеру видеонаблюдения для вещания видео по локальной сети, а если у вас выделенный IP, то настроить перенаправление портов в вашем роутере и транслировать видео через интернет. Если у вас VPN то просто проверьте пинг на адрес компьютера с web-камерой. Есть? Отлично, можете переходить к настройке самой трансляции.

Для трансляции картинки с web-камеры подключенной к компьютеру проще всего использовать бесплатный, но многофункциональный плеер VLC Media Player. Как пошагово выполнить настройку передачи потока медиа в сеть по HTTP-протоколу рассказано здесь. Это действительно работает. Главное не забыть дать разрешение VLC во всплывающем окне брандмауэра Windows при первом запуске трансляции.

На другом компьютере принять трансляцию можно встроенным в систему Windows Media Player: нажимаем "Файл > Открыть URL-адрес, вводим http://webcamserver:8080. Картинка может появиться через минуту в зависимости от пропускной способности вашей сети.

Теперь поговорим об автоматизации этого процесса. 


VLC настолько хорош что имеет набор ключей, которые можно использовать при его запуске из командной строки. Где их брать? Ничего сложного. Они складываются из двух частей в которой первая отвечает за источник сигнала,


 а вторая за его формат вывода. 


В самом первом варианте у меня получилось следующее:
"C:\Program Files/VideoLAN/VLC/vlc.exe" dshow:// :dshow-vdev="FaceCam VGA" :dshow-adev=none :live-caching=200 :sout=#http{mux=asf,dst=:8080/} :no-sout-all :sout-keep

Этот вариант говорит передавать только видео, без сжатия, по порту 8080. 

Теперь кое-что для теста.

А этот пример для показа картинки в самом VLC, чтобы быть уверенным что захват потока с web-камеры происходит нормально:
"C:\Program Files/VideoLAN/VLC/vlc.exe" dshow:// :dshow-vdev="FaceCam VGA" :dshow-adev=none :live-caching=200 :sout=#display :no-sout-all :sout-keep

Следующий пример когда картинка отображается в самом VLC, и передается по http одновременно:
"C:\Program Files/VideoLAN/VLC/vlc.exe" dshow:// :dshow-vdev="FaceCam VGA" :dshow-adev=none :live-caching=300 :sout=#duplicate{dst=http{mux=asf,dst=:8080/},dst=display} :no-sout-all :sout-keep

Дублирование вывода позволяет оценить насколько передача отстает от реальной картинки.

И последний самый полный код с кодированием потока:
 "C:\Program Files/VideoLAN/VLC/vlc.exe" dshow:// :dshow-vdev="FaceCam VGA" :dshow-adev=none :live-caching=200 :sout=#transcode{vcodec=WMV2,vb=800,scale=auto,acodec=none,scodec=none}:duplicate{dst=http{mux=asf,dst=:8080/},dst=display} :no-sout-all :sout-keep

Теперь про глюки.

Если имя камеры имеет пробелы берите его в кавычки. VLC в этом месте дал маху, а потом сам и ругался. Следующее - пробы с кодированием потока еще та лотерея: или нагрузите процессор или декодировщик на приемнике не подойдет.

Кстати в качестве приемника отлично работает тот же VLC:
vlc.exe http://webcamserver:8080

Ежели ваше вещание выполняется на один компьютер (например по udp на порт 1234), то запуск vlc выглядит так:
vlc.exe udp://@:1234

Успехов.

No comments:

Post a Comment

А что вы думаете по этому поводу?