【问题标题】:Saving webcam video frame by frame逐帧保存网络摄像头视频
【发布时间】: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


    【解决方案1】:

    不确定这是否有用,但在 openshot 中,您可以导入视频并将其转换为图像序列。序列被导出到同一目录下的一个文件夹中,每一帧都是一个 png。我只通过openshot的gui使用它,但我不知道命令行的用法。在 gui 中,只需右键单击导入的视频文件,就有一个转换为图像序列的选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多