Главная Файлы Форум Галерея Гостевая книга Обратная связь Карта сайта Поиск
 

 

Моё место работы

СитиСервис
  • Заправка и ремонт лазерных картриджей
  • Ремонт любых принтеров и копиров
  • Оригинальные и совместимые картриджи
  • Доставка бесплатно (от 2-х картриджей)
  • Накопительная система расчётов для корпоративных клиентов
Телефон
+7 (4722) 373-983
8-980-326-01-23
Адрес E-mail
mybelpost@gmail.com

Привет, Гость

Войти
Идентификация
Я забыл свой пароль
Регистрация

Разделы -> Статьи -> Linux - разное -> Снимок с web-камеры ...

Снимок с web-камеры в Linux (fswebcam)

   Как сделать снимок с web-камеры под Linux?
Информации в сети более, чем достаточно, но в основном описывается ffmpeg или mplayer.
В этой статье я буду использовать консольное приложение fswebcam - оно есть в репозитории Debian.


Использовать fswebcam очень просто!
Но сначала нужно его установить. Можно из консоли с правами root скомандовать:

apt-get install fswebcam

Использование

Из консоли с правами обычного пользователя командуем:

fswebcam ./снимок.jpg

Однако, если у Вас не одно видео-устройство, к примеру TV-тюнер и web-камера, то захвачен может быть кадр не с того устройства.
Значит в командной строке нужно будет принудительно указать номер видео-устройства.

Если сохранённое изображение имеет вид "квадрата Малевича" или, чего угодно, кроме кадра с видео-устройства, то скорее всего, камера просто не успела "прогреться".
В этом случае нужно указать номер кадра для захвата и число пропускаемых кадров. (При первом снимке приходилось ставить аж 20-й кадр для захвата).

Рабочая команда может выглядеть примерно вот так:

fswebcam -d /dev/video1 -S 2 -F 3 -r 384x288 -q ./снимок.jpg

где:

-d - дескриптор за, которым следует путь к видео-устройству. К примеру /dev/video1
-S  - за этим дескриптором следует число пропускаемых кадров
-F - номер кадра подлежащего сохранению
-r - разрешение кадра
-q - дескриптор говорящий о том, что не нужно выводить никаких сообщений, кроме ошибок
./снимок.jpg - имя файла, в который сохраняется захваченный кадр

Информацию о видео-устройстве можно посмотреть командой

fswebcam -d /dev/video1 -v

Ну и для тех, кто хочет узнать о приложении больше есть команда

fswebcam --help или man fswebcam

Для простоты использования приложения в графическом режиме я состряпал вот такой bash-кскрипт (обновлён 16.10.2015):

#! /bin/bash
# Сценарий создаёт снимок с вебкамеры средствами приложения fswebcam

IFS=$'\t\n'; # Меняем разделители для bash на случай имён с пробелами, к примеру имя "Рабочий стол"


if [[ -f $(which fswebcam) ]]; then # Проверяем наличие приложения fswebcam

# Задаём параметры
dev="$(ls /dev/v4l/by-id/ -l | grep .*USB.*Cam.* | sed 's/^.*\///')"; # Вычисляем web-камеру
# Если других видеоустройств в системе нет, то этой переменной можно присвоить значение /dev/video0
resol="640x480"; # Разрешение веб-камеры (снимка).
path="$HOME/Изображения/web-камера"; # Задаём имя каталога, к котором будем сохранять снимок
# Если указанного каталога нет, то он ниже будет создан автоматически
line_colour="#00ff00"; # цвет линии над полосой с датой
banner_colour="#ccff0000"; # цвет полосы с датой. Где первые два символа - прозрачность

# если скомандовать fswebcam --help то получим массу настроек. В этом скрипте все не включал.

if [[ -e "/dev/$dev" ]]; then

    if ! [[ -d $path ]] ; then # Проверяем наличие каталога для сохранения снимка
      mkdir -p $path ; # И если его нет, то создаём
    fi

    zenity --info --text="Улыбнитесь!\n\nВас снимает скрытая камера! :-)" --title="WEB-камера" & pid=$!

    fswebcam -d /dev/$dev -r $resol --banner-colour="$banner_colour" --line-colour="$line_colour" -q --save="$path/`date +%d-%m-%Y_%H-%M-%S`.jpg";

    kill -9 $pid # Убиваем окно диалога перед выводом нового

    zenity --info --text="Готово\!\n\nСнимок сохранён в\n\n$path." --title="WEB-камера" --timeout="5"; # Сообщение о завершении съёмки

else

    zenity --error --text="Не установлено приложение fswebcam\n\nПопробуй установить из репозитория\nи повтори съёмку." --title="WEB-камера" --timeout="6"; # Сообщение об отсутствии в системе fswebcam

fi
fi
exit 0; # Доброго здоровьечка!





Данный сценарий можно разместить в любом удобном месте, сделать исполняемым и создать кнопку запуска на пнели GNOME (MATE).

Готовый bash-скрипт позволяющий делать снимок с web-камеры качаем здесь.



Ссылки по теме:



Опубликовано: Константин, Автор/источник: Сакрюкин К.В. 12 Август 2014 21:27:28

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

Вы не залогинены! Регистрация

Афоризмы, мысли

"Единственное средство для поддержания чистоты, которое достойно внимания - жена!"

/Сакрюкин К.В./

Счётчик

Сейчас на сайте - 1 (0 зарег.)
Всего хитов7903 
Сегодня хитов7903 
Сегодня хостов1032 

Откуда гости наши?

 
Powered by ReloadCMS 1.5.0.
© 2004-2012 ReloadCMS Team
RSS AggregationPHP powered
Генерация страницы: 0.42
  Яндекс.Метрика
    Сакрюкин К.В.   Яндекс цитирования    
 
Здесь всё можно копировать и цитировать, но рабочая ссылка на мой сайт обязательна!