【问题标题】:Can OpenCV VideoWriter support to write frames into RTSP?OpenCV VideoWriter 可以支持将帧写入 RTSP 吗?
【发布时间】:2018-04-07 13:31:43
【问题描述】:

我正在使用带有 IP 摄像头的 OpenCV,我可以通过使用 RTSP 协议成功读取视频流,如下所示:

VideoCapture capture = new VideoCapture();
String url = "rtsp://admin:123456@192.168.10.3:554/Streaming/Channels/101?transportmode=unicast";
capture.open(url);

但现在我想以同样的方式创建一个带有VideoWriter 的写入器并将帧写入输出流。

这可能吗?如果是,那么如何?如何为流创建文件名以及如何获取另一端的流,从IP摄像头到OpenCV也是如此?

open(String filename, int fourcc, double fps, Size frameSize, boolean isColor)

【问题讨论】:

  • 您的 IP 摄像机作为服务器工作,向客户端提供帧。如果您设置了另一个接受来自客户端的帧的服务器(即 ffserver),那么可以;您可以使用 VideoWriter 将帧写入传出 url。
  • 谢谢!你能告诉我,ffserver 如何设置并与 OpenCV 一起使用?
  • 您不想将 opencv 捕获流式传输到视频吗?从您的问题看来,您已经拥有了所需的大部分积木?
  • @GPPK 是的,但是仍然不能流出来视频,我可以接收流,但是现在我需要将流发送到另一端。
  • 我认为您需要在问题中更清楚地说明,在 OpenCV 中处理图像后,您希望通过新的 RTSP 流将图像数据发送回。

标签: c++ opencv ffmpeg video-streaming


【解决方案1】:

这可以通过 GStreamer 实现。 Opencv捕获主要使用,FFMPEG,GStreamer。您可以同时捕获流。对于 WideoWriter,您也可以同时使用两者。 FFMPEG 仅可用于制作视频文件。 Gstreamer 可用于通过视频流在 c++ OpenCV 程序外部流式传输结果。

GStreamer 适用于 Visual Studio 2019,适用于 opencv 4.2。在 Linux 上安装更加容易。

这很容易,但有很多错误空间。 Gstreamer 管道有效。安装的扩展描述可在此处获得Tutorial。

我用过3) - OpenCV 源码 opencv-4.2.0 - OpenCV 源码 opencv_contrib-4.2.0 - Cmake 3.17 release Candidate 3,这很重要。 我为 MSVC GStreamer 使用了开发和运行时安装程序 Gstreamer 1.16.2 运行时安装程序 Gstreamer 1.16.2 开发安装程序 以下步骤对于 OpenCV 从源代码和 OpenCV 安装构建是常见的。另外,这些资源需要在cmake配置时添加。

现在在 Visual Studio 2019 中构建由 CMAKE 生成的 OpenCV 项目。最后重要的是设置环境变量以找到 GStreamer Runtime。进入系统变量路径:添加

  • xxx\1.0\x86_64\bin
  • xxx\1.0\x86_64\lib
  • xxx\1.0\x86_64\lib\gstreamer-1.0

您需要将 VideoWriter 与 gstreamer 管道一起使用。

VideoWriter writer( "appsrc ! videoconvert ! videoscale ! video/x-raw,width=320,height=240 ! theoraenc ! oggmux ! tcpserversink host=192.168.0.116 port=8080 recover-policy=keyframe sync-method=latest-keyframe unit-format=buffers units-max=1 buffers-max=0 sync=true ",
        0,
        5,
        Size(320, 240),
        true);

【讨论】:

  • 谢谢!虽然我已经实现了该功能,但您的解释很好,并给予 VOTE UP 让其他人知道它有帮助的答案。
猜你喜欢
  • 1970-01-01
  • 2018-05-03
  • 2019-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
  • 2015-06-01
相关资源
最近更新 更多