Linux bash script um mcrec .mp2 nach .mp3 zu konvertieren

Digital Recording
ebeneezer_goode
Beiträge: 1
Registriert: Sonntag 23. Juni 2002, 09:13

Linux bash script um mcrec .mp2 nach .mp3 zu konvertieren

Beitrag von ebeneezer_goode »

Nachfolgend das beschriebene Script, ich hoffe es kann jemand gebrauchen. Den encoder notlame gibts überall im Netz...

Beispiel:
Speichern als: convertmp2tomp3
Aufrufen mit: convertmp2tomp3 /opt/mp3/dbox/finished/gold/

---snip---
#!/bin/bash
for tmp0 in $1/*mp2
do
tmp1=`echo ${tmp0} | sed s/\ /_/g`
tmp2=`echo ${tmp1} | sed -e 's/mp2$/mp3/'`
mv "${tmp0}" "${tmp1}"
test ! -e $tmp2 && notlame -b 160 --quiet -h $tmp1 $tmp2
rm $tmp1
done
---snip---[/b]
masque
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 15. November 2002, 18:25

Linux Bash Script von mp2 nach mp3 mit id3 Tags

Beitrag von masque »

Hallo ebeneezer_goode
nachdem ich mit deinem Script ein paar mp2 Dateien konvertiert habe ist mir aufgefallen, dass die id3 Tags dabei verloren gehen. Ich war daher mal so frei und hab dein Script noch etwas "verändert" :wink:

Gruß
masque

Code: Alles auswählen

#!/bin/bash
# erst mal prüfen ob überhaupt mp2 dateien gefunden werden
if [ $1"/*mp2" = $1/*mp2 ]; then
	echo "Keine mp2 Dateien gefunden";
	exit 1;
fi
for tmp0 in $1/*mp2 
do 
  # ich mag keine unterstriche 
  #tmp1=`echo ${tmp0} | sed s/\ /_/g` 

  # hol die id3 tags aus dem mp2 file und merk sie dir
  let "i=0"
  for id3tag in Filename Title Artist Album Year Genre Track Comment 
  do
   id3[i]="`id3 -l -R ${tmp0} | grep "$id3tag:" | awk -F': '  '{print $2}'`"
   let ++i
  done
  tmp1=$tmp0 
  tmp2=`echo ${tmp1} | sed -e 's/mp2$/mp3/'` 

  # da ich ohne unterstrich keinen anderen namen hab
  # muss auch nichts weggeschoben werden
  #mv "${tmp0}" "${tmp1}"

  # wenn das genre nicht bekannt ist dann auf nichts setzen
  if [ "${id3[5]}" = "Unknown (255)" ]; then id3[5]="";fi

  # jetzt kanns los gehen... notlame mit id tags aufrufen und fertig...
  test ! -e "$tmp2" && notlame -b 160 -h --tt "${id3[1]}" --ta "${id3[2]}" \
       --tl "${id3[3]}" --ty "${id3[4]}" --tg "${id3[5]}" \
       --tn "${id3[6]}" --tc "${id3[7]}" --add-id3v2 --quiet "$tmp1" "$tmp2" 
  rm "$tmp1" 
done 
MASHtm
Interessierter
Interessierter
Beiträge: 80
Registriert: Samstag 11. Mai 2002, 17:12

Beitrag von MASHtm »

Nur mal so eine reine Interessensfrage...

Wieso wollt Ihr eigentlich die mp2 in mp3 wandeln? Ich habe bisher noch keinen MP3-Player entdeckt, der die Files nicht gespielt hätte, wenn man sie mit .mp3 Endung versieht. Ich kenne mit Sicherheit nicht alle Player darum die Frage ob es doch welche am Markt gibt die explizit nur Layer 3 spielen können.

Servus, MASHtm
masque
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 15. November 2002, 18:25

Beitrag von masque »

Hallo MASHtm,
erstmal ein dickes Lob für dein mcrec. Ist genau das Programm das ich gesucht habe.

Jetzt zu deiner Frage:
Zugegeben die meisten Player haben kein Problem mit den umbenannten mp3 Dateien. Lediglich wenn ich versuche mit Nero die Files als Audio CD zu brennen gibts Ärger. Ebenfalls haben manche MP3 Autoradios Probleme mit den Dateien. Für mich bedeutet das, dass ich nicht generell alles nach mp3 wandle. Das Scirpt kommt bei mir nur wenn's nicht anders geht zum Einsatz.

Ich hätte da aber noch ne Idee für mcrec: Es wäre doch nett wenn mcrec zusätzlich die Informationen welche Tracknummer und welches Genre das aufgenommene Lied hat. Die Info könnte man (mehr oder weniger gut) von freedb holen. Ich wollte das demnächst mal per bash script testen.

Gruß
masque
fraso
Interessierter
Interessierter
Beiträge: 35
Registriert: Mittwoch 10. September 2003, 09:02

Beitrag von fraso »

Hi,

warum klappt das bei MIR nicht ?

SuSE 8.2 ...... :(

Code: Alles auswählen

franke@linux:~/im/mcrec/finished/brennmich> mp2mp3.sh /home/im/mcrec/finished/brennmich/
./mp2mp3.sh: line 4:  : command not found
./mp2mp3.sh: line 5:  : command not found
./mp2mp3.sh: line 27: syntax error near unexpected token `then'
./mp2mp3.sh: line 27: `   if [ "${id3[5]}" = "Unknown (255)" ]; then id3[5]="";fi '
franke@linux:~/im/mcrec/finished/brennmich>
Schade. Kannste mir helfen ?
FraSo
masque
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 15. November 2002, 18:25

Beitrag von masque »

Hi faso,
ich denke mal deine Probleme entstehen durch das Kopieren des Codes aus der HTML Seite.
Ich hab dir die bei den Scripte mp2tomp3 und mpsort mal zu gemailt.

Gruß
masque
fraso
Interessierter
Interessierter
Beiträge: 35
Registriert: Mittwoch 10. September 2003, 09:02

Beitrag von fraso »

mpsort: line 1: id3: command not found

Bei geht der command id3 nicht. Ich habe bei Yast2 gecheckt. Die
id3lib etc. sind alle installiert.

Eine RPM im Netz habe ich nicht gefunden.

Was kann ich tun. Bin hier mal wieder am Ende meiner Weisheit!

Danke
FraSo
masque
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 15. November 2002, 18:25

Beitrag von masque »

Hi,
ok ich habe vergessen zu sagen, dass man das Programm "id3" benötigt.
Offensichtlich gibts das für SuSe nicht als RPM.
Ich werde die Scripts so umbauen, dass man ein anderes id3 Programm (z.B. id3ed) benutzen kann und werde den Download zur geänderten Version dann posten.

Gruß
masque
fraso
Interessierter
Interessierter
Beiträge: 35
Registriert: Mittwoch 10. September 2003, 09:02

Beitrag von fraso »

SUPER. KLASSE. GENIAL. DANKE.
Hai1961
Interessierter
Interessierter
Beiträge: 61
Registriert: Donnerstag 24. Januar 2002, 22:37

Beitrag von Hai1961 »

Bei mir hat das Script ein leeres Verzeichnis hinterlassen :-?

Während des Ablaufs kam so etwas (Ausschnitt, sieht bei jedem File ähnlich aus):

id3: fopen: /daten/neu/Musik/finished/lovesongs//Barbra: No such file or directory
id3: fopen: Streisand: No such file or directory
id3: fopen: -: No such file or directory
id3: fopen: Memory.mp2: No such file or directory
id3: fopen: /daten/neu/Musik/finished/lovesongs//Barbra: No such file or directory
id3: fopen: Streisand: No such file or directory
id3: fopen: -: No such file or directory
id3: fopen: Memory.mp2: No such file or directory
id3: fopen: /daten/neu/Musik/finished/lovesongs//Barbra: No such file or directory
id3: fopen: Streisand: No such file or directory
id3: fopen: -: No such file or directory
id3: fopen: Memory.mp2: No such file or directory
id3: fopen: /daten/neu/Musik/finished/lovesongs//Barbra: No such file or directory
id3: fopen: Streisand: No such file or directory
id3: fopen: -: No such file or directory
id3: fopen: Memory.mp2: No such file or directory
id3: fopen: /daten/neu/Musik/finished/lovesongs//Barbra: No such file or directory
id3: fopen: Streisand: No such file or directory
id3: fopen: -: No such file or directory
id3: fopen: Memory.mp2: No such file or directory
id3: fopen: /daten/neu/Musik/finished/lovesongs//Barbra: No such file or directory
id3: fopen: Streisand: No such file or directory
id3: fopen: -: No such file or directory
id3: fopen: Memory.mp2: No such file or directory
id3: fopen: /daten/neu/Musik/finished/lovesongs//Barbra: No such file or directory
id3: fopen: Streisand: No such file or directory
id3: fopen: -: No such file or directory
id3: fopen: Memory.mp2: No such file or directory
id3: fopen: /daten/neu/Musik/finished/lovesongs//Barbra: No such file or directory
id3: fopen: Streisand: No such file or directory
id3: fopen: -: No such file or directory
id3: fopen: Memory.mp2: No such file or directory
Could not find " ".
./convertmp2tomp3.sh: line 30: --tl: command not found
./convertmp2tomp3.sh: line 31: --tn: command not found

ID3 und notlame sind installiert.
Was läuft da falsch?
masque
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 15. November 2002, 18:25

Beitrag von masque »

Hallo Hai,
tut mir leid dass die Files futsch sind.
Das Problem liegt zum Einen daran, dass das damals gepostete Script nicht gut mit Filenamen umgehen konnte in denen Leerzeichen enthalten sind. (hab da n paar " vergessen)
Zum Anderen scheint bei deinem Aufruf ein / zu viel zu sein
id3: fopen: /daten/neu/Musik/finished/lovesongs//Barbra
-------------------------------------------------------^^
Ich habe das aktuelle Script in 2 Varianten zum download bereit gestellt.
Die Variante mit id3ed sollte den SuSe Usern helfen, da es id3 offensichtlich nicht als RPM für Suse gibt.

mp2tomp3 mit id3
http://www.unpopulaer.de/mcrec/mp2tomp3

mp2tomp3 mit id3ed
http://www.unpopulaer.de/mcrec/mp2tomp3_id3ed

Gruß
masque
Hai1961
Interessierter
Interessierter
Beiträge: 61
Registriert: Donnerstag 24. Januar 2002, 22:37

Beitrag von Hai1961 »

Danke!
Jetzt geht es besser. Allerdings erstellt mir notlame nur einen Rauschteppich mit ID3 Infos. Auch bei manuellem Gebrauch von notlame das gleiche. Liegt also nicht an Deinem Script sondern an lame. Kennt jemand das Problem.