Echtzeit mp3 Aufnahmen, Teil 2

ArticleCategory: [Artikel Kategorie]

Applications

AuthorImage:[Bild des Autors]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in nl Philip de Groot

nl to en Philip de Groot

en to de Guido Socher

AboutTheAuthor:[�ber den Autor]

Bald bekommt er seinen Doktor von der Universit�t Nijmegen in Chemometrie. Er arbeitet gern mit Linux und schreibt regelm��ig seine Erfahrungen auf.

Abstract:[Zusammenfassung]

Dieser Artikel ist eine Fortsetzung eines fr�heren Artikels �ber Echtzeit mp3 Aufnahmen von z.B Radio�bertragungen. Ich habe gezeigt, wie 12 Stunden Musik in einer 650 MB gro�en Datei oder 24 in einer 1.3 Gigabyte Datei gespeichert werden k�nnen mit fast CD Qualit�t (128 kbit/s; Stereo). Wie handhabt man nun solche gro�en Dateien? Kann man noch l�ngere Aufnahmen machen oder die Musik noch st�rker komprimieren? Wie steht es mit der Qualit�t? Wir werden versuchen diese Fragen zu beantworten.

ArticleIllustration:[Titelbild des Artikels]

[Illustration]

ArticleBody:[Der eigentliche Artikel]

Editieren von mp3-Dateien

Angenommen Du hast eine wundersch�ne Aufnahme von 24 Stunden Musik, z.B die Eighties Top 300 aus einer Radiosendung wie von Loostad radio aufgenommen und du m�chtest diese Aufnahme in kleinere Dateien aufteilen. Dabei m�chtest Du auch Reklame und Nachrichtensendungen entfernen. Wie kann man das am besten machen? Ein Vorschlag w�re:
Dieses Verfahren w�rde theoretisch funktionieren und entgegen der allgemeinen Meinung verursacht das Wiederaufnehmen einer Wavedatei mit dem exakt gleichen mp3 Algorithmus auch keinen Qualit�tsverlust. Diese Verfahren hat jedoch in der Praxis einige Probleme:

Kurzgesagt, Du brauchst ein Programm, das in der Lage ist mp3 Dateien selbst zu editieren. Solche Programme existieren, aber nicht (im Moment) f�r Linux. Eine ganze Reihe solcher Programme gibt es f�r Windows, aber die meisten haben ein gro�es Problem: Sie k�nnen nicht mit mp3 Dateien von 650 MB umgehen. Ich habe ein Programm gefunden, das in der Lage ist mit solchen Dateien zu arbeiten: 'Manns' mp3 edit'. Ich benutze das Programm unter Windows98. In seinem graphischen Interface kann man Anfang und Ende des gew�nschten St�ckes w�hlen. Man kann diese St�ck mit dem 'trim' Befehl kopieren. Das Programm ist 'donationware', das hei�t du solltest daf�r zahlen, falls das Programm Deinen W�nschen entspricht. Das Programm hat ein Problem: Es ist furchtbar langsam bei einer 650 MB Datei und es kann nur KONSTANTE Bitraten handhaben. Um z.B den Anfang der letzten Stunde einer 24 Stundenaufnahme zu suchen, braucht es sehr lange und involviert heftige Plattenzugriffe. Das 'Trimmen' des entsprechenden Musikst�cks dagegen geht recht schnell. Bis jetzt konnte ich noch keine Probleme bei den so bearbeiteten mp3 Dateien feststellen. Trotzdem �berpr�fe ich immer die fertigen Dateien, indem ich sie nochmal in den mp3 Editor lade. Falls das Laden funktioniert sind die Dateien OK. W�hrend meiner ersten Experimente mit diesem Editor habe ich schon auf den 'trim'-Knopf gedr�ckt, w�hrend die Platte noch heftigst arbeitete. Das f�hrte zu einer unbrauchbaren mp3 Datei. Um dir einen Anhaltspunkt zu geben: Das Editieren einer 650 MB Datei braucht etwa eine Stunde, haupts�chlich weil man immer warten mu� (etwas frustrierend).

Lange mp3 Aufnahmen (>24 Stunden)

Es ist kein Problem, 24 Stundenaufnahmen von einem Radiosender zu machen. Die Datei hat immer noch eine handhabbare Gr��e (z.B 1.3 Gigabyte f�r 24 Stunden) und kann leicht auf der Festplatte gespeichert werden. Die Sache �ndert sich, wenn man z.B Aufnahmen �ber eine Woche hinweg machen m�chte. M�glicherweise wird es nicht auf Deine Platte passen und du m�chtest das Problem l�sen. Ich hatte dieses Problem als ich die 'Alltimes Top 2000' zwischen Weihnachten und Neujahr 2000 (144 Stunden Musik) gesendet vom Niederl�ndischen Nationalradio Radio 2 aufnehmen wollte. Meine Platte war damals einfach zu klein. Ich mu�te das auf andere Weise l�sen. Hier ist das Rezept:
Ich habe dieses Verfahren benutzt, um die ganzen Top2000 aufzunehmen. Kein Problem. Ich benutzte 12 CDs w�hrend der Aufnahmen, die ich jetzt , nach dem Zusammenschneiden, nicht mehr benutze, aber das war n�tig f�r eine erfolgreiche Aufnahme. Wie funktioniert das? Ich kam auf die Idee als ich die CD-Burning-Howto gelesen hatte. Die n�tigen Schritte sind hier erkl�rt:


Der Vorteil diese Vorgehens ist die geringe Prozessorlast. Die Imagedateien existieren schon und werden nur langsam gef�llt. Man kann das mit einem Script automatisieren. Die CDs habe ich jedoch immer von Hand gebrannt, falls es Probleme beim Brennen gibt, sieht man es sofort. Das war einmal aufgrund einer fehlerhaften LeerCD der Fall. Aus diesem Grund erzeugte ich 4 Imagedateien. Damit h�tte ich 36 Stunden Zeit, um irgendwelche Probleme zu l�sen. Das Script sah so aus:

#!/bin/sh
echo "loading modules for sound support..."
modprobe -k snd-card-sb16
modprobe -k snd-pcm-oss
modprobe -k snd-mixer-oss
echo "setting mixer..."
amixer set Line 31 unmute capture; amixer set Master 31; amixer set PCM 31
cd /where/ever/you/stored/the/images/
for i in 1 2 3; do
    for ii in 1 2 3 4; do
    echo "mounting image_$ii on /mnt ..."
        mount -t ext2 -o loop=/dev/loop1 image_$ii /mnt
        echo "starting mpegrec ..."
        mpegrec -b 128 -x -mj -o /mnt/top2000_$ii.mp3
    echo "umount /mnt"
        umount /mnt
    done
done

Ich habe alles OHNE XWindows gemacht, nur mit dem Bash-prompt. Ich lud die Soundunterst�tzung von Hand, genauso wie die OSS Emulation (notwendig, um einen korrekt funktionierenden ALSA-Treiber zu erhalten) und den mixer Treiber. Nat�rlich k�nnte man das mit pre-install/post-install Triggern in /etc/conf.modules automatisieren. Die vierte Zeile im Script konfiguriert den Mixer: Aufnahmequelle ist 'line-in' und die Lautst�rke wird auf Maximum gestellt. Danach �bernimmt das Script das Mounten und Unmounten der Imagedateien. Die mpegrec Option '-mj' ist f�r joined stereo recording. Ich tat das, da ich kleinere mp3 Dateien erwartete, aber das war nicht der Fall. Die n�chsten Aufnahmen werde ich mit normalem Stereo machen. Das 'mpegrec' Programm sollte nach 12 Stunden aufh�ren. Um das zu erreichen, editierte ich den Quellcode und �nderte die maximal 24 Stunden (die ich einfach im Quellcode beschrieben fand) in 12 Stunden um. Leider funktionierte das nicht. Das Programm nahm weiter auf und ich mu�te mit crtl-c abbrechen. Ich verstehe das 'mpegrec' �berhaupt nicht mehr. Ich sollte den Quellcode genauer lesen.....

Anmerkung:
Die neuste Version von cdrecord (cdrecord-1.9) brachte Probleme beim Erzeugen der CDs. Die vorherige Version cdrecord-1.8.1, arbeitete ohne Probleme. Ich l�ste das Problem, indem ich die Firmware meines CD Recorders, Philips CDD 3610 von Version 3.02 aus Version 3.09 updateted. Urspr�nglich vermutete ich, da� die CD Brennprobleme durch den Kernel, 2.4.3, verursacht w�rden, aber das stimmte nicht.

Die Qualit�t von mp3 Aufnahemen

Aufgrund des Feedbacks auf meinen vorangegangen Artikel (Talkbackpage) erhielt ich einen Link auf eine Webseite mit interessanten Informationen bez�glich mp3-Aufnahmen. Speziell die mp3 Qualit�t in Bezug auf die mp3 Bitrate ist dort hervorragend erkl�rt. Die Adresse ist : http://www.r3mix.net/.


Zusammenfassung der wichtigsten Fakten:

All das wird im Detail auf der erw�hnten Webseite diskutiert.

Erzeugen einer kleinst m�glichen mp3 Datei

Unten werde ich ein Script diskutieren, das mir von einem Leser , via e-Mail, zugeschickt wurde. Das Script sieht so aus:
#!/bin/bash

echo "record $1 named ($3) for $2 seconds"
aumix -f ~/.aumixrc
/usr/bin/yes x | /usr/bin/radio $1 >/dev/null 2>/dev/null
sox -V -r 44100 -c 2 -t ossdsp -w -s /dev/dsp -t wav - 2>/dev/null |
lame - ~/$3.`/bin/date "+%H%M.%m-%d-%y"`.mp3 --resample 16 -b 8 -a -m m -h --lowpass 4 --highpass .12 --voice&
sleep $2
kill -9 $!
# copy the output to a different direcory. If you want you can
# replace cp by rcp or scp and copy it to a different computer:
cp $3.*`/bin/date "+.%m-%d-%y"`.mp3 /tmp/outputdir

Das Hauptziel des Scripts ist eine verst�ndliche Radioaufnahme zu machen, die nur 3.5 megabyte/Stunde Plattenplatz braucht! Mit verst�ndlich meine ich, da� man in der Lage sein mu�, die aufgenommene Sprache zu verstehen. Nat�rlich ist die Qualit�t furchtbar. Die erste Zeile des Scripts konfiguriert den Mixer und startet das Radiokartenprogramm sowie Sox. Der Trick besteht in den lame'-Optionen, die wir hier untersuchen:

--resample 16 -b 8 -a -m m -h --lowpass 4 --highpass .12 --voice
--resample 16 Definiere erneut die re-sampling Rate der Ausgabedatei von 44 kHz auf 16 kHz.
-b 8 Setze die sampling Rate auf 8 kbit/s.
-a Kombiniere die Stereokan�le zu mono.
-m m Erzwinge mp3 mono
-h high-quality mp3 Kodierung (langsamer)
--lowpass 4 Setze den Tiefpa�filter auf 4 KHz. Alle Signale (Frequenzen) h�her als 4 kHz werden entfernt.
--highpass .12 Setze den Hochpa�filter auf .12 kHz. Alle Frequenzen unter .12 kHz werden entfernt.
--voice Benutze eine mp3-Kompression, die f�r Sprache optimiert ist.

Es ist klar, da� man eine hohe Kompression f�r Sprache erhalten kann. Meist ist das nicht unbedingt erw�nscht, aber hier die M�glichkeit aufgezeigt.

Ein Standard-Script f�r mp3 Aufnahmen

Dieses Script wurde �ber die TalkBack Seiten geschickt (Ich bin dankbar daf�r: Jeder kann von dieser Information profitieren!). Das ist eine gro�er Vorteil der TalkBack Seiten, die f�r den letzten Artikel und f�r diesen Artikel vorhanden sind. Jeder kann seine Erfahrungen ver�ffentlichen oder andere Besucher um Rat fragen. In kurz: eine gro�e Menge an Informationen wird zusammengebracht und ist f�r jeden verf�gbar. Das Script nennt sich 'mp3_record' und sieht so aus:
#!/bin/sh 
 /usr/local/bin/mpegrec \ 
 -l 5400 \ 
 -x '--preset fm \ 
 --tt "Computers in Your Life" \ 
 --tl "Open Line with Tom Wieble" \ 
 --ta "Tom Wieble" --ty `date +%Y` \ 
 --tg "Speech" \ 
 --tc "Copyright (c) 1997 - `date +%Y` WOSU" -c' \ 
 -o open_line_`date +%d%b%y`_`date +%H%M`.mp3 

Die Option '-l 5400' setzt die Aufnahmenzeit auf 90 Minuten. Alle Optionen nach '-x' werden direkt an 'lame' weitergegeben (lines 4 to 9) und die '-o' Option speichert die Dateien als 'Datum_Zeit.mp3'. Diese Zeilen k�nnen nach Bedarf angepasst werden. F�r diesen Zweck mag es n�tzlich sein, sich die 'lame'-Optionen genauer anzusehen. Die Optionen von Lame sind in der folgenden Tabelle zusammengefa�t:

--preset fm Lame kennt einige Standardeinstellungen. 'fm' ist f�r Fm-Radioaufnahmen. Ich bevorzuge jedoch die normalen Aufnahmen mit 128 kbit/s.
--tt "Computers in Your Life" '--tt' Setze den Titel einer Aufnahme (30 Zeichen maximal).
--tl "Open Line with Tom Wieble" '--tl': Abbum, oder: Urspr�ngliche Quelle (30 Zeichen max).
--ta "Tom Wieble" --ty `date +%Y` '--ta': K�nstler (30 Zeichen max).
--tg "Speech" '--tg': Gattung (Name oder Nummer).
--tc "Copyright (c) 1997 - `date +%Y` WOSU" -c" '--tc': Kommentar ( 30 Zeichen max).

Kurz gesagt eine sch�ne Art mp3 Dateinen zu erzeugen mit Datum, Zeit und verschiedenen anderen Informationen. Es erfordert etwas Zeit all das in ein Script zu packen, aber es ist gut zu sehen, da� all dies m�glich ist.