我想从网络摄像头捕获视频(保存到文件),并偶尔(从python代码)按需获取最新的静止帧,同时继续捕获。在Linux上有没有办法做到这一点?
要捕获视频,我正在使用以下命令:
ffmpeg -f v4l2 -framerate 30 -video_size 1024x576 -i /dev/video0 myvideo.mp4
然后在另一个终端中,我尝试捕获最新的静止帧:
ffmpeg -sseof -3 -i myvideo.mp4 -update 1 -q:v 1 current_frame.jpg
我从上一个命令中得到各种各样的响应,包括
Cannot use -sseof, duration of myvideo.mp4 not known
和
[matroska,webm @ 0x55e1aae26900] Duplicate element
Last message repeated 2 times
约束:
ffmpeg
调用subprocess.Popen
到(a)开始记录,(b)在任意点获取帧,(c)停止记录。)的解决方案。灵活性
ffmpeg
以外的程序(如果它也可以在Windows上运行,这很好,但不是必需的)您可以为FFmpeg提供多个输出。合并您的命令:
ffmpeg -f v4l2 -framerate 30 -video_size 1024x576 -i /dev/video0 myvideo.mp4 -r 1 -update 1 current_frame.jpg