Akkumulierte Fehler bei mehrfachem OggVorbis-En/Decoding

Am letzten Freitag hatten Gerhard, Benny und ich ein wenig darüber sinniert, ob sich Qualitätsverluste in Audiodateien, wenn man sie, z. B. per Ogg/Vorbis, mehrfach en- und wieder dekodiert, aufsummieren. Ich hatte in der Richtung früher mal mit Bildern und JPEG-De/Rekompression Versuche unternommen, aber noch nie mit Audio-Material.

Also, folgendes Ergebnis: Ich habe hier einen kleinen 10s-Audioschnipsel aus einem Song eines Bekannten aus Schweden (“Norma”, von Robert Jonsson), und habe es immer wieder per “oggenc” encodet, in ein .wav decodet und wieder encodet (jeweils ca. 112kbit/s) usw. Ich war regelrecht erschrocken, wie schnell die Qualität ins Bodenlose absinkt.

Originaldatei: norma_excerpt.wav (wobei ich gestehen muß, daß mein “Original” selbst auch schon ein .ogg war)

Erste Generation: s1.ogg (noch sehr gut)

Fünfte Generation: s5.ogg (man hört bereits deutliche Verschleifungen)

Zehnte Generation: s10.ogg (der Ton “flimmert” bereits sehr stark)

Fünfzigste Generation: s50.ogg (massiver Höhenverlust, wie durch dicke Watte)

Hundertste Generation: s100.ogg (Aua aua aua)

Also, darum sollte man bei Audiobearbeitung am Rechner (und das gleiche gilt natürlich analog auch für Bilder und Videos) so lange wie möglich mit der besten verfügbaren Qualität arbeiten und erst ganz am Ende den “Downmix” auf ein verlustbehaftetes Format erwägen :-) .

 

Dateien sortieren und Gruppenwechsel

Sortieren und Gruppenwechsel

Zwar nicht direkt Linux betreffend, aber vielleicht doch von Interesse:

Ich muß immer mal wieder Dateien sortieren und als Liste ausgeben. Die Ausgabe einer Liste soll dabei Summen nach bestimmten Kategorien enthalten, also der typische “Gruppenwechsel”.

Da ich keine passenden Anwendungen gefunden habe, habe ich hierzu zwei kleine Programme geschrieben, welche diese Aufgabe erleichtern sollen . Diese heißen “filesort” und “controlbreak” und finden sich auf sourceforge.net (Suche mit: “filesort control break”).

Wie der Name schon sagt, sortiert “filesort” eine Datei. An sich nichts besonderes, da es jede Menge Sortierprogramme gibt. Aber was ich immer vermisst habe, ist ein Sortierprogramm, welches nach mehreren Feldern sortiert (also: sortiere Spalte A, sortiere innerhalb von Spalte nach A nach Spalte B, etc.). Dies macht “filesort”.

“controlbreak” bildet dann zu einer sortierten Datei Summen zu beliebigen Spalten. Dabei muß man angeben, zu welchen Spalten Summen gebildet werden.

Git-Links

Collection of Git links:

Stammtisch vom 09.03.2012

Hallo auch,

kurzer Nachtrag zu gestern Abend, zwei kleine Dinge, die zugegebenermaßen mit
Linux nicht soo wahnsinning viel zu tun haben, aber was soll’s -

1)
Um mit einem “Music Sequencer” zu arbeiten, braucht man heutzutage gar keine
Software mehr auf dem PC zu installieren – das klappt alles schon direkt im
Browser: http://soundation.com/studio

Natürlich sollte man beachten, daß der kostenlose Anteil eingeschränkt ist, und
man für viele Leckerli dann doch zumindest seine Logindaten dort abgeben bzw.
sogar Zusatzpacks im Shop erwerben muß. Aber, das überhaupt schon so vieles im
Browser machbar ist, hätte ich nicht gedacht.

2)
Dieses Video hatte ich, nachdem Jef/Jannis schon weg waren, noch kurz auf meinem
eeePC gezeigt – für die, die wirklich schon alles an adrenalinschubbringenden
Sportarten durch haben – http://www.youtube.com/watch?v=TWfph3iNC-k

Und wer ein wenig Youtube durchstöbert, findet auch ein Video vom Januar diesen
Jahres vom Tafelberg in Südafrika, wo ein Stunt desselben Verrückten nicht ganz so
erfreulich ausging (“multiple leg fractures”)..

Gruß&schönes Wochenende,
Frank

Stammtisch vom 13.01.2012

Hallo zusammen,

erstmal noch allen Subscribern unseres kleinen Mailverteilers ein spätes, aber
trotzdem gesundkreativfröhliches neues Jahr.

Am Freitag (den 13.!) hatten wir wieder ein Treffen, und ich habe wieder ein
paar Dinge “mitgenommen”, die ich noch kurz zusammenfassen möchte..

(1) “Wie schnell ist meine CPU im Vergleich”?

Da ich mit dem Plan, dieses Jahr einen neuen PC anzuschaffen, schwanger gehe,
ist es für mich von Interesse, CPUs und ihre Performance vergleichen zu können.
Dabei bin ich über http://cpubenchmark.net gestolpert. Da gibt’s zwar leider
nicht direkt die weiteren Daten wie Kernanzahl, TDP etc. abzulesen, aber als
grober Indikator ist das vielleicht gar nicht mal schlecht. Ich plane übrigens
zur Zeit auf einen Intel i5 2500K.

(2) Filme auf der Konsole – ASCII-Art mit aalib

Um Filme zu sehen, braucht’s nicht unbedingt immer eine fette Grafikkarte mit
Hardware-unterstütztem MPEG-Decoder; dank der “aalib” geht das auch auf einer
Textkonsole, natürlich mit entsprechenden Einschränkungen bezüglich Auflösung
und Farbzahl.
Vorschlag: Einfach mal einen Film oder Video mit
mplayer -vo aa <datei>
abspielen und genießen. Puristen machen das natürlich nicht in einem Terminal-
Fenster, sondern direkt auf einer der Textkonsolen – wobei das bei mir gerade
etwas merkwürdig aussah. Kann sein, daß mit der Umstellung der Konsolen auf
das framebuffer-Device die vt-Kompatibilität gelitten hat.

Eine sehr beeindruckende Demo der aalib-Fähigkeiten ist die “bbdemo”
(http://aa-project.sourceforge.net/bb/), die immerhin schon 15 Jahre auf dem
Buckel hat.

(3) StarWars für telnet-Benutzer

Ein weiterer ASCII-Art-Klassiker – da hat jemand mal seeehr viel Zeit gehabt
und die Kernhandlung von Star Wars Epise IV in selbstprogrammiertem ASCII
niedergeschrieben.
Ein einfaches

telnet towel.blinkenlights.nl

in einem Terminal-Fenster reicht, um sich dieses Werk anschauen zu können.
Und die erforderliche Bandbreite ist auch erfreulich gering (so 5-8K/sec) – sogar
Benny dürfte daran seinen Spaß haben! :-) Man muß sich aber Zeit nehmen – die
Laufzeit dürfte bei geschätzt etwa 30 Minuten liegen.

(4) LMDE Rolling Release
Marcus (Seidler) hat darum gebeten, die “LMDE Rolling Release” von Lint Mint zu
erwähnen (http://www.linuxmint.com/download_lmde.php). Das ist hiermit getan.
Hat die schon jemand eine Weile genutzt und mag seine Erfahrungen damit mitteilen?

(5) Backupst Du noch, oder rsyncst Du schon?

Marcus hatte mich außerdem gebeten, mal meinen Backup-Prozeß zu beschreiben;
also:

Meine Hauptplatte im Rechner ist 1TB groß, zur Zeit zu etwa 70% voll. Die Daten
verteilen sich auf 2 Partitionen, / und /mnt. Davon gehen allerdings ein ganzer
Batzen an DVD-Abzügen (legal – selbstgekaufte DVDs!) ab (siehe Option “–exclude”
unten), so daß mein Backup-Volumen zur Zeit etwa 400GB beträgt.

Ich habe eine externe USB-Festplatte, die ich einmal pro Woche dienstags abends
anstöpsele (wird unter /media/disk gemountet). Und dann machen diese paar Befehle
das ganze Backup:

sudo /bin/bash    # notwendig, weil nur root alle Dateien lesen kann
cd /
rsync -avx –delete –exclude ‘home/franky/media/movie’ . /media/disk/slash
cd /mnt
rsync -avx –delete . /media/disk/mnt

Also, ich erzeuge damit Komplettbackups, keine Deltas. Laufzeit liegt dafür
üblicherweise (abhängig von der Menge an Daten, die in der vergangenen Woche
angefallen sind) zwischen 10 und 30 Minuten. rsync überträgt nur Dateien, die
sich aufgrund Dateigröße oder Datestamp gegenüber dem Ziel verändert haben. Das ist für meine Zwecke genau genug. Wer’s ganz genau will, muß “-c” hinzufügen.

Nachteil: Ich habe keine “Time Machine”, sondern nur genau eine Backup-
Generation. Auch damit kann ich aber leben.

Wenn ich das Backup wieder herstellen muß (ist bisher einmal nötig gewesen,
als ich auf eine größere Platte umgestiegen bin), boote ich von einer x-beliebigen
Knoppix- oder Heft-CD/DVD mit Live-Image, vollkommen egal was, solange da ein
rsync drauf ist. Dann wird die neue Platte per fdisk oder ähnlichem
partitioniert, dann unter z. B. /mnt gemountet, formatiert, und dann von der
Backup-Platte alles in umgekehrter Richtung wieder per rsync zurückgespielt.

Man sollte da aber etwas aufpassen, denn die oben erwähnte Option “–delete”
sorgt dafür, daß Quelle und Ziel wirklich hinterher übereinstimmen – vertauscht
man die beiden, wird auch das Backup gnadenlos ausgenullt..

Zum Abschluß muß ich noch dafür sogar, daß grub den Bootsektor wieder schreibt.
Das geht mit sowas wie

grub starten (als root)
find /mnt/boot/grub/stage1  (sucht in allen mountbaren Partitionen – sollte es in /dev/sda1 finden)
root (hdxx,yy)
setup (hd0)

(## Diesen letzten Block müßte ich mal revidieren – ich sehe gerade, daß ein
aktuelles Ubuntu 11.10 kein “grub”-Binary unter diesem Namen mehr hat! ##)

Schließlich mußte ich noch in meiner /etc/fstab die Einträge für die Mountpoints
auf die UUID der neuen Platte ändern (das zurückgespielte Backup enthält ja
noch die Info der alten Platte). Dazu braucht es ein

tune2fs -l /dev/<partition>

und dann die Info aus der Zeile
Filesystem UUID:          21518838-546e-43c3-9f68-5e00fc48c649

Diese übertrage ich in die UUID=…-Zeilen in der fstab.

Danach rebooten, und das sollte es eigentlich gewesen sein. Hat den netten
Vorteil, daß damit ganz nebenher die Festplatte schön defragmentiert wird und
beim nächsten Mal deutlich schneller booten dürfte.

FÜr mich hat der ganze Proßze den Vorteil, daß ich auf keine aufwändigen
Programme angewiesen bin, die erst installiert oder wiedergefunden werden
müssen – ich habe alle Dateien im direkten Zugriff, kann so also auch z. B.
aus Versehen gelöschte Dateien in ein paar Sekunden zurückholen. Und alle
Werkzeuge, die ich für ein Restore brauche – minimales Linux-System, Shell,
rsync, mkfs, tune2fs, vi – hat eigentlich jeder irgendwo zuhause immer liegen.

Hat jemand Kommentare/Korrekturvorschläge oder möchte seine eigene Backup-
Methode vorstellen? Ich freue mich über Anregungen..

Gruß&eine schöne Woche,
Frank

PS: Und wenn jemand noch Tips hat, wie man halbwegs aktuelle DVDs mit den etwas
modernen Koperschutzmethoden wie ARccOS oder RipGuard auf die Festplatte bekommt,
wäre ich sehr interessiert. “ddrescue” scheint zwar der richtige Weg zu sein,
aber beim Abspielen des gerippten Videos treten immer wieder mal häßliche
Bildsprünge auf.. “makemkv” muß ich nochmal austesten.