Gstreamer rtsp 流到 appsink 到 openCV

Gstreamer rtsp stream to appsink to openCV

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

你可以这样使用:

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 接收和解码,这意味着您需要编码重新流式传输以及存储到文件的编码。如果这不是您想要的,您可以将 uridecodebin 替换为 rtspsrc,这将为您提供 RTP 流而不是解码的原始流。类似于:

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

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

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