PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mp3 -> mp3 mit lame: Id3-Tags 'mitnehmen'?



joedl
02.03.05, 16:43
Hallo zusammen

Erstmal: Erstaunt hats mich auch, aber auf dieses Problem scheint hier noch niemand gestossen zu sein. (Sufu "lame id3" gibt 1 unnützes Resultat). Auch in der Manpage von lame bin ich nicht fündig geworden.
Nunja, das Problem ist schnell erklärt. Ich will meine Mp3s von 320 kbit/s teilweise runterkodieren auf 128 kbit/s. Das geht auch ganz prima mit lame (zB. lame --preset 128 filename.mp3) Leider kommen die Id3-Tags nicht mit. Wie gesagt steht dazu nichts in der Manpage. Erstellt wurden die Mp3s mit Grip, der auch lame benutzte, der die Id3-Tags jedoch wahrscheinlich aus dem Netzt holte und per --tt --ta --tl usw. hinzufügte. Das stimmt mich zusätzlich skeptisch. Meine Frage also: Gibt es eine Möglichkeit, per lame Id3-Tags quasi "mitzukodieren"?

Thx & Gruss
Joedl

fehl-x
02.03.05, 23:30
hallo,

so weit ich weiss kann lame das nicht. aber wenn du die id-tags der quell-mp3s auslesen kannst, könntest du dir ein bash-script basteln, das das ganze automatisch erledigt.

felix

joedl
03.03.05, 17:01
Oke, danke für die Info. Werde mich mal umschauen, wie man das machen kann. Oder weiss etwa jemand gerade, wie man das macht?
Achja, wenn wir schon beim Thema lame und bash sind: Ich wollte ein Skript erstellen, welches alle Dateien aus einem Verzeichnis ausliest, und sie einzeln kodiert. Das klingt vielleicht trivial, ist es aber nicht ganz, wenn die Dateinamen Leerzeichen enthalten. Dann wird nämlich nach jedem Leerzeichen (allgemein nach jedem Whitespace) und nicht nur nach jedem File eine neuer Listeneintrag fürs Skipt generiert.

Gruss
Joedl

fuffy
04.03.05, 08:11
Hi!

Schau dir da mal mein any2mp3 (http://www.pfeifferpascal.de/any2mp3)-Skript an. Das Skript erwartet die einzelnen Dateien als Argument und encodiert sie anschließend unter Beibehaltung von Interpret und Titel neu.

Gruß
fuffy

edit: URL aktualisiert

joedl
04.03.05, 12:51
Ok, vielen Dank für die Antwort. Werde das Skript auf jeden Fall checken. :)

Gruss
Raphael

fehl-x
06.03.05, 22:48
Hi!

Schau dir da mal mein any2mp3 (http://www.pascal-pfeiffer.de/fuffy/nopaste.php/6)-Skript an. Das Skript erwartet die einzelnen Dateien als Argument und encodiert sie anschließend unter Beibehaltung von Interpret und Titel neu.

Gruß
fuffy

hab dein sript in '~/bin' aufgenommen, allerdings könnte das ein 'any2mp3 --help' oder 'any2mp3 -h' gebrauchen.

felix

joedl
07.03.05, 17:27
converts various audio formats to fit for my portable mp3 stick player

Hallo fuffy. Anregung für eine Abänderung/(Vebesserung?) deines Skriptes: Es soll die Dateien nicht in ein vorgegebenes Format inkl. Bitrate kodieren, sondern der User soll dem Skript bspw. lame-Argumente übergeben können. Oder ist das zu kompliziert.
Leider fühle ich mich noch nicht ganz fähig, einen solchen Eingriff in deinem Skript vorzunehmen, sonst könnte ich das natürlich selber versuchen. ;)

Gruss
joedl

fuffy
08.03.05, 12:49
Hi!


hab dein sript in '~/bin' aufgenommen, allerdings könnte das ein 'any2mp3 --help' oder 'any2mp3 -h' gebrauchen.
Ja, ich weiß. Es war bisher auch nur für mich persönlich gedacht. Werd mich wohl mal dran setzen.


Anregung für eine Abänderung/(Vebesserung?) deines Skriptes: Es soll die Dateien nicht in ein vorgegebenes Format inkl. Bitrate kodieren, sondern der User soll dem Skript bspw. lame-Argumente übergeben können.
Das ist bereits möglich. Setz einfach die Umgebungsvariable LAMEOPTS entsprechend.

Gruß
fuffy

fehl-x
08.03.05, 13:48
falls du dein script weiterentwickeln solltest, veröffentliche es doch hier. währe jedenfalls dran interessiert.

felix

joedl
09.03.05, 12:46
falls du dein script weiterentwickeln solltest, veröffentliche es doch hier. währe jedenfalls dran interessiert.

felix

Natürlich wird es das machen, wir sind hier ja schliesslich eine Open-Source-Community ;)

fuffy
09.03.05, 12:50
Hi!


Natürlich wird es das machen, wir sind hier ja schliesslich eine Open-Source-Community ;)
Hehe.
any2mp3 (http://www.pfeifferpascal.de/any2mp3) mit '--help'.

Gruß
fuffy

joedl
11.03.05, 16:14
Hallo fuffy

Super Sache mit dem "--help" ;)- Ich für meinen Teil bin dran, mein kleines Skript um die ID3-Tag-schreib Funktionen zu erweitern. Dabei habe ich mich natürlich in grösserem Stil bei deinem Code bedient. Aber das ist ja erlaubt. Nun, etwas begreife ich nicht ganz:
Dies ist gut nachvollziehbar:

TITLE=$(id3v2 --list "$FILE" | grep TIT2 | cut -c 44-)
Allerdings habe ich bemerkt, dass danach $TITLE noch nicht gesetzt ist. Darum habe ich die folgende Zeile aus deinem Sktipt kopiert, und dann gings. Nur begreife ich diese Zeile nicht, kannst du sie vielleicht erklären?

[ "$TITLE" ] || TITLE=$(id3v2 -l "$FILE" | grep '^Ti' | cut -b 10-39)
EDIT: Vielleicht sollte ich mich präziser ausdrücken. Was mir nich klar ist, ist die [ "$TITLE" ] Schreibweise. Zudem: Hat || die Bedeutung eines logischen oders?

Gruss
Joedl

gmk
12.03.05, 17:53
Allerdings habe ich bemerkt, dass danach $TITLE noch nicht gesetzt ist. Darum habe ich die folgende Zeile aus deinem Sktipt kopiert, und dann gings. Nur begreife ich diese Zeile nicht, kannst du sie vielleicht erklären?

[ "$TITLE" ] || TITLE=$(id3v2 -l "$FILE" | grep '^Ti' | cut -b 10-39)
Mit [ "$TITLE" ] wird überprüft ob die Variable TITLE gesetzt ist. Ist dies nicht der Fall (weil eine Datei z.B. kein ID3v2 Tag enthält), wird versucht die Variable mit dem Wert des ID3v1 zu setzen.

Das nach der ersten Deklaration die Variable noch nicht gesetzt ist, könnte also daran liegen, dass deine MP3s keinen ID3v2-Tag haben.

joedl
12.03.05, 18:35
Das ist eben das seltsame daran. Wenn ich das Kommando in der Shell ausführe, wird das korrekte ID3-Tag ausgegeben. Nur im Skript gehts dann nicht.
Aber danke für die Info.

Gruss Joedl

EDIT: Problem gelöst.

fuffy
21.03.05, 08:31
Hi!


Dabei habe ich mich natürlich in grösserem Stil bei deinem Code bedient. Aber das ist ja erlaubt.
Nur unter Beachtung der GNU GPL in der Version 2. ;)


EDIT: Problem gelöst.
Worin bestand das Problem denn?

Hab meinem Skript inzwischen Kommentare hinzugefügt.
Außerdem ist jetzt das permanente Setzen der Variablen über eine Datei namens ~/.any2mp3.conf möglich.

Gruß
fuffy

oster
21.03.05, 08:58
Hallo,
habe dafür ein kleines qt-Programm geschrieben, das auf lame und id3cp basiert.
finden kann man es hier: http://www.osteronline.de/download.html

oster
21.03.05, 12:31
Also ich wäre für Feedback dankbar, wenn das mal jemand ausprobieren möchte =)

joedl
21.03.05, 15:49
Worin bestand das Problem denn?


Ich habe den Mechanismus nicht begriffen, wann welche der zwei ID3-Tag-Abfragungsmöglichkeiten zum Einsatz kommen. Auf der Kommandozeile habe ich dann gesehen, es sich um die Unterscheidung zwischen ID3v1 und ID3v2 -Tags handelt.

joedl
21.03.05, 15:57
Also ich wäre für Feedback dankbar, wenn das mal jemand ausprobieren möchte =)

Erste schnelle Eindrücke. Das Programm trägt sich nach rpm-Instlation nicht in ein Verzeichnis ein, das sich in der (Standard-) $PATH befindet. Gut, das liegt vielleicht daran, dass ich Gnome benutze. Desweitern passt sich die Oberfläche nicht ans Qt-Design an, welches ich eingestellt habe.

Achja, getestet habe ich es noch nicht ;)

Gruss JOedl

oster
22.03.05, 10:15
Das mit der Oberfläche kann ich hier nicht nachvollziehen, das Path-Problem kann daran liegen, dass ich mich nicht genug mit der RPM-Generierung auskenne.

Aber ansonsten? Für die Zukunft ändere ich noch die Eigenart, dass man nur komplette Verzeichnisse umkodieren kann.

joedl
28.03.05, 14:04
Hallo oster

Mal ein bisschen getestet. Scheint alles prima zu funktionieren. Nettes kleines Tool ;)

Gruss Joedl

oster
28.03.05, 15:24
thx, vielleicht hab ich auch irgendwann mal Zeit und Lust, es weiterzuentwickeln ;)

joedl
29.03.05, 15:32
Wäre natürlich super ;). Aber nur nichts übereilen, es gibt schliesslich wichigeres.
Immerhin erstetzt das Tool schon jetzt mein etwas mühsames Shell-Skript.

Gorgoroth
29.03.05, 18:20
Das QT-Tool ist spitze! Danke vielmals, hier ist es schon heftig im Einsatz :)

oster
30.03.05, 18:32
Danke, schön zu hören dass man mal nicht nur was für die Tonne oder sich selber programmiert hat :)