#1 17. Dezember 2011 Guten Abend, ich habe eben danach gegoogled, wie ich eine .flac Datei ins .mp3 Format konvertieren kann. Ich würde gerne den Befehl verstehen: ffmpeg -i input.flac -vn -f wav - | lame --v -V7 - out.mp3 Ich benutze das Programm ffmpeg. -i gibt an dass die Datei "input.flac" konvertiert werden soll. Wofür stehen -vn und -f? Dann kommen: " wav - | " Den Hochstrich verstehe ich nicht. Ich schätze dass die Datei evtl. somit weitergereicht wird? Dann wird Lame verwendet (ist das ein eigenständiges Programm? mit den Parametern "--v -V7 - " -> was hat das zu bedeuten? out.mp3 ist dann wieder klar: halt die entstandene .mp3 Datei. Ist das was ich mir geacht habe richtig? Und was bedeuten die anderen Parameter?
#2 17. Dezember 2011 AW: Linux - Befehl verstehen ~Befehl~ + -h oder -? oder -help oder --help bzw. ffmpeg -h ffmpeg -? ffmpeg -help oder ffmpeg --help
#3 17. Dezember 2011 AW: Linux - Befehl verstehen Mh, guck mal.. jedes Programm hat eine Manpage oder eine -h (Hilfe) funktion. Wobei der Befehl oben, mein ich, falsch ist. Sollte lauten: fmpeg -i input.flac -vn -f wav - | lame -V 0 - neu.mp3 Fangen wir mal von links nach rechts an -i (input file name) -vn (disable video) -f (force format) (WAV) -V (set ffmpeg verbosity level) Weitergereicht ist schon richtig interpretiert, quasi übernimmt "Lame" nun die umwandlung. Lame ist der MP3 Encoder
#4 17. Dezember 2011 AW: Linux - Befehl verstehen Und wenns dir um die Pipe (" | ") geht -> All about pipes, by The Linux Information Project (LINFO)
#5 18. Dezember 2011 AW: Linux - Befehl verstehen Danke schon mal. Und wie mache ich das ganze mit Wildcards, sodass alle Dateien umbenannt werden? ffmpeg -i 1.flac -vn -f wav - | lame -V0 - 1.mp3 Wenn ich jetzt einfach statt *.flac und *.mp3 setze, bekomme ich einen Fehler, sprich es wird eine *.mp3 erzeugt.
#6 18. Dezember 2011 AW: Linux - Befehl verstehen ich glaube einfach nen * als wildcard zu nehmen, wird so nicht funktionieren. probiers mal mit Code: for d in *.flac; do ffmpeg -i $d -vn -f wav - | lame -V0 - $d.mp3; done Bedeutet: Startet eine Schleife, die der variable d alle einträge von *.flac (also alle flac dateien) nacheinander zuweist. Innerhalb der Schleife führt er deinen Befehl aus, ersetzt dabei die Dateinamen durch $d (also die Variable, in der du den aktuellen Dateinamen gespeichert hast). Das macht er, bis er alle Dateien durch hat. Einziger Nachteil: die datei heisst bla.flac.mp3. dagegen hilft es das .flac wegzuschneiden. ich benutze dafür gerne "sed" Code: for d in *.flac; do ffmpeg -i $d -vn -f wav - | lame -V0 - $(echo $d | sed 's/\.flac//').mp3; done Bedeutet: Nehme $d und stecke es in sed. sed ersetzt dann .flac durch nix und fertig ist der richtige dateiname bla.mp3 Obs einfacher geht? Vielleicht? Obs trotzdem funktioniert? Ziemlich sicher Edit: im sed Befehl . mit \ escapen, sonst matcht . auf alle Zeichen und nicht nur Punkte (dürfte zwar keinen Unterschied machen, aber so ists "richtiger")
#7 20. Dezember 2011 AW: Linux - Befehl verstehen als input kannst du vllt die wildkart nutzen, da er jede .flac datei lesen wird, jedoch wird er nicht zufällige namen für den output verwenden ^^ vllt gerade mit einer schleife wie davor beschrieben austattetn, so dass die titel durch nummeriert werden