【发布时间】:2016-05-01 10:35:15
【问题描述】:
是否有一种解决方案可以使用命令行从 USB 网络摄像头捕获视频并将每一帧保存为本地文件夹中的 jpeg 文件在 linux 系统上?还是我应该使用opencv?
到目前为止,我已经设法使用此系统调用将流保存到 avi 文件:
avconv -f video4linux2 -s 640x480 -i /dev/video0 video1.avi
为了获得单帧,我可以使用这个:
fswebcam -r 640x480 --jpeg 85 -D 1 shot.jpg
问题是,如果我将最后一个命令放入循环中,我每秒只能获得大约一帧。由于 avconv 命令设法以 30 fps 的速度保存 avi 文件而没有问题,我想如果我找到正确的命令,它也可以设法以 30 fps 的速度保存 jpeg 文件序列。
我知道有这个命令可以从视频文件中保存 jpeg 中的单帧,它工作正常:
avconv -i video1.avi -r 30 -f image2 out_%04d.jpg
但是,如果我尝试这样做:
avconv -i /dev/video0 -r 30 -f image2 out_%04d.jpg
我收到此错误:
/dev/video0: Operation not permitted
有解决办法吗?
谢谢
【问题讨论】:
标签: webcam video-capture avconv