如何使用gstreamer /关闭流从视频流中提取单帧

时间:2016-08-19 15:15:51

标签: shell command-line gstreamer rtsp

我需要从网络摄像头的视频流中取出一帧并将其写入文件。 在ffmpeg中,我可以这样做:

ffmpeg -i rtsp://10.6.101.40:554/video.3gp -t 1 img.png

我的GStreamer命令:

gst-launch-1.0  rtspsrc location="rtsp://10.6.101.40:554/video.3gp" is_live=true ! decodebin ! jpegenc ! filesink location=img.jpg
问题是,gstreamer进程一直在运行而且没有结束。如何在写入文件后只占用一帧并强制关闭流? 是否可以从命令行执行此操作,或者我应该在c / python等中编写此代码...

非常感谢。

2 个答案:

答案 0 :(得分:1)

我能够做到:

! jpegenc snapshot=TRUE

请参见jpegenc - snapshot

但是我的出处不同,所以您的里程可能会有所不同。

答案 1 :(得分:0)

尝试对元素number of buffers使用属性queue,并将其限制为1。这有望给您一个框架。