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