Der Diskussion auf einer Mailinglist:
http://lists.digium.com/pipermail/asterisk-dev/2009-May/038193.html
entnahm ich folgendes:
Tim Ringenbach schrieb:
What I had to do was patch format_mp3. There's a #define I had to change.
At first I thought it was the GAIN but it turned out that #define wasn't actually used.
I think it was OUTSCALE. I'll try to verify that.
Yeah, I'm pretty sure it was outscale.
There's even a comment that says:
/* quiet 4096 med 8192 */
Auf deutsch: die Lautstärkenanpassung von MP3s ist im Quelltext des Addons (format_mp3.c) fest eingetragen.
Sie steht in der Variable "OUTSCALE".
"GAIN" wird zwar definiert, aber nicht verwendet.
Die Mailinglistpostings sind vom Mai 2009. Bis heute (Oktober 2010) hat sich daran nichts geändert.
Ich hab mir den Quellcode von
http://www.asterisk.org/downloads "Asterisk Add-Ons" gesaugt (asterisk-addons-1.6.2.2.tar.gz und asterisk-addons-1.4.12.tar.gz). Der entscheidende Quelltext findet sich beidesmal in "formats/format_mp3.c", Zeile 70 (bzw. 67 für 1.6.2.2):
Code:
#define BLOCKSIZE 160
#define OUTSCALE 4096
#define GAIN -4 /* 2^GAIN is the multiple to increase the volume by */
Der angebliche Kommentar " /* quiet 4096 med 8192 */" fehlt.
Selbst 8192 erschien mir noch zu leise. Erst
Hob die Lautstärke der MP3s auf das Niveau der WAV-Dateien.
Wie der Quelltest auch sagt ("AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "MP3 format [Any rate but 8000hz mono is optimal]")
ist es für MP3s genau das absolut Falsche die normalen Vorgaben für Asterisk, 8 kHz sample rate bei nur einem Kanal, zu benutzen.
Dies liegt nicht an Asterisk oder an dem Addon format_mp3 sondern wohl an einem Bug von einer mp3-Bibliothek.
Aus dem Grund nehm ich die Standard MP3s (oft 44,1 kHz, Joint-Stero, 128 kbit/s), vielleicht kommt Telefoniequalität ja irgendwann da hin.
Noch ein Hinweis zum kompilieren:
Wie macht man das:
Unter Debian (Lenny) musste ich noch das Paket "asterisk-dev" installieren (apt-get install asterisk-dev) um die notwendigen "Header-Dateien" zu haben.
Anschließend hab ich asterisk-addons-1.4.12.tar.gz ausgepackt.
Bin in einer Konsole in das entstandene Verzeichnis asterisk-addons-1.4.12 gewechselt.
Habe die Datei format_mp3.c im Verzeichnis formats/ wie oben beschrieben verändert.
Habe
ausgeführt, anschließend
.
Nun erschien im formats/ Verzeichnis die Datei format_mp3.so
Bei meinem Debian Lenny liegt die mitgelieferte Datei in /usr/lib/asterisk/modules/
Ergo eine Sicherheitskopie von /usr/lib/asterisk/modules/format_mp3.so ziehen und die frisch kompilierte dorthin kopieren.
Ich hab zur Sicherheit mal Asterisk neugestartet. (Keine Ahnung ob er das auch im laufenden Betrieb merkt...)
Grüße
genbian