Hallo,
leider bringt lame keine Option mit, mehrere wav oder mp3s zu einer neuzucodieren. Es geht aber wohl über die Pipe, denn Lame kann jede mp3 decodieren: Hier wird es über find gemacht, was mich verwirrt:
find . -name ‘*.mp3’ -exec lame –decode ‘{}’ - ‘;’ | lame -a –tt “Title” –tl “Album” –ta “Artist” -b 96 - concatenat.mp3
Geht das auch ohne find? Ich habe jetzt beispielsweise eine 01.mp3 und 02.mp3 und möchte beide mit lame decodieren nacheinander über Pipes wieder zu lame senden, um EINE neue mp3 zu codieren. Wie müsste das shell-kommando aussehen?
Danke im Voraus
PS: ich weiß dass es auch mit ffmpeg/concat geht, aber ist auch kompliziert, da die Dateien nicht einfach als einzelne Parameter übergeben werden. Ziel ist ein kleines shell-script, dem ich als Parameter eine Liste der zu verbindenden Dateien mitteile. Da ich mp3s generell mit meinen eigenen lame Optionen nach einem bestimmten Schema codiere, möchte ich ffmpeg auch nicht nutzen
lame: mehrere mp3 zu einer Datei neucodieren mit shell kommando
Re: lame: mehrere mp3 zu einer Datei neucodieren mit shell kommando
Eigentlich sollte es ausreichen, wenn du bei den mp3 Dateien die ID3 Tags komplett entfernst und sie dann mir cat 01.mp3 02.mp3>concated.mp3 zusammenbaust.
Das wird auch mit mp3 Dateien funktionieren, die ID3-Tags enthalten, allerdings ist deine fertige Mp3-Datei dann halt unsauber
Das wird auch mit mp3 Dateien funktionieren, die ID3-Tags enthalten, allerdings ist deine fertige Mp3-Datei dann halt unsauber
Re: lame: mehrere mp3 zu einer Datei neucodieren mit shell kommando
Genau das habe ich zuerst probiert - allerdings mit mp3wrap aus dem repository. Die erzeuge mp3 ist kaputt, bzw. entspricht wohl nicht der Spezifikation. Sie wird von manchen Playern nicht abgespielt, bzw. nur der erste Titel. Die Laufzeitanzeige ist auch kaputt. So eine Datei von mp3wrap habe ich dann versucht durch lame zu jagen. Lame kann mit der Datei aber auch nichts anfangen.
Ich habe nun eine sox/lame Lösung:
bzw. als sh-script:
In ~/.local/share/applications habe ich eine entsprechende mimetype .desktop Datei angelegt, welche das script aufruft. Das Script darf allerdings keine ganzen pfade (ansonsten müsste man noch mit "basename" u.a. arbeiten), sondern nur einzelne Dateien verarbeiten, was mit %N statt %F nach Freedesktop Spezifikation funktioniert. Bzw. auf https://specifications.freedesktop.org/ ... 01s07.html steht, dass %N "deprecated" sei. Keine Ahnung warum. Funktioniert hier noch wunderbar.
sox nutzt wohl auch die lame lib, um mp3s zu erzeugen. libsox-fmt-mp3 aus dem repository muss installiert sein. Allerdings habe ich in den fu**ing sox docs nicht gefunden, wie ich die mp3 optionen einstellen kann (nutze VBR V2 in lame).
Ich habe nun eine sox/lame Lösung:
Code: Alles auswählen
sox 01.mp3 02.mp3 -t wav - | lame -V2 --vbr-new - 03.mp3
Code: Alles auswählen
mkdir merged
sox "$@" -t wav - | lame -V2 --vbr-new - "merged/$1"
sox nutzt wohl auch die lame lib, um mp3s zu erzeugen. libsox-fmt-mp3 aus dem repository muss installiert sein. Allerdings habe ich in den fu**ing sox docs nicht gefunden, wie ich die mp3 optionen einstellen kann (nutze VBR V2 in lame).