gpt4 book ai didi

c# - C# 上的 GStreamer UDPSRC 实现

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:31 27 4
gpt4 key购买 nike

我正在尝试将命令行脚本实现到 Gstreamer c# windows 窗体应用程序。我将调试设置为“3 > Errorlog.txt”,但文件始终为空。我无法理解我做错了什么。命令行运行完美,但在 winforms 应用程序中没有任何反应。

这是命令行脚本:gst-launch udpsrc port=1234 multicast-group="127.0.0.1"! mpegtsdemux 名称=解复用器!队列 2! mpeg2dec! ffmpeg 色彩空间!视频比例! 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);

}

感谢您的宝贵时间。

最佳答案

它是“2> Errorlog.txt”而不是“3 > Errorlog.txt”。另外,您究竟将 GST_DEBUG 设置为什么?

最后,请阅读 sometimes pads。这是一个常见问题解答。您需要处理多路分解器上的“填充添加”信号并从那里链接到队列。

关于c# - C# 上的 GStreamer UDPSRC 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10349500/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com