[LAD] simple silence detection tool

Robin Gareus robin at gareus.org
Sat Mar 9 01:49:27 UTC 2013


On 02/10/2013 06:57 PM, Jeremy Hansen wrote:
> 
> On Feb 10, 2013, at 8:16 AM, Robin Gareus <robin at gareus.org> wrote:
> 
>> On 02/10/2013 08:38 AM, Jeremy Hansen wrote:
>>>
>>> I'm looking for a simple tool where I can point it at an http audio
>>> stream, define a number of seconds to detect silence and exit with a
>>> non-zero status if silence is detected.  It seems like this should be
>>> easy but I've been search high and low for such a utility and nothing
>>> simple exists.  Unfortunately I'm not much of a developer, but this
>>> doesn't seem like it would be that difficult.  Maybe it's harder than
>>> I think, hence no tool that I can find.
>>
>> https://github.com/x42/silan may do the job. It prints ranges or silence
>> in a file or stream (incl. mp3,aac,wma,ogg,m4a,.. decoding and http,
>> rtmp stream support thanks to libav/ffmpeg). It is used by airtime
>> (sourcefabric's radio) to highlight silent ranges.
>>
>> silan -t 0.1 -s -60d "http://mp2.somafm.com:9016" \
>> |  grep -quiet "Sound Off" \
>> && echo " do something"
> 
> This is strange.  This works, but I'm unable to grep the output and I'm not sure why.  If I pipe to grep, I get nothing.  I tried redirecting stderr to stdout and doesn't seem to work.
> 
> [jeremy at serv src]$ ./silan -t 2.0 -s -40d "http://live.skidrowstudios.com:8000/live"
> Info: signal threshold: 0.010000 ^= -40.000dBFS
> 0.069569 Sound On
> 15.814150 Sound Off
> 
> Doing the same test:
> 
> [jeremy at serv src]$ ./silan -t 2.0 -s -40d "http://live.skidrowstudios.com:8000/live" | grep "Sound Off"
> Info: signal threshold: 0.010000 ^= -40.000dBFS
> 
> 
> I get nothing.
> 
> Thanks
> -jeremy

long lost reply.

I cannot reproduce this.

It may have be related to (A) using an endless live-stream + (B) stdout
pipe caching.  I've just added a flush() command.

HTH,
robin



More information about the Linux-audio-dev mailing list