[Icecast] Re: low bandwidth broadcasting using ices2

Andy Baxter andy at earthsong.free-online.co.uk
Mon Aug 30 03:27:05 UTC 2004


On Mon, 30 Aug 2004 04:01:58 +0100, Andy Baxter wrote:

> On Sun, 29 Aug 2004 17:53:29 -0700, Ralph Giles wrote:
> 
>> On Mon, Aug 30, 2004 at 03:03:28AM +0100, Andy Baxter wrote:
>> 
>>> Is there any way to bring the bitrate in ices2 down below 32 kbps?
>> 
>> Generally the trick for this is to downsample the audio before encoding. 
>> You can ask ices to do this with a resample stanza in the config file:
>> 
>>     <resample>
>>         <in-rate>44100</in-rate>
>>         <out-rate>22050</out-rate>
>>     </resample>
> 
> Thanks, that does it.
> 
>> 
>>> Specifically, I have a machine with 2 versions of oggenc on it, one
>>> from debian woody, and one compiled from source. The woody version will
>>> encode mono wavs down to 16kbps, but the (later) hand compiled version
>>> will only go down to 32 kbps. The quality of the 16kbps files isn't that
>>> great, but it's still ok to listen to - no obvious distortion or spurious
>>> noises, just a loss of clarity.
>> 
>> You don't tell us what compression options you tried, but hopefully the 
>> resampling issue is the one you're missing.
>> 
> 
> The ones I've tried are: 
> 
> channels	sample rate	nominal bitrate
> 2		44100		65536		good stereo sound
> 2		44100		131072		probably better but I can't hear the difference.
> 1		44100		32768		streams at 35-40 kbps, good sound
> 1		44100		16384		encoder won't start.
> 1		22050		16384		streams at about 25 kbps
> 1		14700		16384		streams at about 21-23 kbps. starting to sound
> 						bad.
> 1		22050		16384 with managed bitrate, max=18000. works, but sounds weird
> 						and metallic.
> 1		11025		16384		streams at 19-20 kbps. sounds flat and dull.
> 
> I reckon I should be able to find something that will do alright from
> these, so cheers.
> 
> andy.

This one looks the best so far (streams at about 20-22 kbps with slight
metallic sound on some tracks):

<?xml version="1.0"?>
<ices>

        <background>0</background> <!-- run in background? (unimplemented) -->
        <logpath>/tmp</logpath> <!-- where logs, etc go. -->
        <logfile>ices.log</logfile>
        <loglevel>4</loglevel> <!-- 1=error,2=warn,3=info,4=debug -->
    <logsize>2048</logsize> <!-- the size the log file must be before rotation -->
    <consolelog>0</consolelog> <!-- set this to 1 to log to the console instead
                                    of to the file above -->
    <pidfile>/var/ices/ices.pid</pidfile> <!-- file to write process id to -->

        <stream>

                <!-- input module -->
                <input>
                        <module>jack</module>
                        <param name="channels">1</param>
                        <param name="clientname">ices32</param>
                </input>

        <runner>
            <!-- Stream instance -->
            <instance>
                <shout>
                    <!-- Server details: -->
                    <hostname>localhost</hostname>
                    <port>8000</port>
                    <password>hackme</password>
                    <mount>/mono.ogg</mount>

                    <reconnectdelay>2</reconnectdelay>
                    <reconnectattempts>5</reconnectattempts>
                </shout>

                <resample>
                    <out-rate>22050</out-rate>
                    </resample>
                <encode>
                    <!-- VBR mode can be selected via quality or nominal-bitrate -->
                    <!-- selecting enabling managed has to be done separately as -->
                    <!-- it's slower, but can be used to limit a high threshold -->
                    <managed>1</managed>
                    <maximum-bitrate>22000</maximum-bitrate>
                    <nominal-bitrate>22000</nominal-bitrate>
                </encode>
            </instance>
        </runner>
        </stream>
</ices>






More information about the Icecast mailing list