[gst-devel] multichannel vorbis

Tristan Matthews tristan at sat.qc.ca
Mon Sep 21 17:22:43 CEST 2009


Interesting, I had noticed this discrepancy between ubuntu 9.04 and 8.04
(i'm on 8.04 on my work machine) before. For some reason, "localhost" (the
default) doesn't work on 9.04, but 127.0.0.1 does. Thanks for confirming, I
just filed this under:

https://bugzilla.gnome.org/show_bug.cgi?id=595840

-T


2009/9/21 Dirk Griffioen <dirk.griffioen at barcelonamedia.org>

>  Tristan,
>
> If I add 'host' to the udpsink it works ...
>
> gst-launch -v jackaudiosrc connect=none ! audio/x-raw-float, channels=10
> ! vorbisenc ! rtpvorbispay ! udpsink port=10000 host=127.0.0.1
>
>
> Then both jackaudiosink and jackaudiosrc show up.
>
> Thanks for the help!
>
> Best, Dirk
>
>  Are you copying the caps from udpsink's sink pad directly from the
> sender pipeline? Vorbis caps (i.e. the codebook) will change for
> different configurations.
>
> -T
>
> Dirk Griffioen wrote:
>
>
>  Hi Tristan,
>
> Thanks for the replies. They are really helpfull! (And I will have a
> further look at 'miville' - it looks really nice).
>
>
>  This example might help:
> sender
>
> gst-launch -v jackaudiosrc connect=none ! audio/x-raw-float, channels=10
> ! vorbisenc ! rtpvorbispay ! udpsink port=10000
>
> receiver
>
> gst-launch -v udpsrc caps="$CAPS" port=10000 ! rtpvorbisdepay !
> vorbisdec ! queue max-size-buffers=3 ! jackaudiosink connect=none
>
> where $CAPS are the caps of the udpsink from the first pipeline.
>
>
>
>
>  This does not work for me, jackaudiosink does not pop up in qjackctl
> ... I tried some other configurations, but nothing.
>
> However, somehow my first pipeline with rtp decided to work, with 24
> channels and from gst-launch. Still, I get:
>
> WARNING: from element /GstPipeline:pipeline0/GstVorbisDec:vorbisdec0:
> Could not decode stream.
> Additional debug info:
> vorbisdec.c(670): vorbis_handle_identification_packet ():
> /GstPipeline:pipeline0/GstVorbisDec:vorbisdec0:
> Using NONE channel layout for more than 8 channels
>
> Maybe this can interpreted as 'cannot read layout from stream,
> defaulting to NONE' - as the audio streams fine.
>
>
>  -Tristan
>
> Tristan Matthews wrote:
>
>
>
>  As far as I know this should be fine in python, though I haven't tried
> it. Our app (https://svn.sat.qc.ca/trac/miville) does this for up to 8
> channels of vorbis or raw audio (with rtpL16pay/depay) and gstrtpbin. We
> haven't tried (yet) to implement support for more than 8 channels. Here
> we don't set the channel positions and it works, but I do get that same
> "warning could not decode stream" even though the sound if fine.
> The element to set the number of channels is a caps filter element, so
> the equivalent in C would be:
>
> GstElement *capsfilter;
> gst_element_factory_make(capsfilter, NULL);
> g_object_set(capsfilter, "caps", "audio/x-raw-float, channels=8", NULL);
>
> and then link it in between jackaudiosrc and vorbisenc.
>
> -Tristan
>
> Dirk Griffioen wrote:
>
>
>
>
>  Hi Tristan,
>
>
>
>
>  You probably have to set the "channel-positions" property on the
> interleave element, which you can't do with gst-launch as I recall (i.e.
> you need to write c or python app for it) as it is an array. However for
> more than 8 channels the positions might have to all be set to
> GST_AUDIO_CHANNEL_POSITION_NONE
>
>
>
>
>
>
>  Yes I read about that
> (http://tristanswork.blogspot.com/2008/08/multichannel-audio-with-gstreamer.html),
> and can I do this in python as well? (I dont mind C, but python will
> be quicker).
>
>
>
>
>
>  Are you just trying to do something like this?
>
> gst-launch -v jackaudiosrc connect=none ! audio/x-raw-float, channels=24
> ! vorbisenc ! vorbisdec ! jackaudiosink connect=none
>
>
>
>
>
>
>  Well, almost :)
>
> I am trying to put rtp in between the vorbisencoder and decoder so I
> can stream n channels from A to B over a single rtp session
>
> I get the following on the receiving end (after copying the new config
> string from A to B):
>
> GstPipeline:pipeline0/GstVorbisDec:vorbisdec0.GstPad:sink: caps =
> audio/x-vorbis
> WARNING: from element /GstPipeline:pipeline0/GstVorbisDec:vorbisdec0:
> Could not decode stream.
> Additional debug info:
> vorbisdec.c(670): vorbis_handle_identification_packet ():
> /GstPipeline:pipeline0/GstVorbisDec:vorbisdec0:
> Using NONE channel layout for more than 8 channels
>
> Which is weird because it knows this:
>
> /GstPipeline:pipeline0/GstVorbisDec:vorbisdec0.GstPad:src: caps =
> audio/x-raw-float, rate=(int)48000, channels=(int)24,
> endianness=(int)1234, width=(int)32,
> channel-positions=(GstAudioChannelPosition)<
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE,
> GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE >
>
> Do you have any tips? (Maybe the NONE layout is not in the vorbis
> config string ...)
>
> Regards, Dirk
>
> PS - how do you call the 'audio/x-raw-float, channels=24' element?
>
>
>
>
>
>  (note that the bottleneck here will probably be your soundcard).
>
> -Tristan
>
> Dirk Griffioen wrote:
>
>
>
>
>
>  Thanks for the answer!
>
>
>
>
>
>
>  I think you need to interleave several mono channels from audiotestsrc
> into a stereo stream and then shove them into the vorbis encoder. You
> need an audio mixer, or something like that.
>
>
>
>
>
>
>
>  I would like to encode separate channels.
>
> For example, this runs
>
> gst-launch-0.10 -v interleave name=i ! queue ! \
> vorbisenc ! vorbisdec ! \
> jackaudiosink connect=none \
> jackaudiosrc ! audioconvert ! queue ! i. \
> jackaudiosrc ! audioconvert ! queue ! i.
>
> but this does not:
>
> gst-launch-0.10 -v interleave name=i ! queue ! \
> vorbisenc ! vorbisdec ! \
> jackaudiosink connect=none \
> jackaudiosrc ! audioconvert ! queue ! i. \
> jackaudiosrc ! audioconvert ! queue ! i. \
> jackaudiosrc ! audioconvert ! queue ! i. \
> jackaudiosrc ! audioconvert ! queue ! i.
>
> Do you know why? The vorbis spec allows for 255 channels and I simply
> would like to run n channels through the vorbis encoder ...
>
> I really could use some help.
>
> Thanks in advance, Dirk
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;http://p.sf.net/sfu/devconf
> _______________________________________________
> gstreamer-devel mailing listgstreamer-devel at lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
>
>
>
>                             ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;http://p.sf.net/sfu/devconf
> ------------------------------------------------------------------------
>
> _______________________________________________
> gstreamer-devel mailing listgstreamer-devel at lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
>
>                            ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;http://p.sf.net/sfu/devconf
> ------------------------------------------------------------------------
>
> _______________________________________________
> gstreamer-devel mailing listgstreamer-devel at lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>      --
> Tristan Matthews
> Société des arts technologiques [SAT]
> email: tristan at sat.qc.ca
> web: http://www.music.mcgill.ca/~tmatthews <http://www.music.mcgill.ca/%7Etmatthews>
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;http://p.sf.net/sfu/devconf
> _______________________________________________
> gstreamer-devel mailing listgstreamer-devel at lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
> http://p.sf.net/sfu/devconf
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>


-- 
Tristan Matthews
email: tristan at sat.qc.ca
web: http://tristanswork.blogspot.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090921/d5ed71ba/attachment.htm>


More information about the gstreamer-devel mailing list