【发布时间】:2015-01-18 19:21:00
【问题描述】:
我在 vala 中播放 mjpeg 流时遇到问题。
我已经构建了我的管道,它仅适用于两个元素(videotestsrc 和 cluttersink),但如果我想添加更多元素,我会收到“内部数据流错误”和“流式传输任务暂停,原因未链接 (-1 )”。 如果我手动运行管道,它可以工作:
gst-launch souphttpsrc location=http://mjpeg.sanford.io/count.mjpeg ! multipartdemux ! jpegdec ! autovideosink
这是我的流媒体课程:
public class Stream : Clutter.Actor {
Clutter.Texture video;
public dynamic Gst.Element playbin;
public Gst.Pipeline pipeline;
public Gst.Element demux;
public Gst.Element jpegdec;
public Gst.Element outputsink;
public dynamic Gst.Element src;
public dynamic Gst.Element video_sink;
public Stream(){
print("stream");
video = new Clutter.Texture ();
this.pipeline = new Gst.Pipeline("videopipeline");
this.src = Gst.ElementFactory.make ("souphttpsrc","httpsrc");
this.demux = Gst.ElementFactory.make ("multipartdemux","demux");
this.jpegdec = Gst.ElementFactory.make ("jpegdec","jpegdec");
this.outputsink = Gst.ElementFactory.make("autovideosink","output");
this.video_sink = Gst.ElementFactory.make ("cluttersink", "source");
this.video_sink.texture = video;
this.src.set("location","http://mjpeg.sanford.io/count.mjpeg");
this.pipeline.add_many(this.src,this.demux,this.jpegdec,this.outputsink,this.video_sink);
this.src.link(this.demux);
this.demux.link(this.jpegdec);
this.jpegdec.link(this.outputsink);
this.outputsink.link(this.video_sink);
this.add_child (video);
this.pipeline.set_state(Gst.State.PLAYING);
}
}
这是完整的错误日志: http://pastebin.com/b9GnA5ke
【问题讨论】:
标签: linux gstreamer pipeline vala