Сфотографировать с терминала


58

Я хочу иметь возможность делать снимки с помощью веб-камеры из терминала. Это изображение затем будет сохранено в файл. Как это может быть сделано?

Ответы:


32

Если вы ищете что-то автоматизированное, webcamэто вполне прилично. У этого есть много прекрасных вариантов для того, чтобы выдвинуть фотографии через Интернет.

Если вы хотите что-то более ручное, и мы говорим о камере, поддерживаемой V4L / UVC (большинство из них), вы можете использовать streamerдля захвата кадра с устройства:

streamer -f jpeg -o image.jpeg

Спасибо Оли. Не знал, что существует программа веб-камеры под названием WEBCAM (Ирония ...). И да, веб-камера находится в списке поддерживаемых V4L.
Луис Альварадо

46

Есть еще одно приложение, которое можно использовать для захвата изображений с веб-камеры, которое называется Fswebcam . Вы можете установить это с

sudo apt-get install fswebcam

Вы можете сделать пробный снимок с помощью следующей команды.

fswebcam -r 640x480 --jpeg 85 -D 1 web-cam-shot.jpg

В приведенном выше синтаксисе кода -rозначает разрешение изображения, --jpegтип формата изображения и 85его стандарт качества, -Dозначает задержку, установленную перед захватом.

Теперь ваше изображение наконец сохранено с именем web-cam-shot.jpg.

Надеюсь, это поможет.


9
В моем случае, на моей тестовой машине, мне нужно было пропустить кадры, чтобы получить правильное изображение. Если я беру первые кадры, изображение будет очень темным, потому что камера еще не была готова. fswebcam -r 640x480 --jpeg 100 -D 3 -S 13 fswebcam.jpg
MSMAFRA

@tenshimsm Я потратил 10 минут, чтобы выяснить, что не так с моей fswebcam, а затем удалил пакет. Установил его снова, чтобы попробовать ваш подход, у меня работало 30 кадров. Спасибо :)
Чираг Бхатия - chirag64

С моей передовой веб-камерой Sodial в 5.99 €, она avconvработает лучше.
Avio

я помог мне: v4lctl bright 50% # apt-get install xawtv
Grzegorz Wierzowiecki

--no-banner (снимает нижний баннер с
отметкой

21

Используя avconvили ffmpeg, вы также можете захватить кадр с вашего устройства. Например:

avconv -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg

или же

ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg

Он откроется /dev/video0как video4linux2совместимое устройство, настроит разрешение на 640x480, передаст в течение 2 секунд ( 00:00:02или просто 2), затем захватит oneодин кадр, сохранив его в /tmp/out.jpg.

Проверьте, если ваше устройство /dev/video0, так как оно может отличаться для вас.

Доступные разрешения зависят от вашей веб-камеры. Мой размер достигает 640х480, и я проверил его с помощью инструмента qv4l2, который используется для настройки устройства video4linux2.

Этот -ssпараметр используется для правильного запуска устройства. Здесь, в моих тестах, при включении камеры наблюдается эффект постепенного увеличения, поэтому, если я просто опущу -ss 2, снятый кадр будет очень темным.


Я предпочел это решение, так как я уже установил avconv. Кроме того, вывод avconv также дает подсказки о максимальном разрешении, поскольку драйвер v4l показывает, должен ли он вернуться к более низкой спецификации.
Ледяной воды

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.