在Linux上的视频捕获过程中获取静止帧

问题描述 投票:0回答:1

我想从网络摄像头捕获视频(保存到文件),并偶尔(从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

约束:

  1. 我需要控制从python(例如,通过ffmpeg调用subprocess.Popen到(a)开始记录,(b)在任意点获取帧,(c)停止记录。)的解决方案。

灵活性

  1. 帧定时不必精确。可以在最后几秒钟之内成为一帧。
  2. 我没有附加到特定的容器格式(mkv,mp4等)
  3. 我可以使用ffmpeg以外的程序(如果它也可以在Windows上运行,这很好,但不是必需的)
python linux video ffmpeg
1个回答
0
投票

您可以为FFmpeg提供多个输出。合并您的命令:

ffmpeg -f v4l2 -framerate 30 -video_size 1024x576 -i /dev/video0 myvideo.mp4 -r 1 -update 1 current_frame.jpg
© www.soinside.com 2019 - 2024. All rights reserved.