c++ - Gstreamer rtsp流到appsink到openCV

标签 c++ opencv gstreamer

我需要您的帮助,因为我正试图通过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处进行接收和解码,这意味着要进行重新流式传输,您需要进行编码以及存储到文件的编码。如果这不是您想要的,则可以用rtspsrc替换uridecodebin,这将为您提供RTP流而不是解码的原始流。就像是:
rtspsrc ! rtpXdepay ! tee name=t ! ...

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

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

关于c++ - Gstreamer rtsp流到appsink到openCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30028722/

相关文章:

c++ - 如何使用 OpenCv 中的背景减法测量移动车速

c++ - cv::Mat 从 IplImage 和引用计数创建

c++ - OpenCV:读取矩阵值

gstreamer - 在gstreamer中动态添加和删除T恤队列

Gstreamer MP4 中缺少音频

c++ - 使用 Dijkstra 的最大概率路径

c++ - 使用少于需要的参数调用函数

java - 在 OpenCV、Java 中添加两个 Mats 时出错

java - 映射类型 : char**& in JNA

python-2.7 - 如何访问 Gstreamer 注册表以以编程方式获取可用插件的列表