从终端拍照


Answers:


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 2014年

@tenshimsm我花了10分钟弄清楚fswebcam到底出了什么问题,然后取出了包装。再次安装它只是为了尝试您的方法,其中30帧对我有用。谢谢:)
Chirag Bhatia-chirag64

使用我的5.99€最新Edge Sodial网络摄像头,avconv效果更好。
Avio

我对伤口有帮助的是:v4lctl bright 50%#apt-get install xawtv
Grzegorz Wierzowiecki

--no-banner (带时间标记的移除底部横幅)
若昂Cartucho

20

使用avconvffmpeg,您也可以从设备中捕获帧。例如:

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,因为它可能与您有所不同。

可用的分辨率取决于您的网络摄像头。我的设备的分辨率为640x480,我使用一个名为的工具对其进行了检查,该工具qv4l2用于配置video4linux2设备。

-ss参数用于允许设备正确启动。在我的测试中,打开相机电源时会有淡入效果,因此,如果我只是省略-ss 2,则捕获的帧将非常暗。


我更喜欢这种解决方案,因为我已经安装了avconv。同样,由于v4l驱动程序显示是否必须降低为较低的规格,因此avconv的输出也提示了最大分辨率。
icedwater

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.