Siduction Forum
Siduction Forum => Scripting & Kernelhacking => Topic started by: khx on 2010/12/24, 14:18:55
-
Moin,
wie kann ich im Shell-Script an eine bestehende Binär-Datei
eine/mehrere weitere anhängen?
(ich möchte mehrere .wav-Dateien aneinanderhängen)
ist cat dafür geeignet?
Hermann
-
Hi Hermann,
versuch es mal mit folgenden Kommando.
$ cat 01.wav 02.wav 03.wav > 01-03.wav
-
Hi Hermann,
versuch es mal mit folgenden Kommando.
$ cat 01.wav 02.wav 03.wav > 01-03.wav
hi bluelupo,
danke!
das wäre zusammensetzen - wenn ich das richtig verstanden habe ?
anhängen mit >> geht sicher auch?
Hermann
-
@Hermann: Anhängen mit >>
-
Hi,
habs probiert
prinzipiell gehts
allerdings knackt es an den Stoßstellen
Hermann
-
also ...
erst mit sox ins raw-format konvertieren
dann zusammenhängen
danach das zusammengehängte file mit sox ins wav-format
fertig
allerdings den gibts den in den div. Anleitungen beschrieben Parameter -w nicht
geht aber auch ohne
Hermann
-
Hallo @Bluelupo,
Audiodateien bitte nicht mit cat aneinanderfügen, das gibt Aussetzer.
@khx, warum wandelst Du denn die Dateien erst ins Raw Format um?
Hast Du drei Dateien 01.wav, 02.wav und 03.wav, lautet der Befehl:
sox 0* gesamt.wav
Viele Grüße,
Holger
-
Hallo Holger,
Hallo @Bluelupo,
Audiodateien bitte nicht mit cat aneinanderfügen, das gibt Aussetzer.
liegt das daran, daß cat nicht für Binär-Dateien geeignet ist?
@khx, warum wandelst Du denn die Dateien erst ins Raw Format um?
weils geknackt hat, was ich auf die Header zurückführte
Hast Du drei Dateien 01.wav, 02.wav und 03.wav, lautet der Befehl:
sox 0* gesamt.wav
sieht ja sehr einfach aus,
aber, wie kontrolliere ich die Reihenfolge?
Danke
Hermann
-
Audiodateien bitte nicht mit cat aneinanderfügen, das gibt Aussetzer.
liegt das daran, daß cat nicht für Binär-Dateien geeignet ist?
Nein, das liegt am wav Format -- das geht einfach nicht davon aus, dass an dessen Ende noch was kommt. Das ist aber bei vielen Binärformaten so, dass die das nicht gut finden. Ist im Grunde aber auch so bei Textdateien: Alleine durch cat werden zwei Sätze halt eben auch nicht zu einem mit "und" verbundenem Langen…
Hast Du drei Dateien 01.wav, 02.wav und 03.wav, lautet der Befehl:
sox 0* gesamt.wav
sieht ja sehr einfach aus,
aber, wie kontrolliere ich die Reihenfolge?
Vertraue auf deine Shell, dass sie richtige Expansion macht ;) Ansonsten kannst du es natürlich explizit aussprechen (sox 001.wav 002.wav …) oder eben:
sox $(find /path/to/wavs/ -name '0??.wav' | sort)
Mit find und sort kann man dann wohl wirklich so ziemlich jeden Sortierungswunsch erfüllen…
(find alleine wird eine recht undefinierte Reihenfolge ausgeben -- die Manpages machen schlau :) )