PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mp3 per Script in Teile splitten



Rototom
24.09.03, 12:27
Herzlich Willkommen zu einer neuen Frage von mir!
Ich bin großer Hörspiel-Fan und besitzer eines tragbaren mp3-players (pontis SP600).
Hörspiele dauern im Durchschnitt etwa 60 Minuten und sind auch meist nur eine Datei groß.
Mein Mp3-Player beginnt beim inschalten leider immer wieder von vorn, sodass ich bis zu 50 Minuten spulen muss, um dort weiterzuhören, wo ich aufgehört hab.
Sicherlich könnte ich die große mp3 in bspw. Audacity laden und dort manuell schneiden; das ist mir aber eigentlich zu aufwendig.
Unter Linux gibt es doch bestimmt eine Möglickiet, das per scipt zu machen, oder sonstwie zu automatisieren, oder?

Resümme: Eine einzelne mp3-Datei automatisch in bspw. 10 Minuten lange Teile scheiden.

Für Eure Ideen bin ich sehr dankbar,

Thomas Klein-Hitpaß

MiMe
24.09.03, 12:41
Hi Rototom,

ich schneide meine mp3-Dateien mit dd.
(dd if=<input>.mp3 of=<output>.mp3 skip=<Anfangslänge, welches abegschnitten wird, in Sekunden> count=<Lände des Stückes Sekunden> bs=<Anzahl der Bytes, die einer Sekunde entsprechen>).
Die Anzahl der Bytes berechne ich mit bc?

Zugegebenermassen erscheint das brutal und ignorant gegenüber der mp3-Struktur, aber es funktioniert ;-) (Kann es jemand erklären?)

Gruß
MiMe

Thomas Engelke
24.09.03, 13:09
*hüstel* MP3 = Streaming-Format? IMHO läßt sich dies jederzeit auseinanderreißen und von dort aus abspielen. Der TAG am Ende der Datei ist eine reine Konventionsfrage und nicht erforderlich.

AD!

Rototom
24.09.03, 13:17
Hmm, vielen Dank erstmal für Eure Antworten.
Ich bin schon ein wenig weiter.
Das Programm "split" ist wohl, was ich suche.
per: split -b 1000000 input.mp3 bekomme ich aus der großen input.mp3 viele kleine etwa 1 MB große Stücke, die sich auch abspielen lassen.
Soweit so gut; genau das, was ich brauchte.
Leider heissen diese kleinen Dateien dann inputaa input ab input ac input ad usw.
Ich will, dass sie die DAteiendung .mp3 haben.
Die MAN Page von split beschreibt nur "split [OPTION] [INPUT [PREFIX]]"
"split -b 2m mp3" ergibt aber Dateien, die mit "mp3" beginnen; also mp3aa mp3ab mpac usw.
Wer hat eine Idee?

MiMe
24.09.03, 13:21
for datei in <PREFIX>*;
do
mv $datei ${datei}.mp3
done

Rototom
24.09.03, 13:52
Vielen Dank.
Leider mache ich noch irgendwas falsch.
Ich habe hier die große Quelldatei "datei.mp3".
Mithilfe des Kommandos: "split -b 2m datei-mp3 datei"
habe ich nun viele 2 Megabyte große Dateien erzeugt, die folgendermaßen heissen:

dateiac dateiaf dateiai dateial dateiao dateiar
dateiaa dateiad dateiag dateiaj dateiam dateiap dateias
dateiab dateiae dateiah dateiak dateian dateiaq

Dein Script habe ich folgendermaßen angepasst:

#!/bin/bash
for datei in datei*;
do
mv $datei${datei}.mp3
done

was mache ich falsch?

HEMIcuda
24.09.03, 13:56
IMHO kannst Du die {} weglassen.

Und ein Freizeichen gehoert noch zwischen $datei und ${datei}.

'cuda

Rototom
24.09.03, 13:59
#!/bin/bash
for datei in datei*;
do
mv $datei$?datei.mp3
done

So klappts aber auch nicht.
Die Shell sagt:
mv: missing file argument
Try `mv --help' for more information.

Rototom
24.09.03, 14:01
Hui, ich hab was gefunden:
#!/bin/bash
for D in *; do mv $D $D.mp3; done
Das klappt

HEMIcuda
24.09.03, 17:54
Original geschrieben von Rototom
#!/bin/bash
for datei in datei*;
do
mv $datei$?datei.mp3
done

So klappts aber auch nicht.
Die Shell sagt:
mv: missing file argument
Try `mv --help' for more information.

Ja, ist ja auch logisch. Da ist immernoch kein
Freizeichen (Freizeichen, nicht Fragezeichen :D)
zwischen $datei und $datei.mp3. Und wie bist Du
auf das Fragezeichen gekommen? *g*
Deine aktuelle Loesung ist dann so, wie sie sein
muss (und die alte werden sollte), nur halt in
einer Zeile und mit anderen Variablennamen.

'cuda