<br><br><div class="gmail_quote">On Fri, Jul 3, 2009 at 10:10 PM,  <span dir="ltr">&lt;<a href="mailto:gstreamer-devel-request@lists.sourceforge.net">gstreamer-devel-request@lists.sourceforge.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Send gstreamer-devel mailing list submissions to<br>
        <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>
        <a href="mailto:gstreamer-devel-request@lists.sourceforge.net">gstreamer-devel-request@lists.sourceforge.net</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:gstreamer-devel-owner@lists.sourceforge.net">gstreamer-devel-owner@lists.sourceforge.net</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of gstreamer-devel digest...&quot;<br>
<br>
<br>
Today&#39;s Topics:<br>
<br>
   1. low framerate with udp (Mehta, Neel)<br>
   2. Re: analogue of gst-launch with caps (Tim-Philipp M?ller)<br>
   3. Re: analogue of gst-launch with caps (Tim-Philipp M?ller)<br>
   4. Re: Need help with first gstreamer program. (Ognen Bezanov)<br>
   5. A question regarding to dynamic pipeline change (Zheng, Huan)<br>
   6. Re: Save a stream to different file every hour (Juraj Kubelka)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Fri, 3 Jul 2009 16:52:29 +0530<br>
From: &quot;Mehta, Neel&quot; &lt;<a href="mailto:x0112149@ti.com">x0112149@ti.com</a>&gt;<br>
Subject: [gst-devel] low framerate with udp<br>
To: Discussion of the development of GStreamer<br>
        &lt;<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a>&gt;<br>
Message-ID:<br>
        &lt;<a href="mailto:E0D41E29EB0DAC4E9F3FF173962E9E94024ED84AE4@dbde02.ent.ti.com">E0D41E29EB0DAC4E9F3FF173962E9E94024ED84AE4@dbde02.ent.ti.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;us-ascii&quot;<br>
<br>
Hi<br>
<br>
I am currently streaming MPEG4 video via UDP (resolution 720P/30 fps). Currently using the Live555, and RTSP, the video can be played at 30 fps. Using Gstreamer, I am able to get only 21 fps via UDP (for VGA, I do get 30 fps). I am using gstreamer for transmission only. The encoding process is same. I am using appsrc to get the encoded data from application buffer. I am attaching the code that I am using currently for transmission using Gstreamer. Please help me out to increase the framerate.<br>

<br>
The pipeline is basically: appsrc is-live=true name=source caps=&quot; video/mpeg, mpegversion=(int)4, framerate=(fraction)1001/30000, width=(int)1280, height=(int)720&quot; ! rtpmp4vpay send-config=TRUE ! udpsink host=172.24.136.232 port=5000<br>

<br>
Note: I am using UDP instead of rtsp, as I am unable to write the code completely between appsrc and gst-rtsp-server. I have posted on this forum for help titled &quot;appsrc and gst-rtsp-server&quot; on 29th June, Monday, but I haven&#39;t received a help yet. Someone please help me out with this too.<br>

<br>
Please fell free to ask for more information.<br>
<br>
Thanks in advance.<br>
<br>
Regards,<br>
Neel.<br>
<br>
<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
-------------- next part --------------<br>
An embedded and charset-unspecified text was scrubbed...<br>
Name: appsrc-udp.txt<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Fri, 03 Jul 2009 12:30:24 +0100<br>
From: Tim-Philipp M?ller &lt;<a href="mailto:t.i.m@zen.co.uk">t.i.m@zen.co.uk</a>&gt;<br>
Subject: Re: [gst-devel] analogue of gst-launch with caps<br>
To: <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
Message-ID: &lt;1246620624.5472.2.camel@zingle&gt;<br>
Content-Type: text/plain; charset=&quot;UTF-8&quot;<br>
<br>
On Thu, 2009-07-02 at 17:52 +0530, Mehta, Neel wrote:<br>
<br>
&gt; Can anyone suggest a substitute of gst_parse_launch (string, NULL), so<br>
&gt; that I have the negotiated caps as the part of the output.<br>
&gt;<br>
&gt; i.e. I want an analogue of gst-launch-0.10 ?v.<br>
<br>
A quick look at gst-launch.c reveals that -v boils down to:<br>
<br>
  g_signal_connect (pipeline, &quot;deep-notify&quot;,<br>
      G_CALLBACK (gst_object_default_deep_notify), NULL);<br>
<br>
 Cheers<br>
  -Tim<br>
<br>
<br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Fri, 03 Jul 2009 12:31:34 +0100<br>
From: Tim-Philipp M?ller &lt;<a href="mailto:t.i.m@zen.co.uk">t.i.m@zen.co.uk</a>&gt;<br>
Subject: Re: [gst-devel] analogue of gst-launch with caps<br>
To: <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
Message-ID: &lt;1246620694.5472.3.camel@zingle&gt;<br>
Content-Type: text/plain; charset=&quot;UTF-8&quot;<br>
<br>
On Thu, 2009-07-02 at 17:52 +0530, Mehta, Neel wrote:<br>
<br>
&gt; Can anyone suggest a substitute of gst_parse_launch (string, NULL), so<br>
&gt; that I have the negotiated caps as the part of the output.<br>
&gt;<br>
&gt; i.e. I want an analogue of gst-launch-0.10 ?v.<br>
<br>
A quick look at gst-launch.c reveals that -v boils down to:<br>
<br>
  g_signal_connect (pipeline, &quot;deep-notify&quot;,<br>
      G_CALLBACK (gst_object_default_deep_notify), NULL);<br>
<br>
 Cheers<br>
  -Tim<br>
<br>
<br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 4<br>
Date: Fri, 03 Jul 2009 13:00:29 +0100<br>
From: Ognen Bezanov &lt;<a href="mailto:ognen.bezanov@wai.co.uk">ognen.bezanov@wai.co.uk</a>&gt;<br>
Subject: Re: [gst-devel] Need help with first gstreamer program.<br>
To: <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
Message-ID: &lt;1246622429.9434.17.camel@PC133&gt;<br>
Content-Type: text/plain<br>
<br>
No-one has any idea?<br>
<br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 5<br>
Date: Wed, 1 Jul 2009 16:20:44 +0800<br>
From: &quot;Zheng, Huan&quot; &lt;<a href="mailto:huan.zheng@intel.com">huan.zheng@intel.com</a>&gt;<br>
Subject: [gst-devel] A question regarding to dynamic pipeline change<br>
To: gstreamer-devel &lt;<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a>&gt;<br>
Message-ID:<br>
        &lt;<a href="mailto:BB1F052FCDB1EA468BD99786C8B1ED2C05870A1A07@PDSMSX501.ccr.corp.intel.com">BB1F052FCDB1EA468BD99786C8B1ED2C05870A1A07@PDSMSX501.ccr.corp.intel.com</a>&gt;<br>
<br>
Content-Type: text/plain; charset=&quot;us-ascii&quot;<br>
<br>
Hi, dear developers<br>
If I dynamically replace one element inside the pipeline, will the negotiation of the *whole pipeline* be performed again when the pipeline restarted next time?<br>
Thanks a lot for your answering!<br>
<br>
<br>
Best Regards, Zheng, Huan(ZBT)<br>
<br>
OTC/SSD/SSG<br>
<br>
Intel Asia-Pacific Research &amp; Developement Ltd<br>
<br>
Tel: 021-6116 6435<br>
<br>
Inet: 8821 6435<br>
<br>
Cub: 3W035<br>
<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
<br>
------------------------------<br>
<br>
Message: 6<br>
Date: Fri, 3 Jul 2009 18:40:21 +0200<br>
From: Juraj Kubelka &lt;<a href="mailto:juraj.kubelka@googlemail.com">juraj.kubelka@googlemail.com</a>&gt;<br>
Subject: Re: [gst-devel] Save a stream to different file every hour<br>
To: Discussion of the development of GStreamer<br>
        &lt;<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a>&gt;<br>
Message-ID:<br>
        &lt;<a href="mailto:f54511ec0907030940r4db3acf6k41015c82ee931f91@mail.gmail.com">f54511ec0907030940r4db3acf6k41015c82ee931f91@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
<br>
Hopefully I got it and my piece of code works :) So, if anyone is interested<br>
in saving a stream to a new file every hour, download here<br>
<a href="http://files.getdropbox.com/u/710942/audio-2009-07-03_18-32.tar.gz" target="_blank">http://files.getdropbox.com/u/710942/audio-2009-07-03_18-32.tar.gz</a><br>
<br>
Best regards,<br>
Jura<br>
<br>
On Fri, Jul 3, 2009 at 11:42 AM, Juraj Kubelka &lt;<a href="mailto:juraj.kubelka@googlemail.com">juraj.kubelka@googlemail.com</a><br>
&gt; wrote:<br>
<br>
&gt; Hi!<br>
&gt;<br>
&gt; As I have played with it, it seams it does not work properly all the time.<br>
&gt; Can you, please, check my source code in Python? There are TODOs which tag<br>
&gt; lines with possible wrong gstreamer handling (as I suppose). I will<br>
&gt; appreciate any suggestions.<br>
&gt;<br>
&gt; the file (pipelineholder.py): <a href="http://cesta.pastebin.com/m3b0c7ad" target="_blank">http://cesta.pastebin.com/m3b0c7ad</a><br>
&gt; other two files witch work together: <a href="http://cesta.pastebin.com/m46860962" target="_blank">http://cesta.pastebin.com/m46860962</a><br>
&gt; <a href="http://cesta.pastebin.com/m5afca033" target="_blank">http://cesta.pastebin.com/m5afca033</a><br>
&gt; full sourcecode (3 files, run ./pipelinemanager.py, pipelineholder.py is<br>
&gt; the main one): <a href="http://files.getdropbox.com/u/710942/audio.tar.gz" target="_blank">http://files.getdropbox.com/u/710942/audio.tar.gz</a><br>
&gt;<br>
&gt; Thank you in advance.<br>
&gt; Jura<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Jun 23, 2009 at 4:34 PM, Juraj Kubelka &lt;<br>
&gt; <a href="mailto:juraj.kubelka@googlemail.com">juraj.kubelka@googlemail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; On Thu, Jun 18, 2009 at 8:46 AM, Arnout Vandecappelle &lt;<a href="mailto:arnout@mind.be">arnout@mind.be</a>&gt;wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; On Wednesday 17 June 2009 10:29:43 Viraj Karandikar wrote:<br>
&gt;&gt;&gt; &gt; And after every hour you will have to: pause the pipeline, create new<br>
&gt;&gt;&gt; &gt; filesink, disconnect old filesink, connect new filesink and close old<br>
&gt;&gt;&gt; &gt; filesink.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  Actually, no.  Pausing the pipeline will not (immediately) stop the<br>
&gt;&gt;&gt; threads<br>
&gt;&gt;&gt; in the source and queues.  In addition, once it&#39;s paused any new data<br>
&gt;&gt;&gt; coming<br>
&gt;&gt;&gt; in on the live source will be dropped until it plays again, which<br>
&gt;&gt;&gt; probably is<br>
&gt;&gt;&gt; not the intention.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  Instead, you have to use blocking.  Below there&#39;s a piece of code that I<br>
&gt;&gt;&gt; use.<br>
&gt;&gt;&gt; See also docs/design/part-block.txt.  There should be high-level API for<br>
&gt;&gt;&gt; that, but nobody has bothered up to now to write it.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  You need to replace the decoder and muxer as well, so the proper headers<br>
&gt;&gt;&gt; are<br>
&gt;&gt;&gt; created in the new file.  To simplify all that I put it in a bin (which<br>
&gt;&gt;&gt; can<br>
&gt;&gt;&gt; be unreffed as a whole).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt; You can do above things in another independent thread which will<br>
&gt;&gt;&gt; &gt; just wait till 1 hour is complete.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  Or you can use g_timeout_add_seconds (3600, ...) in your main loop.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  Regards,<br>
&gt;&gt;&gt;  Arnout<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; static gboolean destroy_bin_cb (gpointer user_data)<br>
&gt;&gt;&gt; {<br>
&gt;&gt;&gt;    GstElement *oldbin = user_data;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;    log_message(&quot;Destroying old bin.\n&quot;);<br>
&gt;&gt;&gt;    if (pipeline)<br>
&gt;&gt;&gt;    {<br>
&gt;&gt;&gt;        gst_element_set_state (oldbin, GST_STATE_NULL);<br>
&gt;&gt;&gt;        gst_bin_remove (GST_BIN(pipeline), oldbin);<br>
&gt;&gt;&gt;    }<br>
&gt;&gt;&gt;    return FALSE;<br>
&gt;&gt;&gt; }<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; static void replace_filesink_blocked_cb (GstPad *pad, gboolean blocked,<br>
&gt;&gt;&gt; gpointer user_data)<br>
&gt;&gt;&gt; {<br>
&gt;&gt;&gt;    if (blocked)<br>
&gt;&gt;&gt;    {<br>
&gt;&gt;&gt;        GstElement *oldbin;<br>
&gt;&gt;&gt;        GstPad *sinkpad;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;        log_message(&quot;Blocked filesink queue.\n&quot;);<br>
&gt;&gt;&gt;        g_static_rec_mutex_lock(&amp;mutex);<br>
&gt;&gt;&gt;        log_message(&quot;Locked.\n&quot;);<br>
&gt;&gt;&gt;        oldbin = filesinkbin;<br>
&gt;&gt;&gt;        sinkpad = gst_element_get_static_pad(oldbin, &quot;sink&quot;);<br>
&gt;&gt;&gt;        if (!sinkpad)<br>
&gt;&gt;&gt;        {<br>
&gt;&gt;&gt;            log_message(&quot;replace_filesink_blocked_cb: oldbin doesn&#39;t have<br>
&gt;&gt;&gt; sink<br>
&gt;&gt;&gt; pad.\n&quot;);<br>
&gt;&gt;&gt;            goto fail;<br>
&gt;&gt;&gt;        }<br>
&gt;&gt;&gt;        gst_pad_unlink(queuesrcpad, sinkpad);<br>
&gt;&gt;&gt;        log_message(&quot;Unlinked.\n&quot;);<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;        /* Finalize the old tail. */<br>
&gt;&gt;&gt;        /* Sending EOS should be done from here (we&#39;re in the queue<br>
&gt;&gt;&gt; thread).<br>
&gt;&gt;&gt; */<br>
&gt;&gt;&gt;        gst_pad_send_event(sinkpad, gst_event_new_eos());<br>
&gt;&gt;&gt;        log_message(&quot;Sent event.\n&quot;);<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;        log_message(&quot;Checked sinks.\n&quot;);<br>
&gt;&gt;&gt;        /* Setting state should be done from the main thread. Do it before<br>
&gt;&gt;&gt; the<br>
&gt;&gt;&gt;           pipeline has been set to PLAYING - implicitly, because that is<br>
&gt;&gt;&gt; also<br>
&gt;&gt;&gt;           done in an idle callback, but one that is started after this<br>
&gt;&gt;&gt; one.<br>
&gt;&gt;&gt;        */<br>
&gt;&gt;&gt;        g_idle_add(destroy_bin_cb, oldbin);<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;        create_filesink_tail();<br>
&gt;&gt;&gt;        log_message(&quot;Created filesink.\n&quot;);<br>
&gt;&gt;&gt;        g_static_rec_mutex_unlock(&amp;mutex);<br>
&gt;&gt;&gt;        log_message(&quot;Unlocked mutex.\n&quot;);<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;        /* And unblock again. */<br>
&gt;&gt;&gt;        gst_pad_set_blocked_async(queuesrcpad, FALSE,<br>
&gt;&gt;&gt; replace_filesink_blocked_cb, NULL);<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;        log_message(&quot;Done replacing filesink.\n&quot;);<br>
&gt;&gt;&gt;    }<br>
&gt;&gt;&gt;    else<br>
&gt;&gt;&gt;    {<br>
&gt;&gt;&gt;        log_message(&quot;Unblocked filesink queue.\n&quot;);<br>
&gt;&gt;&gt;    }<br>
&gt;&gt;&gt;    return;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; fail:<br>
&gt;&gt;&gt;    pipeline_terminate_async();<br>
&gt;&gt;&gt;    g_static_rec_mutex_unlock(&amp;mutex);<br>
&gt;&gt;&gt; }<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; static void replace_filesink()<br>
&gt;&gt;&gt; {<br>
&gt;&gt;&gt;    if (queuesrcpad == NULL)<br>
&gt;&gt;&gt;        log_message(&quot;replace_filesink while no queuesrcpad yet, waiting<br>
&gt;&gt;&gt; for it<br>
&gt;&gt;&gt; to appear.\n&quot;);<br>
&gt;&gt;&gt;    else<br>
&gt;&gt;&gt;        gst_pad_set_blocked_async(queuesrcpad, TRUE,<br>
&gt;&gt;&gt; replace_filesink_blocked_cb, NULL);<br>
&gt;&gt;&gt; }<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; thank you a lot for your help. I did it in Python and it seams it works.<br>
&gt;&gt; Source code is on pastebin: <a href="http://pastebin.com/f3a80ed09" target="_blank">http://pastebin.com/f3a80ed09</a><br>
&gt;&gt; (pipelineholder.py &lt;<a href="http://pastebin.com/f3a80ed09%28pipelineholder.py" target="_blank">http://pastebin.com/f3a80ed09%28pipelineholder.py</a>&gt;)<br>
&gt;&gt; and <a href="http://pastebin.com/f4ee27d6d" target="_blank">http://pastebin.com/f4ee27d6d</a> (pipelinemanager). Any comments are<br>
&gt;&gt; appreciated.<br>
&gt;&gt;<br>
&gt;&gt; Best regards,<br>
&gt;&gt; Jura<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
<br>
------------------------------<br>
<br>
------------------------------------------------------------------------------<br>
<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
<br>
<br>
End of gstreamer-devel Digest, Vol 38, Issue 7<br>
**********************************************<br>
</blockquote></div><br>hi<br><br>I recorded the audio and video with out any encoding and decoding.Video is coming from the camera as mpeg4 and audio in the format of aac.My pipeline looks like this,<br><br> gst-launch -e   rtspsrc location=&quot;rtsp://<a href="http://user:carinov123@10.0.0.104/live.sdp">user:carinov123@10.0.0.104/live.sdp</a>&quot; name=rtsp  !  rtpmp4vdepay  ! mpeg4videoparse ! qtmux name=qt  !  filesink location=a.mp4 rtsp. ! rtpmp4gdepay ! aacparse !  qt.<br>
<br><br>But when i tried to play it with mplayer,i got the video only, the out put of &quot;mplayer a.mp4 &quot; is,<br><br><br><br>libavformat file format detected.<br>[lavf] Audio stream found, -aid 0<br>[lavf] Video stream found, -vid 1<br>
VIDEO:  [mp4v]  320x240  24bpp  30.333 fps    0.0 kbps ( 0.0 kbyte/s)<br>==========================================================================<br>Opening video decoder: [ffmpeg] FFmpeg&#39;s libavcodec codec family<br>
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)<br>==========================================================================<br>==========================================================================<br>Opening audio decoder: [faad] AAC (MPEG2/4 Advanced Audio Coding)<br>
FAAD: compressed input bitrate missing, assuming 128kbit/s!<br>AUDIO: 32000 Hz, 2 ch, s16le, 128.0 kbit/12.50% (ratio: 16000-&gt;128000)<br>Selected audio codec: [faad] afm: faad (FAAD AAC (MPEG-2/MPEG-4 Audio))<br>==========================================================================<br>
[AO OSS] audio_setup: Can&#39;t open audio device /dev/dsp: Device or resource busy<br>AO: [alsa] 32000Hz 2ch s16le (2 bytes per sample)<br>Starting playback...<br>FAAD: Failed to decode frame: Maximum number of scalefactor bands exceeded <br>
<br><br><br><br clear="all"><br>-- <br>Sreerenj B<br><a href="http://sreerenj.livejournal.com">http://sreerenj.livejournal.com</a><br><a href="mailto:bsreerenj@gmail.com">bsreerenj@gmail.com</a><br>mob: +91 9995377714<br>
<br>