problem to mix several remote sources with adder or mixer

Jack jack at rybn.org
Mon Apr 29 07:45:13 UTC 2019


Using Python to reproduce the same pipeline and puting a
"time.sleep(0.1)" in the loop to get each stream do the job.

But yes it seems there is a problem with this simple pipeline.

Here the part of the code working with Python (see my precedent mail to
see the pipeline) :

for i, mountpoint_info in enumerate(l_mountpoint):
    time.sleep(0.1)
    mountpoint, vol = mountpoint_info
    uri = f'http://stream.p-node.org{mountpoint}'
    bin_source = AudioFileSource(filename=uri, name=f'source{i}',
volume=vol)
    self.pipeline.add(bin_source)
    ch_pad = self.mix.get_request_pad('sink_%u')
    bin_source.get_static_pad("src").link(ch_pad)
    bin_source.sync_state_with_parent()


++

Jack



Le 29/04/2019 à 03:26, Nicolas Dufresne a écrit :
> 
> 
> Le dim. 28 avr. 2019 09 h 25, Jack <jack at rybn.org
> <mailto:jack at rybn.org>> a écrit :
> 
>     OK, I have the same problem using gst-launch-1.0 with this basic
>     pipeline (mixing 3 audio sources from a remote server) :
> 
>     $ gst-launch-1.0 audiomixer name=mix ! audioconvert ! autoaudiosink
>     uridecodebin uri=http://.../xxx.mp3 ! audioconvert ! queue ! mix.
>     uridecodebin uri=http://.../xxx.mp3 ! audioconvert ! queue ! mix.
>     uridecodebin uri=http://.../xxx.mp3 ! audioconvert ! queue ! mix.
> 
>     Setting pipeline to PAUSED ...
>     Pipeline is PREROLLING ...
>     Got context from element 'source': gst.soup.session=context,
>     session=(SoupSession)NULL, force=(boolean)false;
>     buffering... 100%
> 
>     Then the pipeline hangs...
>     Any clue to solve this issue ?
> 
> 
> I tested it, with the same mp3 twice and indeed it does not preroll. The
> aggregator do produce a buffer, which gets to the sync, the sink do
> commit it's state, but nothing happens, it then block, waiting for
> preroll. May it's time to track this as an issue, I'm not certain to
> what element is broken though.
> 
>     Thanx.
>     ++
> 
>     Jack
> 
> 
> 
> 
>     Le 25/04/2019 à 22:53, Jack a écrit :
>     > My pipeline is made with 3 bins :
>     >
>     > uridecodebin ! audioconvert ! volume ! audiopanorama ! queue
>     >
>     > Then each bin request sink pad from audiomixer and create the link
>     with
>     > its ghost pad.
>     >
>     > The pipeline after uadiomixer is :
>     >
>     > audiomixer ! audioconvert ! autoaudiosink
>     >
>     > So my final pipeline looks like :
>     >
>     > bin1
>     >      \
>     > bin2 - audiomixer ! audioconvert ! autoaudiosink
>     >      /
>     > bin3
>     >
>     > After each element has been added to the pipeline and link in the
>     right
>     > order, I change the state of this pipeline to PLAYING.
>     > But, it seems that the third bin3 can't pass in playing state (or
>     > something else ?).
>     > ++
>     >
>     > Jack
>     >
>     >
>     >
>     >
>     > Le 25/04/2019 à 22:09, Jack a écrit :
>     >> Hello,
>     >>
>     >> Still trying to debug...
>     >> I succeeded to mix the 3 remote audio stream today ... one time !
>     >> Then, restarting the exactly same python script failed with other
>     attemps.
>     >> Weird, If someone knows what is going wrong ?
>     >> ++
>     >>
>     >> Jack
>     >>
>     >>
>     >>
>     >> Le 23/04/2019 à 18:00, Jack a écrit :
>     >>> Hello,
>     >>>
>     >>> I am trying to mix several remote sources using uridecodebin
>     (with uri
>     >>> as http://) with either adder or audiomixer but it is not
>     working if i
>     >>> use more than 2 sources.
>     >>> It is weird because if i try to use 3 audiofiles sources (with
>     uri as
>     >>> file:///), i can mix these 3 sources without problem.
>     >>> I am sure that i missed something here, but what ?
>     >>> Thanks for your help.
>     >>>
>     >>> My configuration :
>     >>> Ubuntu 18.04
>     >>> GStreamer 1.14.1
>     >>>
>     >>> ++
>     >>>
>     >>> Jack
>     >>>
>     >>> _______________________________________________
>     >>> gstreamer-devel mailing list
>     >>> gstreamer-devel at lists.freedesktop.org
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     >>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>     >>>
>     >>
>     >> _______________________________________________
>     >> gstreamer-devel mailing list
>     >> gstreamer-devel at lists.freedesktop.org
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>     >>
>     >
>     > _______________________________________________
>     > gstreamer-devel mailing list
>     > gstreamer-devel at lists.freedesktop.org
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>     >
> 
>     _______________________________________________
>     gstreamer-devel mailing list
>     gstreamer-devel at lists.freedesktop.org
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 



More information about the gstreamer-devel mailing list