是否有解决方案从USB网络摄像头捕获视频并使用命令行将每个帧保存在Linux系统上的jpeg文件作为jpeg文件?或者我应该使用opencv吗?
到目前为止,我已设法通过此系统调用将流保存到avi文件:
avconv -f video4linux2 -s 640x480 -i /dev/video0 video1.avi
为了获得单帧,我可以使用它:
fswebcam -r 640x480 --jpeg 85 -D 1 shot.jpg
问题是,如果我把这最后一个命令放在一个循环中,我设法每秒只能得到一帧。由于avconv命令设法以30fps保存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
有解决方案吗?
谢谢
答案 0 :(得分:0)
不确定这是否有用,但在openshot中,您可以导入视频并将其转换为图像序列。序列将导出到同一目录中的文件夹中,每个帧都是png。我只是通过openshot的gui使用它,但是,我不知道命令行的用法。在gui中只需右键单击导入的视频文件,就可以选择转换为图像序列。