2
我想實現Gstreamer c#窗體表單應用程序的命令行腳本。我將調試設置爲「3> Errorlog.txt」,但該文件始終爲空。我不能得到我做錯了什麼。命令行完美工作,但在winforms應用程序中沒有任何反應。C#上的GStreamer UDPSRC實現#
下面是命令行腳本: gst-launch udpsrc port=1234 multicast-group="127.0.0.1" ! mpegtsdemux name=demuxer ! queue2 ! mpeg2dec ! ffmpegcolorspace ! videoscale ! directdrawsink
和我的實現:
private void Start(){
Gst.Application.Init();
pipeline = new Gst.Pipeline();
udpsrc = Gst.ElementFactory.Make("udpsrc", "source");
udpsrc["port"] = 1234;
udpsrc["multicast-group"] = "127.0.0.1";
demux = ElementFactory.Make("mpegtsdemux", "demuxer");
demux["name"] = "demuxer";
queue = ElementFactory.Make("queue2", "videoq");
decode = ElementFactory.Make("mpeg2dec", "decode");
space = ElementFactory.Make("ffmpegcolorspace", "space");
scale = ElementFactory.Make("videoscale", "scale");
MyDrawSink = ElementFactory.Make("directdrawsink", "directdrawsink");
pipeline.Add(udpsrc, demux, queue, decode, space, scale, MyDrawSink);
MySinkAdapter = new XOverlayAdapter(MyDrawSink.Handle);
MySinkAdapter.XwindowId = (ulong)this.Handle;
udpsrc.Link(demux);
demux.Link(queue);
queue.Link(decode);
decode.Link(space);
space.Link(scale);
scale.Link(MyDrawSink);
pipeline.SetState(State.Playing);
}
感謝您的時間。
謝謝。 PadAdded事件起作用 void demux_PadAdded(object o,PadAddedArgs args) demux.Link(queue); } – Sarpkaya 2012-05-02 05:56:59