2

コマンドラインスクリプトをGstreamerc#Windowsフォームアプリケーションに実装しようとしています。debugを"3>Errorlog.txt"に設定しましたが、ファイルは常に空です。私は自分が間違っていることを理解できません。コマンドラインは完全に機能しますが、winformsアプリケーションでは何も起こりません。

コマンドラインスクリプトは次のとおりです。 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);

        }

御時間ありがとうございます。

4

1 に答える 1

1

「3>Errorlog.txt」ではなく、「2>Errorlog.txt」です。また、GST_DEBUGを正確に何に設定しましたか?

最後に、時々パッドについて読んでください。これはFAQです。デマルチプレクサで「パッド追加」信号を処理し、そこからキューにリンクする必要があります。

于 2012-04-29T20:00:17.903 に答える