<div dir="ltr">Hi,<div><br></div><div>These pipelines work fine with unicast IP addresses :</div><div><br></div><div>Server : gst-launch-1.0 -v audiotestsrc ! audioconvert ! audioresample ! audio/x-raw,format=S16LE,channels=1,rate=44100 ! udpsink host=192.168.1.140 port=5002</div>

<div><br></div><div>Client :   gst-launch-1.0 -v udpsrc port=5002 ! audio/x-raw,format=S16LE,channels=1,rate=44100 ! volume volume=2 ! autoaudiosink sync=false</div><div><br></div><div>I don't know which is the protocol used over udp but it works.<br>

</div><div><br></div><div>Now I would like to know how the server can send the audio stream to a multicast group and how</div><div>the clients can join  this group.</div><div><br></div><div>What do you mean with ip4 ?, IP version 4 ?</div>

<div><br></div><div>Thanks and cheers.<br></div><div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-02-12 19:33 GMT+01:00  <span dir="ltr"><<a href="mailto:gstreamer-devel-request@lists.freedesktop.org" target="_blank">gstreamer-devel-request@lists.freedesktop.org</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Send gstreamer-devel mailing list submissions to<br>
        <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:gstreamer-devel-request@lists.freedesktop.org">gstreamer-devel-request@lists.freedesktop.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:gstreamer-devel-owner@lists.freedesktop.org">gstreamer-devel-owner@lists.freedesktop.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of gstreamer-devel digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1. Re: multicast udpsink fails (Mariusz Buras)<br>
   2. How to detect the elements in use (Yogesh Tyagi)<br>
   3. Re: Suggestions for audio source wanted (Stefan Sauer)<br>
   4. Re: streaming delay (Stefan Sauer)<br>
   5. Re: How to detect the elements in use (Stefan Sauer)<br>
   6. Re: How to detect the elements in use (Tim M?ller)<br>
   7. Re: streaming delay (Tim M?ller)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Wed, 12 Feb 2014 18:02:40 +0000<br>
From: Mariusz Buras <<a href="mailto:mariusz.buras@gmail.com">mariusz.buras@gmail.com</a>><br>
To: Discussion of the development of and with GStreamer<br>
        <<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>><br>
Subject: Re: multicast udpsink fails<br>
Message-ID:<br>
        <CACnfBtrdm8E=<a href="mailto:EGFDEvNXd_hrC5hhRo7oJ2LLc196ae9PnOrZWw@mail.gmail.com">EGFDEvNXd_hrC5hhRo7oJ2LLc196ae9PnOrZWw@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="iso-8859-1"<br>
<br>
You need to force at least ip4 on udpsink. Also you probably want to<br>
payload your data before udpsink.<br>
<br>
--<br>
Cheers,<br>
Mariusz Buras.<br>
---<br>
<a href="http://sqward.net" target="_blank">http://sqward.net</a><br>
<a href="http://www.linkedin.com/in/mariuszburas" target="_blank">http://www.linkedin.com/in/mariuszburas</a><br>
<br>
<br>
On 12 February 2014 17:58, JPM <<a href="mailto:jpmelian@gmail.com">jpmelian@gmail.com</a>> wrote:<br>
<br>
> Hi,<br>
><br>
> I am trying to send one audio stream to several clients using multicast<br>
> with this pipeline :<br>
><br>
> gst-launch-1.0 -v audiotestsrc ! audioconvert ! audioresample !<br>
> audio/x-raw,format=S16LE,channels=1,rate=44100 ! udpsink host=224.1.1.1<br>
> auto-multicast=true port=3000<br>
><br>
> But appear the following error :<br>
><br>
> Setting pipeline to PAUSED ...<br>
> ERROR: Pipeline doesn't want to pause.<br>
> ERROR: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Could not<br>
> get/set settings from/on resource.<br>
> Additional debug info:<br>
> gstmultiudpsink.c(844): gst_multiudpsink_configure_client ():<br>
> /GstPipeline:pipeline0/GstUDPSink:udpsink0:<br>
> Could not join multicast group: Error joining multicast group: No such<br>
> device<br>
> Setting pipeline to NULL ...<br>
> Freeing pipeline ...<br>
><br>
> Any help ?<br>
><br>
> Thanks and regards.<br>
><br>
><br>
><br>
> _______________________________________________<br>
> gstreamer-devel mailing list<br>
> <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
><br>
><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140212/30c2dc4f/attachment-0001.html" target="_blank">http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140212/30c2dc4f/attachment-0001.html</a>><br>


<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Wed, 12 Feb 2014 23:34:50 +0530<br>
From: Yogesh Tyagi <<a href="mailto:yogesh.bit2006@gmail.com">yogesh.bit2006@gmail.com</a>><br>
To: Discussion of the development of and with GStreamer<br>
        <<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>><br>
Subject: How to detect the elements in use<br>
Message-ID:<br>
        <<a href="mailto:CADL-HDhtzsaM5u0rXaUMKurNbQpQabe_ZjdoEuLydOKOtv1ctg@mail.gmail.com">CADL-HDhtzsaM5u0rXaUMKurNbQpQabe_ZjdoEuLydOKOtv1ctg@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="iso-8859-1"<br>
<br>
Hi,<br>
<br>
How can I detect if a particular element is being used in the pipeline?<br>
<br>
Thanks,<br>
Yogesh<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140212/8a65c0db/attachment-0001.html" target="_blank">http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140212/8a65c0db/attachment-0001.html</a>><br>


<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Wed, 12 Feb 2014 19:05:45 +0100<br>
From: Stefan Sauer <<a href="mailto:ensonic@hora-obscura.de">ensonic@hora-obscura.de</a>><br>
To: Discussion of the development of and with GStreamer<br>
        <<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>><br>
Subject: Re: Suggestions for audio source wanted<br>
Message-ID: <<a href="mailto:52FBB7F9.3030000@hora-obscura.de">52FBB7F9.3030000@hora-obscura.de</a>><br>
Content-Type: text/plain; charset=ISO-8859-1<br>
<br>
On 02/11/2014 03:34 PM, Carlos Rafael Giani wrote:<br>
> Hello,<br>
><br>
> I have a library which produces audio data. I wish to wrap it in a<br>
> source element.<br>
> There are some problems though:<br>
><br>
> * The source is not live like alsasrc for example - it can be made to<br>
> wait until more samples can be consumed.<br>
> * The library for this source delivers samples by means of a callback.<br>
> This callback must not block for long. If at time of calling no<br>
> samples can be consumed, the callback can return 0, which will cause<br>
> the pause mentioned above. The library simply invokes the callback<br>
> again, about 100ms later. This is akin to the polling strategy.<br>
> * The callback receives not only samples, but also format information<br>
> (sample rate, sample format, number of channels, etc.). Which means<br>
> these could change at any point in time.<br>
><br>
> I wonder what base class to use here.<br>
<br>
Is the library calculating the audio? I am using GstBaseSrc for my audio<br>
synths in buzztrax. I have a  GstAudioSynth baseclass there:<br>
<a href="https://github.com/Buzztrax/gst-buzztrax/blob/master/libgstbuzztrax/audiosynth.c" target="_blank">https://github.com/Buzztrax/gst-buzztrax/blob/master/libgstbuzztrax/audiosynth.c</a><br>
<br>
Stefan<br>
><br>
> GstAudioSrc does not work well, since it expects the subclass to be<br>
> able to work in a pull-based manner (GstAudioSrc call the read()<br>
> vfunc, and the subclass has to deliver the samples then). Here, it is<br>
> the other way round. I could create some kind of FIFO between the<br>
> callback and my read() function, but that does not solve the format<br>
> change problem - I cannot call set_caps() inside read().<br>
><br>
> GstAudioBaseSrc is perhaps better suited, since it allows for a custom<br>
> ringbuffer. But I cannot simply use commit(), since it may block.<br>
> prepare_read() gives me information about how many samples I can write<br>
> and where to write them to, but it must be this exact number of<br>
> samples. What if for example prepare_read() informs me that it expects<br>
> 5000 samples, the library's callback provides me with 4000 samples,<br>
> which I copy over, then in the next callback it informs me about a new<br>
> format? Just call advance() (even though not all samples have been<br>
> written; perhaps fill the rest with nullsamples) and then call<br>
> set_caps()?<br>
><br>
> On top of that, GstAudioBaseSrc is derived from GstPushSrc, which,<br>
> according to the documentation, is suited for sources which cannot<br>
> seek or seek only very slowly. But the library can seek easily and<br>
> quickly. Any recommendations? Simply overriding do_seek should suffice?<br>
><br>
> cheers<br>
> _______________________________________________<br>
> gstreamer-devel mailing list<br>
> <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 4<br>
Date: Wed, 12 Feb 2014 19:08:12 +0100<br>
From: Stefan Sauer <<a href="mailto:ensonic@hora-obscura.de">ensonic@hora-obscura.de</a>><br>
To: <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
Subject: Re: streaming delay<br>
Message-ID: <<a href="mailto:52FBB88C.50902@hora-obscura.de">52FBB88C.50902@hora-obscura.de</a>><br>
Content-Type: text/plain; charset=ISO-8859-1<br>
<br>
On 02/12/2014 04:33 PM, Lee Matthews wrote:<br>
> Hi<br>
><br>
> I wish to stream audio over the network using the flac codec. I use the following command :<br>
Is flac a must? If both sides are part of your app, consider opus, which<br>
can support low latency.<br>
<br>
Stefan<br>
<br>
><br>
> gst-launch -v autoaudiosrc !  flacenc ! tcpserversink port=9001<br>
><br>
> to receive I use the command :<br>
><br>
> gst-launch -v tcpclientsrc port=9001 ! flacdec ! audioconvert ! autoaudiosink<br>
><br>
> I get about 1 second delay between sending and receiving the audio.<br>
><br>
> If instead I transmit using :<br>
><br>
> gst-launch -v autoaudiosrc ! audio/x-raw-int,channels=1,depth=16,width=16,rate=44000 !  flacenc ! tcpserversink port=9001<br>
><br>
> the delay seems to go up to about 2 seconds.<br>
><br>
><br>
> I wish to sample my audio at 16KHz instead of 44KHz, so if I transmit using :<br>
><br>
> gst-launch -v autoaudiosrc ! audio/x-raw-int,channels=1,depth=16,width=16,rate=16000 !  flacenc ! tcpserversink port=9001<br>
><br>
> I get an approx 4 second delay. Why is this ?<br>
><br>
> I'm guessing it's because flacenc needs a certain number of samples before it can compress a block, it therefore has to wait longer with a lower sample rate ?<br>
><br>
> Is there any way that I can reduce the sample rate whilst keeping a low delay ?<br>
><br>
> Thanks<br>
> Lee<br>
> _______________________________________________<br>
> gstreamer-devel mailing list<br>
> <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 5<br>
Date: Wed, 12 Feb 2014 19:10:51 +0100<br>
From: Stefan Sauer <<a href="mailto:ensonic@hora-obscura.de">ensonic@hora-obscura.de</a>><br>
To: <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
Subject: Re: How to detect the elements in use<br>
Message-ID: <<a href="mailto:52FBB92B.5030606@hora-obscura.de">52FBB92B.5030606@hora-obscura.de</a>><br>
Content-Type: text/plain; charset="iso-8859-1"<br>
<br>
On 02/12/2014 07:04 PM, Yogesh Tyagi wrote:<br>
> Hi,<br>
><br>
> How can I detect if a particular element is being used in the pipeline?<br>
<br>
You can programmatically iterate over the whole pipeline and check each<br>
element. If you just need this to debug something you can use<br>
GST_DEBUG_BIN_TO_DOT_FILE.<br>
<br>
Stefan<br>
<br>
><br>
> Thanks,<br>
> Yogesh<br>
><br>
><br>
> _______________________________________________<br>
> gstreamer-devel mailing list<br>
> <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140212/5b26ec83/attachment-0001.html" target="_blank">http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140212/5b26ec83/attachment-0001.html</a>><br>


<br>
------------------------------<br>
<br>
Message: 6<br>
Date: Wed, 12 Feb 2014 18:29:11 +0000<br>
From: Tim M?ller <<a href="mailto:tim@centricular.com">tim@centricular.com</a>><br>
To: <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
Subject: Re: How to detect the elements in use<br>
Message-ID: <1392229751.1997.58.camel@xps><br>
Content-Type: text/plain; charset="UTF-8"<br>
<br>
On Wed, 2014-02-12 at 19:10 +0100, Stefan Sauer wrote:<br>
<br>
Hi,<br>
<br>
> > How can I detect if a particular element is being used in the<br>
> > pipeline?<br>
> ><br>
><br>
> You can programmatically iterate over the whole pipeline and check<br>
> each element. If you just need this to debug something you can use<br>
> GST_DEBUG_BIN_TO_DOT_FILE.<br>
<br>
Or - if you don't need to know right immediately, just check what<br>
elements you get messages posted from on the bus, e.g. state change<br>
messages. You can check the 'source' of the message, perhaps the<br>
G_OBJECT_TYPE_NAME or you can get the element factory from it via the<br>
element API and then check that name.<br>
<br>
Cheers<br>
 -Tim<br>
<br>
--<br>
Tim M?ller, Centricular Ltd - <a href="http://www.centricular.com" target="_blank">http://www.centricular.com</a><br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 7<br>
Date: Wed, 12 Feb 2014 18:33:20 +0000<br>
From: Tim M?ller <<a href="mailto:tim@centricular.com">tim@centricular.com</a>><br>
To: <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
Subject: Re: streaming delay<br>
Message-ID: <1392230000.1997.62.camel@xps><br>
Content-Type: text/plain; charset="UTF-8"<br>
<br>
On Wed, 2014-02-12 at 16:33 +0100, Lee Matthews wrote:<br>
<br>
> I'm guessing it's because flacenc needs a certain number of samples<br>
> before it can compress a block, it therefore has to wait longer with a<br>
> lower sample rate ?<br>
><br>
> Is there any way that I can reduce the sample rate whilst keeping a low delay ?<br>
<br>
You can play with flacenc's "blocksize" property, see gst-inspect-1.0<br>
flacenc.<br>
<br>
Have you measured the latency without any encoder at all? That is just<br>
plain audio/x-raw over TCP ? You can parse it on the other end with<br>
audioparse, see gst-inspect-1.0 audioparse.<br>
<br>
For low-latency streaming maybe also consider UDP/RTP (there's no flac<br>
payloader but there's a generic gst payloader which should work in that<br>
case, and if it doesn't have to be lossless, maybe consider Opus, as<br>
pointed out already by someone).<br>
<br>
Cheers<br>
 -Tim<br>
<br>
--<br>
Tim M?ller, Centricular Ltd - <a href="http://www.centricular.com" target="_blank">http://www.centricular.com</a><br>
<br>
<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
End of gstreamer-devel Digest, Vol 37, Issue 39<br>
***********************************************<br>
</blockquote></div><br></div></div></div>