我希望能够使用终端的网络摄像头拍摄照片。然后该图像将保存到文件中。如何实现?
答案1
还有另一个应用程序可用于从网络摄像头捕获图像,名为 Fs网络摄像头.你可以使用以下方式安装
sudo apt-get install fswebcam
您可以使用以下命令进行示例拍摄。
fswebcam -r 640x480 --jpeg 85 -D 1 web-cam-shot.jpg
在上面的代码语法中,-r
代表图像分辨率,--jpeg
代表图像的格式类型和85
其质量标准,-D
代表捕获前设置的延迟。
现在您的图像最终以 web-cam-shot.jpg 名称保存。
希望有所帮助。
答案2
如果你正在寻找自动化的东西,webcam
它相当不错。它有很多不错的选项可以通过互联网推送照片。
如果您想要更手动的操作,我们正在谈论 V4L/UVC(大多数)支持的相机,您可以使用streamer
它从设备捕获帧:
streamer -f jpeg -o image.jpeg
答案3
使用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
,因为它可能与您有所不同。
可用的分辨率取决于您的网络摄像头。我的分辨率最高可达 640x480,我使用一个称为 的工具检查了它qv4l2
,该工具用于配置 video4linux2 设备。
该-ss
参数用于允许设备正确启动。在我的测试中,相机打开时会出现淡入效果,因此,如果我省略-ss 2
,捕获的帧将非常暗。
答案4
您也可以尝试紫外线捕获。
uvccapture -m