Gstreamer rtsp流到appsink到openCV

时间:2015-05-04 11:14:00

标签: c++ opencv gstreamer

我需要你的帮助,因为我试图通过gstreamer接收rtsp流,然后将其放入openCV来处理视频。更糟糕的是,我需要从openCV回来,但首先要做的事情。我对此很陌生,所以我不太了解Gstreamer,所以我依靠你们。一些简单的例子是最好的,但我将使用我拥有的;) 提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

uridecodebin uri=rtsp:// name=uridec ! queue ! tee name=t ! queue ! <some encoder and muxer> ! filesink t. ! queue ! videoconvert ! "video/x-raw, format=BGR" ! appsink t. ! queue ! <restream>

在这个可能的解决方案中,您正在uridecodebin接收和解码,这意味着对于重新流式传输,您需要进行编码,以及存储到文件的编码。如果这不是您想要的,您可以用rtspsrc替换uridecodebin,它将为您提供RTP流而不是解码的原始流。类似的东西:

rtspsrc ! rtpXdepay ! tee name=t ! ...

将X替换为您接收的格式(可以从您的应用程序动态完成)。现在输出是一个编码流,您可以使用与上面的示例管道类似的方式。

请注意,这些建议假设您的rtsp输入是单个流(可能是视频),如果您需要视频和音频,则需要从uridecodebin或rtspsrc中添加2个分支。我还假设通过&#39; rtspStream&#39;是某种外部库/应用程序,您将使用它来重新传输而不是使用gstreamer本身。无论如何,这应该给你一个想法。