<div dir="ltr"><div><div><div><div><div>Hey people,<br><br></div>Sorry if this was already asked tons of times before, but I tried to do my homework. I'm eating GStreamer documentation and managed to create a webcam streaming that doesn't use v4l by pooling the images directly from it and creating a pipeline througth appsrc to autovideosink, and it works. <br><br></div>when I try to create a pipeline to udpsink, however, it only calls the data_callback once, and doesn't streams anything.<br><br></div>My pipeline: <br><br>appsrc -> videoconverter -> avenc_mpeg4 -> rtpmp4vpay -> udpsink<br><br></div>My configurations:<br><br>  /* setup pipeline */<br>  GstElement *pipeline   = gst_pipeline_new ("pipeline");<br>  GstElement *appsrc     = gst_element_factory_make("appsrc", "source");<br>  GstElement *conv       = gst_element_factory_make("videoconvert", "conv");<br>  GstElement *videosink  = gst_element_factory_make("xvimagesink", "videosink");<br>  GstElement *videoenc   = gst_element_factory_make("avenc_mpeg4", "ffenc_mpeg4");<br>  GstElement *payloader  = gst_element_factory_make("rtpmp4vpay", "rtpmp4vpay");<br>  GstElement *udpsink    = gst_element_factory_make("udpsink", "udpsink");<br>  GstElement *freeze     = gst_element_factory_make("imagefreeze", "imagefreeze0");<br>  GstElement *colorspace = gst_element_factory_make("ffmpegcolorspace", "colorspace");<br><br>  g_object_set(G_OBJECT(udpsink), "host", "127.0.0.1", "port", 5000, NULL);<br>  g_object_set(G_OBJECT(payloader), "config-interval", 60, NULL);<br>  <br>  /* setup */<br>  g_object_set (G_OBJECT (appsrc), "caps",<br>          gst_caps_new_simple ("video/x-raw",<br>                     "format", G_TYPE_STRING, "RGB",<br>                     "width", G_TYPE_INT, width,<br>                     "height", G_TYPE_INT, height,<br>                     "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,<br>                     "framerate", GST_TYPE_FRACTION, 0, 1,<br>                     NULL), NULL);<br><br>// WORKS<br>  gst_bin_add_many (GST_BIN (pipeline), appsrc, conv, videosink, NULL);<br>  gst_element_link_many (appsrc, conv, videosink, NULL);<br></div><br>// DOESNT WORKS<br><div>  gst_bin_add_many (GST_BIN (pipeline), appsrc, conv, videoenc, payloader, udpsink, NULL);<br>  gst_element_link_many (appsrc, conv, videoenc, payloader, udpsink, NULL);<br><br>  /* setup appsrc */<br>    g_object_set (G_OBJECT (appsrc),<br>            "stream-type", 0,<br>            "is-live", TRUE,<br>            "format", GST_FORMAT_TIME, NULL);<br><br><div><br></div><div>references: <br></div><div><div> [1] : <a href="https://gist.github.com/beeender/d539734794606a38d4e3">https://gist.github.com/beeender/d539734794606a38d4e3</a><br> [2] : <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-udpsrc.html">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-udpsrc.html</a><br> [3] : <a href="http://stackoverflow.com/questions/34009566/how-to-send-qimages-via-gstreamer-over-udp">http://stackoverflow.com/questions/34009566/how-to-send-qimages-via-gstreamer-over-udp</a><br><br></div><div>and a few more. Most of the code I found on the internet is about creating pipelines via gst-launcher, I know  I can create one from it but didn't managed to build a plugin for my stuff to test, yet.<br><br></div><div>Thanks for any help,<br></div><div>Tomaz<br></div></div></div></div>