Gstreamer:每 5 秒使用 multifilesink 保存 image/jpeg

Gstreamer: Save image/jpeg using multifilesink every 5 seconds

我正在尝试弄清楚如何每 N 秒(比如 5 秒)使用 multifilesink 保存图像。我的 get-launch-1.0 管道如下:gst-launch-1.0 videotestsrc ! 'video/x-raw, format=I420, width=400, height=400, framerate=1/5' ! jpegenc ! multifilesink location=/some/location/img_%06d.jpg

我以为帧率选项可以控制捕获速度,但它似乎没有任何影响。我怎样才能延迟此管道以每 N 秒仅保存一个 jpeg?

编辑:所以我想如果你设置 "is-live=true" 这将如何与 videotestsrc 一起工作,但我想用 nvcamerasrc 或 nvarguscamerasrc 来做到这一点。

当 videotestsrc 不是 运行 作为实时源时,它会尽可能快地抽出帧,根据源板上配置的输出帧率更新时间戳。 将其设置为实时模式将确保它实际匹配预期的帧率。 对于像摄像机源这样的真实实时源,这应该不是问题。

然而,像这样的东西可以强制与 videotestsrc 同步:

gst-launch-1.0.exe videotestsrc ! video/x-raw, format=I420, width=400, height=400, framerate=1/5 ! identity sync=true ! timeoverlay ! jpegenc ! multifilesink location="/some/location/img_%06.jpg"