如何使用 gstreamer / 关闭流从视频流中提取单帧
How extract single frame from video stream using gstreamer / closing stream
我需要从网络摄像头的视频流中取出一帧并将其写入文件。
在 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 等中对此进行编码...
非常感谢。
尝试对元素 queue
使用 属性 number of buffers
,并将其限制为 1。这将有望为您提供一个框架。
我能够做到这一点:
! jpegenc snapshot=TRUE
但我的来源不同,所以你的里程可能会有所不同。
我需要从网络摄像头的视频流中取出一帧并将其写入文件。 在 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 等中对此进行编码...
非常感谢。
尝试对元素 queue
使用 属性 number of buffers
,并将其限制为 1。这将有望为您提供一个框架。
我能够做到这一点:
! jpegenc snapshot=TRUE
但我的来源不同,所以你的里程可能会有所不同。