使用python从gst管道获取到opencv的框架

2024-06-28 19:03:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是OpenCV和GStreamer0.10。在

我使用这个管道通过UDP接收MPEG-ts包,它使用python提供的自定义套接字sockfd,并用xvimagesink显示它,它工作得很好。以下是该管道的推荐线:

PIPELINE_DEF = "udpsrc do-timestamp=true name=src blocksize=1316 closefd=false buffer-size=5600 !" \
           "mpegtsdemux !" \
           "queue !" \
           "ffdec_h264 max-threads=0 !" \
           "ffmpegcolorspace !" \
           "xvimagesink name=video"

现在,我想从这个管道中获取一个帧并用OpenCV显示它。我该怎么做?我知道很多关于从appsink获取缓冲区数据的知识。但是我仍然不知道如何将这些缓冲区转换为OpenCV的每一帧。感谢您的回复和任何帮助:]


Tags: nametrue管道pipelinedefdoopencvtimestamp
1条回答
网友
1楼 · 发布于 2024-06-28 19:03:20

谢谢,我已经尝试使用rtph264pay向udpsink直播视频流。以下是gst管道的推荐行:

PIPELINE_DEF = 
"udpsrc name=src !" \               
"mpegtsdemux !" \       
"queue !" \               
"h264parse !" \ 
"rtph264pay !" \   
"udpsink host=127.0.0.1 port=5000"  

我构建了一个sdp文件,使之可以被opencv like videocapture(“123.sdp”)123.sdp接收,下面的内容是针对这个sdp文件的:

^{pr2}$

它现在工作得很好,只需要删除“blocksize=1316closefd=false buffer size=5600”就可以解除限制了。在

相关问题 更多 >