首页 > 解决方案 > 为其他人编译 OpenCV + Gstreamer

问题描述

我创建了一个使用 OpenCV 和 Gstreamer(接收 udp 流)的项目,如果使用 Visual Studio(运行按钮)打开,它工作得非常好。但是在编译 Release x64 MT 并尝试之后,我不仅需要抛出大量 GStreamer .dll 文件来打开我的应用程序,而且即使在它成功打开后,当它打开流时我也会收到警告,因此我的程序是不工作(捕获返回错误)

[ WARN:0] global F:\Code\opencv_4.5.1\opencv-4.5.1\modules\videoio\src\cap_gstreamer.cpp (734) cv::GStreamerCapture::open OpenCV | GStreamer warning: Error opening bin: no element "udpsrc"
[ WARN:0] global F:\Code\opencv_4.5.1\opencv-4.5.1\modules\videoio\src\cap_gstreamer.cpp (501) cv::GStreamerCapture::isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created

好像什么都找不到。我的问题是:

如何编译我的项目,以便任何其他 Windows 计算机可以打开它并找到所有需要的文件?(隐藏 .dll 的奖励积分)

谢谢

标签: c++opencvgstreamer

解决方案


好的,我发现,由于某种原因,您需要将 .dll 文件从 GStreamer /bin 文件夹移动到您的应用程序主目录,并在上一个文件夹中复制 GStreamer /lib 文件夹

/MyFolder
   /my app
       /*.dll
       /myapp.exe
   /lib

*.dll-s 来自“ \gstreamer\1.0\x86_64\bin ” /lib 来自“ \gstreamer\1.0\x86_64 ”

一大堆文件,它破坏了我的目录组织,但它终于开始工作了——我有人发现了如何修复/改进它,请告诉我:wink:


推荐阅读