LINUX.ORG.RU

снимок веб-камерой


0

1

как захватить один единственный кадр с вебкамеры и сохранить его в файл, желательно без сторонних костылей, т.е. штатными средствами?
(например, это умеет mplayer -
$ mplayer -vo png tv://,
но он начинает бешено писать кадры 0001.png, 0002.png и так далее, а мне нужен только один.)

★★★★★

Параметры -ss , -endpos, а также - кол-во кадров в секунду. Далее из 3-5 полученных за пару секунд кадров выбираете последний (т.к. первые получаются плохо - пока веб-камера в режим выйдет...), а остальные удаляете.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от snoopcat

ну и да - не работает только с tv://, с обычным mp3-файлом и -ss и -endpos замечательно работают.

snoopcat ★★★★★
() автор топика

Гуглил на эту тему, так ничего рабочего и не нашел, и забил :)

xorik ★★★★★
()
Ответ на: комментарий от snoopcat

для -ss укажите где-нибудь так вторую секунду, для -endpos - какую-нибудь пятую; частоту кадров - 1 кадр в секунду...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

P.S. У меня на нетбуке скрипт так работает, который при логине и потом каждый час сохраняет по два кадра в отдельную директорию.

Eddy_Em ☆☆☆☆☆
()

хм, вроде даже работает:
ffmpeg -f video4linux2 -r 1 -i /dev/video0 -f image2 image.png -t 1

snoopcat ★★★★★
() автор топика

mkfifo /tmp/mplayer.fifo ; mplayer -slave -quiet -input file=/tmp/mplayer.fifo -vo null -vf screenshot tv:// & disown -h ;

echo «screenshot» >/tmp/mplayer.fifo

LinuxWarlock
()

У mplayer есть параметр -frames, отвечающий за число выводимых кадров. Попробуй то же самое, но с -frames 1.

lucif0rm
()

Я так делал, но каким-то просмотрщиком. Ещё до снимка надо пару десятков кадров пропустить, дабы камера правильно на освещение настроилась.

Artificial_Thought ★★★★
()
Ответ на: комментарий от lucif0rm

Я уже выше говорил: число кадров надо сделать побольше, хотя бы штук 5, чтобы веб-камера успела выйти в режим. Иначе у вас с большой вероятностью получится что-нибудь недодержанное или передержанное, или с кривым цветовым балансом...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Не исключено, я и не подозревал раньше, что при помощи mplayer можно делать даже такое.

lucif0rm
()
Ответ на: комментарий от lucif0rm

Вот скрипт с моего нетбука:

#!/bin/sh
cd /tmp
mplayer tv:// -tv driver=v4l2:width=640:height=480:noaudio:outfmt=uyvy:fps=3 -ss 1 -endpos 1.5 -ovc copy -vo jpeg
rm -rf 00000001.jpg 00000002.jpg 00000003.jpg
cd ~/.screenshots
for num in `seq 8 -1 0`
do
    [ -f $num.jpg ] && mv $num.jpg $[ $num + 1 ].jpg
    [ -f $num-a.jpg ] && mv $num-a.jpg $[ $num + 1 ]-a.jpg
done
mv /tmp/00000005.jpg 0.jpg
mv /tmp/00000004.jpg 0-a.jpg

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.