streaming with ecasound

View: New views
6 Messages — Rating Filter:   Alert me  

streaming with ecasound

by Simon Eigeldinger :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all,

I am new to ecasound and maybe this question is quite offten asked:

When i use ecasound to record something i can do it this way and it
works:
ecasound -i alsa -o bla.wav

But when i want to pipe it to lame and then into a streaming program
like that i get white noise:
ecasound -i alsa -o stdout | lame -b 64 - - | ezstream -c config.xml

Maybe someone knows what is the issue?

Thanks for helping.

Greetings,
Simon

------------------------------------------------------------------------------
Come build with us! The BlackBerry® 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-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: streaming with ecasound

by Sergei Steshenko-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



--- On Thu, 10/1/09, Simon Eigeldinger <simon.eigeldinger@...> wrote:

> From: Simon Eigeldinger <simon.eigeldinger@...>
> Subject: [ecasound] streaming with ecasound
> To: ecasound-list@...
> Date: Thursday, October 1, 2009, 1:36 PM
> Hi all,
>
> I am new to ecasound and maybe this question is quite
> offten asked:
>
> When i use ecasound to record something i can do it this
> way and it
> works:
> ecasound -i alsa -o bla.wav
>
> But when i want to pipe it to lame and then into a
> streaming program
> like that i get white noise:
> ecasound -i alsa -o stdout | lame -b 64 - - | ezstream -c
> config.xml
>
> Maybe someone knows what is the issue?
>
> Thanks for helping.
>
> Greetings,
> Simon
>
> ------------------------------------------------------------------------------

I don't know the exact answer, but from my experience one should take
utmost care ensuring that format and sample rate are the same for all
chain elements of the chain.

At the moment sound is pushed through pipe there is no way for the
receiving end to know what format and sample rate are - there are no
headers which contain this info.

So, one has to explicitly specify format and sample rate.

Also, as a general advice, add chain elements one by one and make sure
the chain operates correctly - do not try to debug all at once.


Regards,
  Sergei.

P.S. Saying "chain" I mean

foo | bar | doo | dah | etc

, i.e. a chain of programs passing data through pipes.


     

------------------------------------------------------------------------------
Come build with us! The BlackBerry® 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-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: streaming with ecasound

by Simon Eigeldinger :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

On 1 Oct 2009 at 13:58, Sergei Steshenko wrote:

> > When i use ecasound to record something i can do it this
> > way and it
> > works:
> > ecasound -i alsa -o bla.wav
> >
> > But when i want to pipe it to lame and then into a
> > streaming program
> > like that i get white noise:
> > ecasound -i alsa -o stdout | lame -b 64 - - | ezstream -c
> > config.xml
> >
> > Maybe someone knows what is the issue?

> I don't know the exact answer, but from my experience one should take
> utmost care ensuring that format and sample rate are the same for all
> chain elements of the chain.

lame actually should recognize the stuff itself then ezstream is just
picking the stuff from lame.
is ecasound, in its standard settings, transfering data in pcm wave
format?

Or how can i be sure that it should work?

Thanks,
Simon

------------------------------------------------------------------------------
Come build with us! The BlackBerry® 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-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: streaming with ecasound

by Kai Vehmanen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

> But when i want to pipe it to lame and then into a streaming program
> like that i get white noise:

like Sergei noted, you need to make sure all apps use the same audio
format: sample format (int/float, signed/unsigned, bits, endianess, etc),
channels, sampling rate.

> ecasound -i alsa -o stdout | lame -b 64 - - | ezstream -c config.xml

So that would be (with lame 3.98 and newer) for instance something
like:

ecasound -f:s16_le,2,44100 -i alsa -o stdout | lame -b 64 -r -S
--signed --bitwidth 16 --little-endian -s 44.1 - - | ezstream ...

... and similar options for ezstream.

Older versions of lame are missing some of the options and you just have
to figure out what it is expected and adjust ecasound accordingly. There's
still no nice option to specify how many channels the input PCM stream has
(you just specify the channel encoding mode with '-m'), but in most cases
the default (stereo) is fine.

All in all, finding the right params might be a bit of a hassle, but
e.g. for white-noise, just adding "-x" to lame options will
probably fix the problem for you (swaps endianess).

------------------------------------------------------------------------------
Come build with us! The BlackBerry® 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-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: streaming with ecasound

by Remi R :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

ecasound is fun !

You should specify input and output format.

Here you have a streamer sample :
* Capture with -f:16,2,44100 you force ALSA settings
* LADSPA Chain converted in floating point -f:f32_le,2,44100 : with this
setup you signal between plugins can be higher than 0DbFS without pops.
 Of course the last plugin must output signal lower than 0 dBFS to avoid
pops when converted from floating point to 16 bits integer.
* Convert audio signal with -f:16,2,44100 before output.

Just after a pipe to ices2 in raw mode and a copy of capture in a FLAC file.

This chain setup give you a 0DbFS signal output for a nominal input at
-6 DbFS. By this way you have 6 Db Headroom. This is fully resilient for
input signal between -16 and 0 Db. This setup is OK for Live broadcast.

celll (cellular Leveler) sources are there : csa.sourceforge.net.
Other plugins are standarts ones.

And it works !

Sorry for my bad english.
Best regards
Remi+

-----------------------------------------------------------
#!/bin/bash
export LADSPA_PATH="/usr/local/lib/ladspa:usr/lib/ladspa"
LC_NUMERIC=POSIX
ecasound -b 4096 \
-a:TRAITEMENT -f:16,2,44100 -i:alsahw,1,0 -f:f32_le,2,44100 \
-el:celll,-6,-30,7,2,4,0.1,10,2,-0.2,-10 \
-el:fastLookaheadLimiter,0,-2,0.050 -el:fastLookaheadLimiter,0,-4,0.100
-el:fastLookaheadLimiter,0,-6.2,0.300 \
-eli:1068,1980E-3 \
-f:16,2,44100 -o:loop,1 \
-a:CON,FILE -i:loop,1  \
-a:CON -o:stdout \
-a:FILE -o:./capture_`date +"%A_%d%m%y_%X"`.flac \
-q\
| ices2 /home/remi/outils/streaming/ices.xml
------------------------------------------------------------------
ices.xml :
<input>
        <module>stdinpcm</module>
        <param name="rate">44100</param>
        <param name="channels">2</param>
        <param name="metadata">1</param>
        <!-- <param name="metadatafilename">test</param> -->
</input>





------------------------------------------------------------------------------
Come build with us! The BlackBerry® 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-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list

Re: streaming with ecasound

by Simon Eigeldinger :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Kai,

On 2 Oct 2009 at 0:28, Kai Vehmanen wrote:

> Hi,
>
> > But when i want to pipe it to lame and then into a streaming program
> > like that i get white noise:
>
> like Sergei noted, you need to make sure all apps use the same audio
> format: sample format (int/float, signed/unsigned, bits, endianess, etc),
> channels, sampling rate.
>
> > ecasound -i alsa -o stdout | lame -b 64 - - | ezstream -c config.xml
>
> So that would be (with lame 3.98 and newer) for instance something
> like:
>
> ecasound -f:s16_le,2,44100 -i alsa -o stdout | lame -b 64 -r -S
> --signed --bitwidth 16 --little-endian -s 44.1 - - | ezstream ...

Thanks Kai. it worked. had to add -x to lame and had to specify the
samplerate.

I used as streaming recorder arecord before but this terminated after
4-6 hours of use. let's hope we can go better with ecasound. we will
see how that does.

On the linux box i have a older lame (3.97) but i have now something
running.

Thanks all for the fast help.

Greetings from Austria,
Simon


------------------------------------------------------------------------------
Come build with us! The BlackBerry® 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-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Ecasound-list mailing list
Ecasound-list@...
https://lists.sourceforge.net/lists/listinfo/ecasound-list