Converting gst launch command into c

Dušan Poizl poizl at maindata.sk
Thu Nov 27 01:25:08 PST 2014


Demuxing is done on server side and rtsp server is sending each video
and audio stream separately.

Dňa 27.11.2014 o 09:31 Rajesh salumuri napísal(a):
> Hi Poizl,
>
> Thanks for your reply,
>
> Actually i called the connect to pad-added and in the call back
> function i 'm connecting them to respective elements.
>
> One thing is i don't know the stream in which format they are sending
> like from .avi or .mov ,here i have taken the avidemux to show,but how
> to find out what type of streaming they are sending, according to that
> i will use respective demuxer .Can you please suggest how i get know
> to know this.
>
> On Thu, Nov 27, 2014 at 1:16 PM, Dušan Poizl <poizl at maindata.sk
> <mailto:poizl at maindata.sk>> wrote:
>
>     you need connect to "pad-added" signal and in callback of that
>     signal you will get GstPad. from this pad you get caps and
>     according to them you link this pad to additional elements.
>
>     Dňa 27.11.2014 o 08:05 Rajesh salumuri napísal(a):
>>     Hi,
>>
>>     I am trying to convert the following gst-launch command into c:
>>
>>     *gst-launch rtspsrc location=rtsp://ipaddress:port name=demux
>>     demux. ! queue ! decodebin ! autovideosink demux. ! queue !
>>     rtppcmudepay ! autoaudiosink
>>
>>     *
>>     I tried the above command it is able to stream both audio and video.*
>>     *
>>
>>     And I played this rtspurl in vlc media player it is showing the
>>     properties are as follows:
>>
>>     Type: Video Codec: H264 - MPEG-4 AVC (part 10) (h264) Resolution:
>>     320x180 Decoded format: Planar 4:2:0 YUV
>>
>>     Type: Audio Codec: PCM MU-LAW (mlaw) Channels: Mono Sample rate:
>>     8000 Hz Bits per sample: 8
>>
>>     *I am converting the above gst-launch command in c in brief
>>     explained below*
>>
>>       pipeline  = gst_pipeline_new("nice_pipeline");
>>       source = gst_element_factory_make("nicesrc","source");//thsi
>>     source will take the stream from rtsp url
>>     *  demuxer = gst_element_factory_make ("avidemux", "avi-demuxer");*
>>       decvd= gst_element_factory_make ("decodebin", "decodebin");
>>       vdsink = gst_element_factory_make ("autovideosink", "video-sink");
>>       vdqueue = gst_element_factory_make ("queue", "video-queue");
>>       adqueue = gst_element_factory_make ("queue", "audio-queue");
>>       decad= gst_element_factory_make ("rtppcmudepay", "rtppcmudepay");
>>       adsink = gst_element_factory_make ("autoaudiosink", "audio-sink");
>>
>>           bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));
>>           gst_bus_add_watch(bus, bus_call, NULL);
>>           gst_object_unref (bus);
>>           gst_bin_add_many(GST_BIN (pipeline), source,decvd,decad,
>>     adqueue, vdqueue, vdsink, adsink,  NULL);
>>
>>           gst_element_link (source, demuxer);
>>           gst_element_link (decvd, vdqueue);
>>           gst_element_link (vdqueue, vdsink);
>>           gst_element_link (decad, adqueue);
>>           gst_element_link (adqueue, adsink);
>>
>>           g_signal_connect (demuxer, "pad-added", G_CALLBACK
>>     (on_pad_added), NULL);
>>           gst_element_set_state(pipeline, GST_STATE_PLAYING);
>>
>>     *on_pad_added func defintion:*
>>
>>     GstCaps *caps;
>>         GstStructure *str;
>>
>>         caps = gst_pad_get_caps (pad);
>>         g_assert (caps != NULL);
>>         str = gst_caps_get_structure (caps, 0);
>>         g_assert (str != NULL);
>>
>>         if (g_strrstr (gst_structure_get_name (str), "video")) {
>>             g_debug ("Linking video pad to dec_vd");
>>
>>             GstPad *targetsink = gst_element_get_pad (decvd, "sink");
>>             g_assert (targetsink != NULL);
>>             gst_pad_link (pad, targetsink);
>>             gst_object_unref (targetsink);
>>         }
>>
>>         if (g_strrstr (gst_structure_get_name (str), "audio")) {
>>             g_debug ("Linking audio pad to dec_ad");
>>
>>             GstPad *targetsink = gst_element_get_pad (decad, "sink");
>>             g_assert (targetsink != NULL);
>>             gst_pad_link (pad, targetsink);
>>             gst_object_unref (targetsink);
>>         }
>>
>>         gst_caps_unref (caps);
>>
>>     My question is that what type of demuxer i have to select for the
>>     properties of video and audio it is streaming.
>>
>>     If any other solution is there for demuxing audio and video from
>>     rtsp url please suggest or provide some sample code for that.
>>
>>     Thanks.
>>
>>
>>     _______________________________________________
>>     gstreamer-devel mailing list
>>     gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>>     http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>     _______________________________________________
>     gstreamer-devel mailing list
>     gstreamer-devel at lists.freedesktop.org
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20141127/41a4f504/attachment.html>


More information about the gstreamer-devel mailing list