Запись с веб-камеры без штатной утилиты

По многим программам зачастую бывает очень много разных вопросов, не стесняйтесь их задать. Вполне возможно что мы знаем ответ.

Запись с веб-камеры без штатной утилиты

Сообщение Yuliya » 05 май 2014, 23:42

Иногда возникает необходимость сохранить видео с веб-камеры в файл на жёстком диске или смотреть изображение с камеры на компьютере, к которому она непосредственно не подсоединена. Первая задача зачастую решается при помощи поставляемой с камерой штатной утилиты. Вторая проблема более сложна, так как потоковая трансляция видео (именно о ней в данном случае идёт речь) - прерогатива относительно дорогих (по сравнению с веб-камерами) IP-камер.
Однако обе эти задачи могут быть решены при помощи бесплатного ПО, свободного доступного на сайте производителя. Речь об утилите VLC проекта VideoLAN. Возможности программы далеко выходят за рамки указанных вопросов, поэтому остановимся на них подробнее. Итак, запустим плеер и проследуем к настройкам (обсуждается версия 2.1.0 Rincewind): "Медиа"-"Конвертировать/Сохранить..."-вкладка "Устройство захвата". Для наших целей необходимо в первом списке указать "DirectShow". В двух списках "Название видеоустройства" и "Название аудиоустройства", как правило, нет необходимости ничего менять. Если камер или микрофонов несколько, можете указать их индивидуально. Воспользовавшись кнопкой другие, получаем доступ к окну "Расширенные параметры", где особый интерес представляет галочка "Настройки устройства", устанавливаем её и нажимаем "OK".
convert-1.jpg

Продолжаем кнопкой "Конвертировать/сохранить". Окошко "Преобразовать" позволит уточнить источник (нет необходимости делать это вручную) и выбрать один из вариантов: "Преобразовать" или "Сохранить входной поток". Выбираем второй вариант, указываем имя файла и начинаем запись кнопкой "Начать". При этом может открыться целая серия диалоговых окон, в которых можно задать точную настройку используемых устройств.
convert-2.jpg

Трансляция в сеть настраивается аналогично. При этом в меню выбираем команду "Медиа"-"Передавать...", указываем параметры источника, как и было рассмотрено выше. Мастер настройки потоковой передачи запускается кнопкой "Поток" (вместо кнопки "Конвертировать/сохранить"). На первой странице всё оставляем без изменений. Вторая страница - главная, на ней выполняются основные настройки. Необходимо выбрать протокол трансляции (один или несколько - вкладка для каждого создаётся кнопкой "Добавить"). Также можно контролировать поток на экране локально, для чего используется галочка "Воспроизводить локально". Оставив на следующих страницах мастера всё по умолчанию, запускаем трансляцию.
convert-3.jpg

Как к ней подключиться, расскажу подробнее в следующих постах.
Yuliya
Чайник
 
Сообщений: 6
Зарегистрирован: 30 апр 2014, 21:38

Re: Запись с веб-камеры без штатной утилиты

Сообщение Yuliya » 23 май 2014, 22:43

Чтобы поддержать начатую тему, обсудим ещё одну важную возможность, предоставляемую утилитой VLC: потоковое вещание. В данном случае подразумевается возможность подключиться к компьютеру, на котором запущена программа vlc.exe или cvlc.exe, чтобы через сеть просмотреть видео, транслируемое проигрывателем и, возможно, даже не отображаемое на экране компьютера, исполняющего VLC. В данном случае этот компьютер можно назвать сервером, предоставляющим нам указанную услугу.
Вернёмся к последнему скрину (http://seo-doka.ru/forum/download/file.php?id=3613&mode=view) из предыдущего поста в этой теме и теперь не будем игнорировать вкладки, на которые указывают стрелки. Такая вкладка появляется при выборе протокола из списка "Новое назначение" и использовании кнопки "Добавить". Рассмотрим вещание с использованием протокола HTTP:
vlc_HTTP.png

Указываем порт (случайное число из диапазона 8000-20000) и (необязательно) название потока. Далее соглашаемся во всём с мастером "Вывод потока". Если не была установлена галочка "Воспроизводить локально", то окно плеера останется пустым, но в заголовке будет написано "Потоковая передача" и отсчёт времени будет запущен. С компьютера, на котором мы хотим просматривать трансляцию, набираем: http://<ip_адрес_компьютера_с_VLC>:<порт></имя_потока_если_было_указано>. Для тестирования трансляции в случае, приведённом на скриншоте, строка подключения примет следующий вид: http://127.0.0.1:8080/play. Обычно имя потока не указывают (последнее поле вкладки "HTTP" остаётся пустым), тогда и подключение упрощается: http://127.0.0.1:8080. Такой протокол поддерживает не каждый проигрыватель, поэтому для тестирования следует воспользоваться всё тем же VLC, запустив второй экземпляр программы. В частности, ничего не получится с любимым Windows Media Player, хотя VLC и способен создать поток, принимаемый этим проигрывателем. О том, как его реализовать - в одном из следующих постов.
Ещё один из весьма достойных протоколов (вообще говоря, поддерживающий управление трансляцией) - RTSP. Его вкладка заполняется аналогично:
vlc_RTSP.png

Следует иметь в виду, что название потока обязательно, хотя никаких сообщений об ошибке при его отсутствии Вы не получите! Строка подключения (для случая, приведённого на снимке экрана): rtsp://127.0.0.1:8554/play.sdp (для локального тестирования). Смотреть трансляцию можно также посредством VLC.
Yuliya
Чайник
 
Сообщений: 6
Зарегистрирован: 30 апр 2014, 21:38

Re: Запись с веб-камеры без штатной утилиты

Сообщение Yuliya » 27 май 2014, 23:15

Чтобы прийти к логичному финалу, рассмотрим, как можно посмотреть трансляцию VLC при помощи всем доступного, но поддерживающего удручающе малое количество стандартов воспроизведения, Microsoft Windows Media Player. Сперва выясним, с чем может работать Media Player: видео-кодек - DIV3 (WMV); аудио-кодек - mp3; контейнер (способ совмещения потоков, создаваемых кодеками) - ASF; протокол потоковой передачи - MMSH.
Теперь вернёмся на вкладку "WMSP" диалога "Вывод потока" (строка MS-WMSP (MMSH) в списке "Новое назначение"):
vlc_MMSH.png

Здесь укажем ip-адрес интерфейса, на котором будем ожидать подключающихся клиентов. 0.0.0.0 означает "все интерфейсы". Номер порта - число, большее 8000. Соглашаемся во всём с мастером и, запустив трансляцию, пытаемся подключиться к ней:
vlc_WMP_err.png
vlc_WMP_err.png (22.89 KiB) Просмотров: 5974

Попробуем разобраться с проблемой на вкладке "Параметры перекодирования":
vlc_MMSH_ok.png

На этот раз всё должно пройти удачно. Строка подключения в обоих случаях: mms://127.0.0.1:8080 (чтобы её ввести использовать команду меню Файл-> Открыть URL-адрес...). Для удалённого просмотра необходимо заменить 127.0.0.1 на внешний адрес любого их сетевых интерфейсов сервера.
Используемый формат предоставляет небольшой бонус в виде сопровождающей поток информации. Можно указать наименование (title) потока, комментарий (comment) к нему, автора (author) и владельца (copyright) контента. Для этого запустим cvlc.exe из командной строки:
Код: выделить все
"C:\Program Files\VideoLAN\VLC\vlc.exe" "dshow://" --sout="#transcode{vcodec=DIV3,vb=4096,scale=1,acodec=none}:duplicate{dst=standard{access=mmsh,mux=asfh{title='My WebCam', comment='Without comments', author='Me', copyright='(c)'},dst=:8080}}"

Отыскать, где можно увидеть эту информацию во время воспроизведения в Windows Media Player, доверяю Вам. Кстати, рассматриваемая версия VLC (2.1.0 Rincewind) не правильно распознаёт эти параметры: он понимает одну строку с названием из контейнера, а остальные поля заполняет этой же строкой, урезая её до необходимой длины.
Yuliya
Чайник
 
Сообщений: 6
Зарегистрирован: 30 апр 2014, 21:38


Вернуться в Программы, приложения, утилиты

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

cron