代码之家  ›  专栏  ›  技术社区  ›  folibis

GStreamer sharp未能创建管道

  •  0
  • folibis  · 技术社区  · 6 年前

    我尝试在WPF应用程序中使用Gstreamer显示RTSP流。

    • 已将GStreamer安装到loal文件夹F:/GStreamer中
    • 已创建新的WPF应用程序
    • 添加glib-sharp和gstreamer-sharp作为依赖项。

    我使用下面的代码初始化库:

    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)。如果我将所有gstreamer dll复制到bin/Debug文件夹中,异常就会消失,但是 ElementFactory.Make 第(2)行总是返回 null 毫无例外。如果我试着做

    Parse.Launch(@"videotestsrc ! videoconvert ! autovideosink")
    

    要测试库功能,请执行以下操作:

    无元素“videotestsrc”

    gst-launch-1.0视频测试src!视频转换!自动视频接收器

    0 回复  |  直到 6 年前
        1
  •  0
  •   Premi    6 年前

            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);