我尝试在WPF应用程序中使用Gstreamer显示RTSP流。
所以我到目前为止为止:
我用来初始化库的以下代码:
Gst.Application.Init(); // (1)
mainLoop = new GLib.MainLoop();
mainGLibThread = new System.Threading.Thread(mainLoop.Run);
mainGLibThread.Start();
Element uriDecodeBin = ElementFactory.Make("playbin", "uriDecodeBin0"); // (2)
在行(1)上无法加载DLL'libgstreamer-1.0-0.dll':找不到指定的模块。
。如果我将所有gstreamer dll复制到bin / Debug文件夹中,则该异常消失了,但第(2)行中的ElementFactory.Make
总是返回null
,没有任何异常。如果我尝试做
Parse.Launch(@"videotestsrc ! videoconvert ! autovideosink")
测试库功能时出现错误:
没有元素“ videotestsrc”
但是如果我从命令行运行它:
gst-launch-1.0 videotestsrc!视频转换!自动视频接收器
可以正常工作。
所以我的问题-如何使GStreamer更加清晰?
答案 0 :(得分:0)
更改GStream的路径,并在开始之前添加此代码
string path = @"G:\gstreamer\1.0\x86\"; // path to your gstream
string pluginpath = @"G:\gstreamer\1.0\x86\lib\gstreamer-1.0\"; // path to your gstream
string registry = System.IO.Path.Combine(path, "registry.bin");
Environment.SetEnvironmentVariable("PATH", Environment.GetEnvironmentVariable("PATH") + ";" + path);
Environment.SetEnvironmentVariable("GST_PLUGIN_PATH", pluginpath + ";" + Environment.GetEnvironmentVariable("GST_PLUGIN_PATH"));
Environment.SetEnvironmentVariable("GST_PLUGIN_SYSTEM_PATH_1_0", pluginpath + ";" + Environment.GetEnvironmentVariable("GST_PLUGIN_SYSTEM_PATH_1_0"));
Environment.SetEnvironmentVariable("GST_PLUGIN_SYSTEM_PATH", pluginpath + ";" + Environment.GetEnvironmentVariable("GST_PLUGIN_SYSTEM_PATH"));
Environment.SetEnvironmentVariable("GST_DEBUG", "*:4");
Environment.SetEnvironmentVariable("GST_DEBUG_FILE", System.IO.Path.Combine(path, "gstreamer.log"));
Environment.SetEnvironmentVariable("GST_REGISTRY", registry);