首页 > 解决方案 > Gstreamer:每 5 秒使用 multifilesink 保存图像/jpeg

问题描述

我试图弄清楚如何每 N 秒使用 multifilesink 保存图像(比如说 5)。我的 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来做到这一点。

标签: c++gstreamer

解决方案


当 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"

推荐阅读