Skip to content

Bastelaufgabe

Man nehme: Eine Audiodatei, in die sich versehentlich zwei (OGG-)Streams eingeschlichen haben. Dadurch kommt der VLC-Player durcheinander, und auch Audacity kann nur den ersten Stream anzeigen und bearbeiten. Dieser erste Stream ist nun unpraktischerweise auch noch äußerst uninteressant für mich. Um nun die erwünschte Information in den 128 MB zu finden, habe ich mich erstmal hingesetzt, und die Datei analysiert. Ein Ogg-Vorbis-Stream hat recht viele 'OggS'-Textschnippsel, die also nicht geeignet sind, den richtigen Stream zu finden. Praktischerweise gibt es aber kurz nach dem Beginn des Streams auch noch den Text 'vorbis', den man auch mal suchen kann. In dem Fall habe ich festgestellt, dass der in der ganzen Datei genau zwei Mal vorgekommen ist: Einmal am Anfang, bei dem uninteressanten Stream und einmal bei ungefähr 20% der Datei. Meine Vermutung ging dann dahin, dass genau da der interessante Stream anfangen könnte.

Da sich eine 128 MB-Datei schlecht in einem Editor zerteilen lässt, habe ich dann erstmal versucht, herauszufinden, wie weit in die Datei diese 20% gehen, und die Zahl 26894459,2 Bytes errechnet. die Nachkommastelle ignorierend habe ich mir die Datei dann aufgeteilt:

dd if=bigFile.ogg of=smallTest.ogg bs=26894459 count=1 skip=1

Ein Blick in die Datei ergab, dass ich nicht genau den richtigen Punkt erwischt hatte. Eine Suche ergab, dass der Text 'vorbis' sich bei Position 0xbccf0 in der Datei versteckt hielt. mit einfacher Rechenkunst kam ich dann zu diesem Befehl:

dd if=bigFile.ogg of=smallTest.ogg bs=27667819 skip=1

Dummerweise erwies sich die Datei als defekt. Es fehlten nämlich die ersten paar Bytes. ein bisschen Experimentieren brachte dann diese Befehlszeile hervor:

dd if=bigFile.ogg of=smallTest.ogg bs=27667812 skip=1

Dadurch wurden aus der ursprünglichen Datei die ersten 26 Megabyte verworfen und der Rest in eine neue Datei kopiert. Diese Datei enthielt dann auch nur noch einen einzigen Stream, und ließ sich ohne großen Aufwand in Audacity öffnen und Bearbeiten, um an die fast zwei Stunden interessanten Inhalt zu gelangen.

Lektionen der Nacht: Man kann dd verwenden, um Dateien aufzuteilen. Ogg-Vorbis ist keine Hexenkunst. Content is king.

Ich habe keine Ahnung, wie ich vorgegangen wäre, wenn ich mehrere Dateien zusammenkleben hätte sollen, aber die Aufgabe musste ich auch nicht lösen.

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

doppelfish am :

cat * > out.ogg

Ganz einfach. Spätestens beim zweiten Versuch wird's spassig.

Andre Heinrichs am :

Oh, super. Wenn da mehrere Vorbis-Streams drin liegen, kann ich damit nicht nur nichts anfangen, sondern sogar noch weniger.

Mal ganz davon abgesehen, dass ich für gewöhnlich nicht in leeren Verzeichnissen arbeite. * dürfte also eine Menge Müll beinhalten, der in eine Audiodatei nicht reingehört.

Also dann doch eher
cat Prefix*.ogg > /tmp/target/out.ogg
aufrufen, und zwar außerhalb von /tmp/target/.

doppelfish am :

Hmm, mal schauen:

doppelfish@sputnix:~ > df /tmp/
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s3e 496M 1.3M 455M 0% /tmp

Hm. Könnte knapp werden.

doppelfish am :

doppelfish@sputnix:~ > ls /boot/
total 600
2 loader.conf 8 beastie.4th 2 loader.rc 2 boot0 2 mbr
2 modules/ 4 frames.4th 240 pxeboot 2 boot0sio
10 kernel/ 240 loader* 2 screen.4th 2 boot1
2 defaults/ 8 loader.4th 36 support.4th 8 boot2
2 device.hints 16 loader.help 8 boot 2 cdboot

Auja. Das wird spassig.

Andre Heinrichs am :

Die eine Frau hat komische Deformationen an ihrem Kopf. War sie damit schon mal beim Arzt?

doppelfish am :

Nee, bei so 'ner komischen Tagung.

Andre Heinrichs am :

Also hat man solche Deformationen, bevor man da hingeht? Sind die Eingangsvorraussetzung?

doppelfish am :

Och, sie sind ... hilfreich.

doppelfish am :

Gesundheit.

Kommentar schreiben

HTML-Tags werden in ihre Entities umgewandelt.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

BBCode-Formatierung erlaubt
Formular-Optionen
tweetbackcheck