[LinuxFocus-icon]
Home  |  Plan  |  Index  |  Suchen

Nachrichten | Archiv | Links | Über uns  
Dieses Dokument ist verfübar auf: English  Castellano  Deutsch  Francais  Nederlands  Portugues  Russian  Turkce  Arabic  

convert to palmConvert to GutenPalm
or to PalmDoc

[Photo of the Author]
von Philip de Groot

Ü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.


Inhalt:

 

Echtzeit mp3 Aufnahmen, Teil 2

[Illustration]

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.



 

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.

 

Talkback für diesen Artikel

Jeder Artikel hat seine eigene Seite für Kommentare und Rückmeldungen. Auf dieser Seite kann jeder eigene Kommentare abgeben und die Kommentare anderer Leser sehen:
 Talkback Seite 

Der LinuxFocus Redaktion schreiben
© Philip de Groot, FDL
LinuxFocus.org

Einen Fehler melden oder einen Kommentar an LinuxFocus schicken
Autoren und Übersetzer:
nl -> -- Philip de Groot
nl -> en Philip de Groot
en -> de Guido Socher

2001-05-04, generated by lfparser version 2.13