Configurazione di Gnump3d su Linux, Downsampling
novembre 16, 2007 1:35 pm
Quarantottesimo articolo dedicato alle web radio.
In questo articolo si parla sempre del file gnump3d.conf, ponendo però l’accento sul downsampling, ovvero la modifica del bitrate dei file mp3, qualora ne avessimo necessità.
# DOWNSAMPLING / BIT RATE CHANGE
##
#
# This support allows the music to be down-sampled before it is streamed
# to clients. This will slow down the serving, and may be a little
# processor intensive – I guess it will depend upon the speed of your
# server, and the number of users you have.
#
Queste impostazioni permettono di diminuire il bitrate dei brani prima che essi vengano streammati oppure scaricati dai clients. Questo ridurrà la velocità del server, e potrebbe appesantire il carico del processore del server stesso, ma se la banda è scarsa, è una buona soluzione senza dovere modificare i files.
# Is downsampling support enabled?
#
# If this is disabled then none of the further downsampling options will
# apply, even if they are set.
#
# Also note that if the downsampling support is disabled the preferences
# page will not allow the clients to select their own bitrate.
#
# (I think this makes sense, if it’s disabled it’s misleading to present
# configuration options to the clients).
#
# downsample_enabled = 1
#
Questa opzione permette di abilitare o disabilitare la possibilità di effettuare il downsampling. E’ semplicemente un flag, che va decommentato se si vuole sfruttare l’opportunità sopracitata.
##
#
# YOU MUST UNCOMMENT THESE LINES
#
# Downsampling is based upon IP address, rather than enabled globally
# this allows you to control things a little more tightly than user
# preferences.
#
# For example on a gateway machine you’d want all people on the internal
# LAN to have full quality files, and people remote to have the lower
# quality sounds.
#
# The next two settings specify the downsampling ranges:
#
# downsample_clients = ALL
# no_downsample_clients = 192.168.0.0/24
#
# NOTE: ‘no_downsample_clients’ takes precedence over ‘downsample_clients’.
#
Supponiamo che il server possa avere accessi sia da una LAN (connessione più veloce) che da internet. Probabilmente preferiremmo che gli utenti della LAN potessero usufruire dei file a bitrate elevato, mentre tutti gli altri clients, dei file in downsampling. Queste opzioni lo permettono facilmente.
downsample_clients indica quali clients usufruiranno di files a bitrate più basso, mentre no_downsample_clients indica quali clients usufruiranno dei file a bitrate invariato.
Similarmente a quanto specificato in merito al ban degli ip, possiamo combinare le due opzioni nei modi che preferiamo, ricordandoci che il no_downsample ha precedenza rispetto all’opzione downsample (e questa è una buona scelta, perchè ci permette di seguire una politica di scelta, simile all’instradamento dei router). Ecco alcuni esempi:
# Downsample Everybody:
# downsample_clients = ALL
# no_downsample_clients = NONE
Questo settaggio riduce PER TUTTI il bitrate.
# Downsample remote, allow local to have full quality
# downsample_clients = ALL
# no_downsample_clients = 192.168.0.0/24
Con questo settaggio, tutti le richieste provenienti da internet riceveranno files a bitrate più basso, mentre la lan (ovvero la rete con ip che va da 192.168.0.0 a 192.168.0.255)
# Downsample all except two addresses
# downsample_clients = ALL
# no_downsample_clients = 192.168.0.162; 192.168.0.33
Questo settaggio da privilegi di ascolto full quality solo a due indirizzi.
# Full quality for all local, except one address
# downsample_clients = 192.168.0.99
# no_downsample_clients = 192.168.0.0/24
Qualità alta per tutti la LAN, tranne che per un singolo ip (sfigato
)
# For each of the downsampling levels the user has chosen the selected
# file will be processed by a command.
#
# This command is assumed to write it’s output directly to STDOUT.
#
# The following options specify the command line to run, note that
# the string ‘$FILENAME’ will be replaced by the file the user is
# requesting.
#
Cominciano le effettive opzioni da decommentare e settare per la conversione di bitrate. Per ogni singolo caso di conversione, c’è un comando che verà richiamato dalla shell. Ciascun comando verrà stampato direttamente nello standard output.
# If you wish to downsample or convert any other file types you
# need to add entries to this file to specify what is done to them
# simply create an entry which looks like:
#
# downsample_”level”_”file suffix” = command args
Prima di passare ai settaggi effettivi, Steve ci comunica le modalità per fare da soli. Qualora avessimo inserito un nuovo tipo di media file che possiamo convertire in se stesso ad un bitrate più basso (che ne so.. ad esempio AAC+, oppure FLAC, o quello che caspita volete) dobbiamo inserire un riferimento nella forma:
downsample_LIVELLOQUALITÀ_SUFFISSOFILE = comando argomenti.
Di una semplicità mostruosa. C’è poco da dire, Steve è davvero un ottimo sviluppatore.
#downsample_high_mp3 = /usr/bin/lame –mp3input -b 56 $FILENAME -
#downsample_medium_mp3 = /usr/bin/lame –mp3input -b 32 $FILENAME -
#downsample_low_mp3 = /usr/bin/lame –mp3input -b 16 $FILENAME -
Ecco le impostazioni per gli MP3. La prima riga indica la qualità alta di downsampling. Possiamo sceglere noi cosa sia da attribuire ad “alto”. Condivido la scelta di Steve, di settare ad alto il valore di 56 kbps, perchè si tratta pur sempre di un DOWNsampling. sostituiamo a 56, 32, o 16, i valori che preferiamo.. con un minimo di coerenza.
Viene richiamato il programma LAME, con lo switch –mp3input, che nome è noto, serve proprio a modificare un file mp3, cambiandone il bitrate. lo switch -b permette di impostare i seguenti bitrate: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320.
#downsample_high_ogg = /usr/bin/sox -t ogg $FILENAME -t raw – | oggenc –raw –downmix -b 96 -
#downsample_medium_ogg = /usr/bin/sox -t ogg $FILENAME -t raw – | oggenc –raw –downmix -b 64 -
#downsample_low_ogg = /usr/bin/sox -t ogg $FILENAME -t raw – | oggenc –raw –downmix –resample 22050 -b 32 –
Situazione simile per OGG.
Al posto di LAME, viene richiamato il programma SOX, con lo switch -t impostato prima per identificare il file OGG, poi per indicare che tale file è headerless (ovvero senza header iniziale). Tale comando è posto in pipeline con OGGENC, impostato con vari parametri. Il –raw indica che il file è appunto senza header, –downmix indica che se il file era in codifica stereo, adesso diverrà mono. -b indica il nuovo bitrate. l’opzione RESAMPLE indica che il file deve essere ricampionato, passando dai canonici 44,1 Khz ai 22,05 Khz.
# If you always want to force a particular bitrate upon clients who’ve
# not chosen something different then specify it here:
#
# default_quality = medium
Questa opzione, se decommentata, permette di impostare un particolare bitrate, qualora il client non ne abbia scelto uno di sua volontà.
Categories: Web Radio
No Comments »
