[gst-devel] multichannel vorbis

Dirk Griffioen dirk.griffioen at barcelonamedia.org
Fri Sep 18 17:59:32 CEST 2009


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 list
>> gstreamer-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>>   
>>     
>
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090918/eb36124d/attachment.htm>


More information about the gstreamer-devel mailing list