flac2mp3 Script "aufbohren"

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
dirk11
Beiträge: 2840
Registriert: 02.07.2013 11:47:01

flac2mp3 Script "aufbohren"

Beitrag von dirk11 » 28.02.2019 16:50:37

Hi Leute,

um FLAC-Dateien in mp3 umzuwandeln, benutze ich hier bei mir das folgende Script:

Code: Alles auswählen

#! /bin/sh

for a in *.flac; do
    OUTF=${a%.flac}.mp3

    ARTIST=$(metaflac "$a" --show-tag=ARTIST | sed s/.*=//g)
    TITLE=$(metaflac "$a" --show-tag=TITLE | sed s/.*=//g)
    ALBUM=$(metaflac "$a" --show-tag=ALBUM | sed s/.*=//g)
    GENRE=$(metaflac "$a" --show-tag=GENRE | sed s/.*=//g)
    TRACKNUMBER=$(metaflac "$a" --show-tag=TRACKNUMBER | sed s/.*=//g)
    DATE=$(metaflac "$a" --show-tag=DATE | sed s/.*=//g)

    flac -c -d "$a" | lame -m j -q 0 --vbr-new -V 0 -s 44.1 - "$OUTF"
    id3v2 -t "$TITLE" -T "${TRACKNUMBER:-0}" -a "$ARTIST" -A "$ALBUM" -y "$DATE" -g "${GENRE:-12}" "$OUTF"
done
Die Quelle für dieses Script ist das Arch-Linux-Wiki.
Allerdings differiert meine oben zitierte Version etwas von der auf der Archwiki-Seite, vermutlich habe ich einen Vorgänger davon.

Dazu habe ich ein paar Fragen:
a) kann mir jemand erklären, was die Unterschiede bewirken?
OUTF=${a%.flac}.mp3
vs.
OUTF="${a[@]/%flac/mp3}"

und die Codierzeile selbst:
flac -c -d "$a" | lame -m j -q 0 --vbr-new -V 0 -s 44.1 - "$OUTF" id3v2 -t "$TITLE" -T "${TRACKNUMBER:-0}" -a "$ARTIST" -A "$ALBUM" -y "$DATE" -g "${GENRE:-12}" "$OUTF"
vs.
flac -c -d "$a" | lame -V0 --add-id3v2 --pad-id3v2 --ignore-tag-errors --ta "$ARTIST" --tt "$TITLE" --tl "$ALBUM" --tg "${GENRE:-12}" --tn "${TRACKNUMBER:-0}" --ty "$DATE" - "$OUTF"

So ganz durchblicke ich das noch nicht. Mir geht es derzeit allerdings mehr um den hinteren Teil, ab da, wo $TITLE bzw. $ARTIST stehen, bzw. wieso steht in der von mir genutzten ersten Variante zweimal "$OUTF"?
Laut mediainfo $DATEI und file $DATEI sind die von der jeweiligen Version erzeugten mp3 jedenfalls identisch.

Außerdem würde ich das ganze gerne "aufpimpen", bin aber nun wirklich kein Scripter:
1. die entstehenden *.mp3 sollen in einem Unterverzeichnis landen, welches denselben Namen wie das aktuelle Verzeichnis trägt (dann muss ich die nicht einzeln "rausfischen")
2. wenn im FLAC ein Bild enthalten ist (Album-Cover), dann soll das auch in das mp3 übernommen werden.

Wie bekomme ich das hin?

Benutzeravatar
jph
Beiträge: 1081
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: flac2mp3 Script "aufbohren"

Beitrag von jph » 01.03.2019 18:28:21

Deine Frage zum Script kann ich nicht beantworten, aber möglicherweise ist Debiansoundconverter für dich von Interesse. Damit kannst du grafisch alles mögliche unter Mitnahme der Metadaten (inkl. Cover Art) hin- und herkonvertieren.

dirk11
Beiträge: 2840
Registriert: 02.07.2013 11:47:01

Re: flac2mp3 Script "aufbohren"

Beitrag von dirk11 » 01.03.2019 19:08:51

Nö, ist es nicht. Ich nutze das Script ja gerade weil es eben nicht so ein Mausgeschubse ist. Das Script ist schneller und übersichtlicher, weil es genau das macht, was ich brauche: die flac im aktuellen Verzeichnis wandeln. Ich tippe im aktuellen Verzeichnis im terminal flac2mp3 und fertig. Dafür brauche ich keine wie auch immer gearteten Optionsboxen.
Es fehlt nur die Mitnahme eventuell vorhandener cover-Fotos.

Benutzeravatar
CH777
Beiträge: 1466
Registriert: 27.05.2008 16:37:17

Re: flac2mp3 Script "aufbohren"

Beitrag von CH777 » 01.03.2019 19:42:17

dirk11 hat geschrieben: ↑ zum Beitrag ↑
28.02.2019 16:50:37
kann mir jemand erklären, was die Unterschiede bewirken?
OUTF=${a%.flac}.mp3
vs.
OUTF="${a[@]/%flac/mp3}"
Das macht beides das gleiche: Es ändert den Suffix von .flac zu .mp3
dirk11 hat geschrieben: ↑ zum Beitrag ↑
28.02.2019 16:50:37
wieso steht in der von mir genutzten ersten Variante zweimal "$OUTF"?
Weil es zwei unabhängige Befehle sind, zuerst wird die Datei von Debianlame zu mp3 konvertiert, dann werden mit Debianid3v2 die Tags in die entstandene Datei geschrieben. Deshalb sind es auch im Script zwei Zeilen und nicht eine.
In der anderen Variante schreibt lame die Tags direkt bei der Konvertierung. Sollte keinen Unterschied machen.


EDIT:
Debianffmpeg konvertiert die Tags automatisch, auch das Cover. Das Script wäre dann ungefähr so:

Code: Alles auswählen

#! /bin/sh

for a in *.flac; do
    OUTF=${a%.flac}.mp3 
    
    ffmpeg -i "$a" "$OUTF"
done 
Die gewünschten Kodierungsoptionen musst du natürlich noch hinzufügen.

dirk11
Beiträge: 2840
Registriert: 02.07.2013 11:47:01

Re: flac2mp3 Script "aufbohren"

Beitrag von dirk11 » 01.03.2019 21:48:27

Danke, das hilft schon beim Verständnis.
CH777 hat geschrieben: ↑ zum Beitrag ↑
01.03.2019 19:42:17
dirk11 hat geschrieben: ↑ zum Beitrag ↑
28.02.2019 16:50:37
kann mir jemand erklären, was die Unterschiede bewirken?
OUTF=${a%.flac}.mp3
vs.
OUTF="${a[@]/%flac/mp3}"
Das macht beides das gleiche: Es ändert den Suffix von .flac zu .mp3
Also "nur" andere Syntax oder auch andere Funktionalität?
dirk11 hat geschrieben: ↑ zum Beitrag ↑
28.02.2019 16:50:37
wieso steht in der von mir genutzten ersten Variante zweimal "$OUTF"?
Weil es zwei unabhängige Befehle sind, zuerst wird die Datei von Debianlame zu mp3 konvertiert, dann werden mit Debianid3v2 die Tags in die entstandene Datei geschrieben. Deshalb sind es auch im Script zwei Zeilen und nicht eine.
In der anderen Variante schreibt lame die Tags direkt bei der Konvertierung. Sollte keinen Unterschied machen.
Korrekt, beide Varianten ergeben das gleiche Ergebnis.
Dennoch würde ich gerne verstehen, warum im archwiki das "alte", von mir erstgenannte Script durch das neuere eresetzt wurde. Sowas macht man doch idR nicht anlasslos!?
EDIT:
Debianffmpeg konvertiert die Tags automatisch, auch das Cover. Das Script wäre dann ungefähr so:

Code: Alles auswählen

#! /bin/sh

for a in *.flac; do
    OUTF=${a%.flac}.mp3 
    
    ffmpeg -i "$a" "$OUTF"
done 
Die gewünschten Kodierungsoptionen musst du natürlich noch hinzufügen.
Ich habe extra das Script mit lame genommen, weil ich lame eine bessere Rechenqualität als ffmpeg zutraue. Außerdem war 2011, als ich das Script eretmalig entdeckt habe, ffmpeg in Debian nicht wirklich in einem aktuellen Zustand, wenn überhaupt vorhanden. Damals musste man für sowas quasi zwingend auf Marillats repo zurückgreifen. Oder ist meine Sorge unbegründet?

Benutzeravatar
CH777
Beiträge: 1466
Registriert: 27.05.2008 16:37:17

Re: flac2mp3 Script "aufbohren"

Beitrag von CH777 » 02.03.2019 09:00:50

dirk11 hat geschrieben: ↑ zum Beitrag ↑
01.03.2019 21:48:27
Ich habe extra das Script mit lame genommen, weil ich lame eine bessere Rechenqualität als ffmpeg zutraue. Außerdem war 2011, als ich das Script eretmalig entdeckt habe, ffmpeg in Debian nicht wirklich in einem aktuellen Zustand, wenn überhaupt vorhanden. Damals musste man für sowas quasi zwingend auf Marillats repo zurückgreifen. Oder ist meine Sorge unbegründet?
ffmpeg ist heutzutage wieder ganz normal in Debian verfügbar.

willy4711

Re: flac2mp3 Script "aufbohren"

Beitrag von willy4711 » 02.03.2019 10:04:37

dirk11 hat geschrieben: ↑ zum Beitrag ↑
01.03.2019 19:08:51
Nö, ist es nicht. Ich nutze das Script ja gerade weil es eben nicht so ein Mausgeschubse ist. Das Script ist schneller und übersichtlicher, weil es genau das macht, was ich brauche: die flac im aktuellen Verzeichnis wandeln
Ich finde das ganz schön arrogant gegenüber Nutzern von einer GUI, die das aus gutem Grund tun. Zumal du das Skript ja auch nur abgeschrieben hast.

Das Skript erzeugt keinerlei Tags und natürlich auch - wie du das ja selbst schon bemerkt hast - dann auch nicht das Cover.

Um Tags zu erzeugen bräuchtest du also erneut ein Tool was aus dem Dateinamen die Tags erzeugt, damit sie in einem Player vernünftig angezeigt
werden können.
Das ist dann wahrscheinlich Mausgeschubse.
Aber vielleicht ist hier jemand der das auch per Code - Zeile kann ?


Hier dann mal von einem Maus Schubser ein Code den du benutzen kannst, um ihn in dein Skript einzubauen
Voraussetzung ist natürlich, das die Dateien vorher auch getaggt waren:

Code: Alles auswählen

ffmpeg -y -i "Dateiname.flac" -vn -acodec libmp3lame -b:a 320k -ac 2 -ar 48000 Dateiname.mp3"
Habe explizit auch noch lame genommen, da du ja ffmpeg nicht zutraust das vernünftig zu machen

Der Unterschied ist dann dieser:

Der kopierte Code aus der Arch-Wiki erzeugt dieses:

Code: Alles auswählen

General
Complete name                            : /home/willy/Musik/Mississippi Burnin' Blues/mp3/15 - Sweet Miss Coffy - Back In The Streets Again.mp3
Format                                   : MPEG Audio
File size                                : 7.01 MiB
Duration                                 : 3 min 39 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 268 kb/s
Writing library                          : LAME3.100

Audio
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Format settings                          : Joint stereo / MS Stereo
Duration                                 : 3 min 39 s
Bit rate mode                            : Variable
Bit rate                                 : 268 kb/s
Minimum bit rate                         : 32.0 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 44.1 kHz
Frame rate                               : 38.281 FPS (1152 SPF)
Compression mode                         : Lossy
Stream size                              : 7.01 MiB (100%)
Writing library                          : LAME3.100
Encoding settings                        : -m j -V 0 -q 0 -lowpass 22.1 --vbr-mt -b 32
Der Mausschubser- Code vom ffmulticonverter erzeugt das mit Tags und Cover

Code: Alles auswählen

General
Complete name                            : /home/willy/Musik/Mississippi Burnin' Blues/15 - Sweet Miss Coffy - Back In The Streets Again.mp3
Format                                   : MPEG Audio
File size                                : 8.37 MiB
Duration                                 : 3 min 39 s
Overall bit rate mode                    : Constant
Overall bit rate                         : 320 kb/s
Album                                    : Mississippi Burnin' Blues
Track name                               : Back In The Streets Again
Track name/Position                      : 15
Performer                                : Sweet Miss Coffy
Genre                                    : Blues
Recorded date                            : 1993
Writing library                          : LAME3.100
BPM                                      : 95
REPLAYGAIN_TRACK_GAIN                    : -3.09 dB
PEAK LEVEL (SAMPLE)                      : -1,6 dB; -3,0 Left; -1,6 Right
VOLUME LEVEL (R128)                      : -8,0921201705932617
REPLAYGAIN_TRACK_PEAK                    : 0.832000
DYNAMIC RANGE (DR)                       : 11
PEAK LEVEL (R128)                        : -1,6 dBTP; -2,9 Left; -1,6 Right
DYNAMIC RANGE (R128)                     : 2,4927000999450684
VOLUME LEVEL (REPLAYGAIN)                : -3,0921199321746826
COMMENT                                  : Track 15; EAC (T&C In Burst Mode)

Audio
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Format settings                          : Joint stereo
Duration                                 : 3 min 39 s
Bit rate mode                            : Constant
Bit rate                                 : 320 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 48.0 kHz
Frame rate                               : 41.667 FPS (1152 SPF)
Compression mode                         : Lossy
Stream size                              : 8.37 MiB (100%)
Writing library                          : LAME3.100

EDIT

Zugabe mit geändertem Ausgabe- Pfad und schickem Protokoll: NoPaste-Eintrag40648

dirk11
Beiträge: 2840
Registriert: 02.07.2013 11:47:01

Re: flac2mp3 Script "aufbohren"

Beitrag von dirk11 » 02.03.2019 11:46:37

CH777 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 09:00:50
ffmpeg ist heutzutage wieder ganz normal in Debian verfügbar.
Ich meinte die Sorge bzgl. des Qualitätsvergleich. Das ffmpeg verfügbar ist, ist schon klar.
Zuletzt geändert von dirk11 am 02.03.2019 12:17:57, insgesamt 1-mal geändert.

dirk11
Beiträge: 2840
Registriert: 02.07.2013 11:47:01

Re: flac2mp3 Script "aufbohren"

Beitrag von dirk11 » 02.03.2019 12:17:32

Ach Willy...
willy4711 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 10:04:37
dirk11 hat geschrieben: ↑ zum Beitrag ↑
01.03.2019 19:08:51
Nö, ist es nicht. Ich nutze das Script ja gerade weil es eben nicht so ein Mausgeschubse ist. Das Script ist schneller und übersichtlicher, weil es genau das macht, was ich brauche: die flac im aktuellen Verzeichnis wandeln
Ich finde das ganz schön arrogant gegenüber Nutzern von einer GUI, die das aus gutem Grund tun.
Und ich finde Kommentare wie diesen von Dir unglaublich anstrengend, weil Du meine Aussage in keinster Weise verstanden hast, sondern Dich nur am Wort "Mausgeschubse" aufhängst!
Ich bin nicht "arrogant" gegenüber Nutzern einer GUI, schließlich nutze ich selbst ja auch eine, genausowenig wie Rolltreppenbenutzer arrogant gg. Treppenbenutzern sind.
Ich brauche in diesem Fall keine GUI, die erstmal starten muss, und wo ich Einstellungen wählen/setzen muss, wenn ich ein tool habe, welches genau den einen Job macht, den es soll, schlicht indem ich es aufrufe. Und da ich den Rest (Dateien kopieren, sortieren uswusf.) auch im Terminal mache - warum sollte ich, nur um "mache aus einem FLAC eine MP3" auszuführen, eine GUI aufrufen!?
Zumal du das Skript ja auch nur abgeschrieben hast.
Das hat jetzt genau was mit dem Thema zu tun? Ich habe nie behauptet, daß ich das selbst geschrieben habe.
Können wir diesen OT-Teil damit dann auch bitte beenden!?
#######################################################
Das Skript erzeugt keinerlei Tags und natürlich auch - wie du das ja selbst schon bemerkt hast - dann auch nicht das Cover.
Ich sag's ja, Du hast überhaupt nicht verstanden, worum es mir geht.
Das Script soll auch gar nichts selbst erzeugen! Es soll nur auch die von mir genannten (fehlenden) Daten beim Konvertieren aus dem FLAC in das mp3 mit übertragen, was es jetzt eben noch nicht macht.
Das liegt (so habe ich das zumindest verstanden) daran, dass das Script nur vorgegebene Felder mit umwandelt. Ich muss also in dem Script (so vermute ich) die von mir gewünschten Felder hinzufügen - da ist mir eben nicht ganz klar, wie genau das geht.

Besser wäre es, wenn das Script stattdessen nachschauen würde "welche mit Inhalt gefüllten id3V2 Tag-Felder gibt es im FLAC" und dann genau all diese mit wandelt. Das es das nicht macht, das ist im Kern mein Problem!

Um Tags zu erzeugen
...was ich überhaupt nicht will
Aber vielleicht ist hier jemand der das auch per Code - Zeile kann ?
Genau deshalb habe ich das ja hier veröffentlicht, weil ich hoffe, dass sich jemand mit der Kommandozeile beschäftigt. Und nicht, um den Hinweis zu bekommen, dass es dazu GUI-Software gibt, die für meinen Anwendungsfall vollkommen überladen ist.
Wenn ich die id3-Tags editieren will, nutze ich easyTAG.
Habe explizit auch noch lame genommen, da du ja ffmpeg nicht zutraust das vernünftig zu machen
ffmpeg war, als ich das Script erstmal genutzt habe, definitiv nicht auf dem Niveau von lame und zumindest zeitweise auch nicht im stable-repo (was ich im übrigen auch extra erklärend dazugeschrieben habe, um so Kommentare wie diesen von Dir zu vermeiden). Insofern ist das eine ungeklärte Frage, kein "zutrauen", und Deine merkwürdige Textspitze obsolet, da (mal wieder) am Thema vorbei.
Der Unterschied ist dann dieser:
Der Mausschubser- Code vom ffmulticonverter erzeugt das mit Tags und Cover
'Zig Sachen, die ich überhaupt nicht benötige und auch gar nicht angefragt habe. Sind die in CAPS-LOCK geschriebenen Elemente (replay-gain und folgende) nur Info-Elemente, oder werden die Dateien an den Stellen manipuliert?

willy4711

Re: flac2mp3 Script "aufbohren"

Beitrag von willy4711 » 02.03.2019 12:18:47

ffmpeg benutzt auch mit den Standard - Einstellungen Debianlame .

Gewollt dannDebian libmp3lame0 - wie oben - oder anderen installierten Codec

Code: Alles auswählen

dpkg -l *lame*
ii  lame              1:3.100-dmo1  amd64        Open source MP3 encoder
un  liblame0          <keine>       <keine>      (keine Beschreibung vorhanden)
un  libmp3lame-dev    <keine>       <keine>      (keine Beschreibung vorhanden)
ii  libmp3lame0:amd64 1:3.100-dmo1  amd64        Shared libraries for MP3 encodi
ii  libtwolame0:amd64 1:0.3.13-dmo3 amd64        MPEG Audio Layer 2 encoding lib
ii  twolame           1:0.3.13-dmo3 amd64        MPEG Audio Layer 2 encoder (com
Das kann man auch ohne weiteres in der Doku nachlesen und muss keine falschen Gerüchte verbreiten

https://ffmpeg.org/general.html#Suppor ... r-Features
MP3 (MPEG audio layer 3)
encoding supported also through external library TwoLAME
encoding supported through external library LAME,
ADU MP3 and MP3onMP4 also supported

willy4711

Re: flac2mp3 Script "aufbohren"

Beitrag von willy4711 » 02.03.2019 12:36:31

dirk11 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 12:17:32
Das liegt (so habe ich das zumindest verstanden) daran, dass das Script nur vorgegebene Felder mit umwandelt. Ich muss also in dem Script (so vermute ich) die von mir gewünschten Felder hinzufügen - da ist mir eben nicht ganz klar, wie genau das geht.
Mein Beispiel war getaggt. Wie oben beschrieben, liest das Skript keinen Tags sondern gibt lediglich den Dateinamen weiter
(so war es zumindest bei mir. Ergänzt: Erklärung: s.U.)
dirk11 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 12:17:32
'Zig Sachen, die ich überhaupt nicht benötige und auch gar nicht angefragt habe. Sind die in CAPS-LOCK geschriebenen Elemente (replay-gain und folgende) nur Info-Elemente, oder werden die Dateien an den Stellen manipuliert?
Sorry, aber meine Dateien sind halt so getaggt. Weil mein Musik-Programm das analysiert und in die Meta-Daten schreibt. Ganz normal..
Ffmpeg hat die halt übernommen, wie es sein soll.

Dein skript verarbeitet einen getaggten Song so:

Code: Alles auswählen

$ /home/willy/Dokumente/Skripte/flacmp3

flac 1.3.2
Copyright (C) 2000-2009  Josh Coalson, 2011-2016  Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

14 - Sweet Miss Coffy - Baby Don't Do It.flac: done         
LAME 3.100 64bits (http://lame.sf.net)
polyphase lowpass filter disabled
Encoding <stdin> to 14 - Sweet Miss Coffy - Baby Don't Do It.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0)
/home/willy/Dokumente/Skripte/flacmp3: 14: /home/willy/Dokumente/Skripte/flacmp3: id3v2: not found
Warum das Skript die Tags nicht findet -- keine Ahnung. Interessiert mich auch nicht weiter, da ffmpeg es klaglos macht.

Mache es mit ffmpeg und alles ist gut.

Ach so vergessen:

Flac benutzt als Metadatenformat Vorbis comment. Insofern hast du da mit deinem Skript eh schlechte Karten. (siehe Fehlermeldung id3v2: not found)

dirk11
Beiträge: 2840
Registriert: 02.07.2013 11:47:01

Re: flac2mp3 Script "aufbohren"

Beitrag von dirk11 » 02.03.2019 13:24:02

willy4711 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 12:36:31
Warum das Skript die Tags nicht findet -- keine Ahnung. Interessiert mich auch nicht weiter, da ffmpeg es klaglos macht.
Das wird dann wohl an Deiner Umgebung liegen.
Mache es mit ffmpeg und alles ist gut.

Flac benutzt als Metadatenformat Vorbis comment. Insofern hast du da mit deinem Skript eh schlechte Karten. (siehe Fehlermeldung id3v2: not found)
Ich weiß ja nicht, was Du mit "schlechte Karten" meinst, aber das Script funktioniert seit Jahren!

willy4711

Re: flac2mp3 Script "aufbohren"

Beitrag von willy4711 » 02.03.2019 13:35:12

dirk11 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 13:24:02
Ich weiß ja nicht, was Du mit "schlechte Karten" meinst, aber das Script funktioniert seit Jahren!
Dann machst du eben seit Jahren was falsch, oder hast keine richtige Musiksammlung.
Flac Dateien, die nach Standard getaggt sind, kann es nicht lesen. Sonst hätte es ja auch die Covers übernommen.

Meine nach Standard getaggten Flac - Dateien kann es offensichtlich gar nicht lesen.

Etwas mehr über Metadaten /Tagging-Formate:
https://www.audiohq.de/viewtopic.php?id=22
https://de.wikipedia.org/wiki/Free_Loss ... #Verfahren

und hier:
https://hydrogenaud.io/index.php/topic,3280.0.html

wanne
Moderator
Beiträge: 7548
Registriert: 24.05.2010 12:39:42

Re: flac2mp3 Script "aufbohren"

Beitrag von wanne » 02.03.2019 14:09:04

So ein paar Anmerkungen:
Ich habe extra das Script mit lame genommen, weil ich lame eine bessere Rechenqualität als ffmpeg zutraue.
Das ist Quatsch. Sowohl das Kommando ffmpeg wie auch lame nutzen die exakt gleiche lib zum encodieren. /usr/lib/x86_64-linux-gnu/libmp3lame.so.0 aus Paket Debianlibmp3lame0. Mit den richtigen Parametern bekommst du exakt den gleichen Audiostream. ffmepg hat nur ein bisschen eine andere Syntax und kann etwas mehr was Metadaten und muxing (das einbetten des Audiostream in die Daiten (zusammen mit einem Video)) angeht.
Ansonsten finde ich das, die deutlich elegantere Variante: ${a%.flac}.mp3. Es entfernt die Endung .flac (mit Punkt) und hängt dann .mp3 dran. Das funktioniert auch in weitestgehend jeder Shell.
"${a[@]/%flac/mp3}" ist bash und ersetzt in allen Elementen von a (da ist obviosly nur eines drin: Der Dateiname.) die Endung flac durch mp3 und setzt die dann zu einem String zusammen.
Da in mp3 keine Leerzeichen drin sind, sind die Anführungszeichen IMHO völlig sinnlos. Genau wie die Array-Syntax. ${a/%flac/mp3} würde genau das selbe machen.
Den einzigen funktionalen Unterschied, den ich sehe ist, dass letzteres nur in der bash läuft.
Die untere Variante würde daneben noch mit Arrays umgehen können und auch Dateinamen ohne Punkt ersetzen. (Also z.B. nameflac in namemp3.) Beides ist irrelevant, weil die for schleife oben kein Arrays produziert und nur Dateien liefert, die auf .flac enden.
Sonst: -m j ist eh default, wen man -V0 setzt. Deswegen ist das rausgeflogen. --vbr-new ist eh defalut und deswegen sinnlos. Ich nehme an, dass war in früheren lame-Versionen nicht so.
Ansonsten würde ich auf jeden Fall die ffmpeg Variante vorziehen:
Die untere Wirft Metadaten weg, die nicht eine der 6 genannten sind (Albumcover usw.) fällt auf die Nase, wenn der Input mit 44kHz gesampelt wurde.
rot: Moderator wanne spricht, default: User wanne spricht.

willy4711

Re: flac2mp3 Script "aufbohren"

Beitrag von willy4711 » 02.03.2019 14:33:49

Die Untere Variante

Code: Alles auswählen

flac -c -d "$a" | lame -V0 --add-id3v2 --pad-id3v2 --ignore-tag-errors --ta "$ARTIST" --tt "$TITLE" --tl "$ALBUM" --tg "${GENRE:-12}" --tn "${TRACKNUMBER:-0}" --ty "$DATE" - "$OUTF"
Kann auch Vorbis-Comment lesen (--pad-id3v2 --ignore-tag-errors) - das Cover fällt hinten runter.
Die erste Variante (id3v2 -t ) liest gar keine Tags

willy4711

Re: flac2mp3 Script "aufbohren"

Beitrag von willy4711 » 02.03.2019 15:04:08

Aufgebohrt:

Code: Alles auswählen

#! /bin/sh

for a in *.flac; do
    OUTF=${a%.flac}.mp3        
    
    ffmpeg -y -i "$a" -vn -acodec libmp3lame -b:a 320k -ac 2 -ar 44100 "$OUTF"
done
Ergebniss:

Code: Alles auswählen

ls -al /home/willy/Musik/ |grep "mp3\|flac"
-rw-r--r--  1 willy willy      38190143 Mär  1 18:47 05 - Cadillac George Harris - Feel Like Breaking Up Somebody's Home.flac
-rw-r--r--  1 willy willy      15346083 Mär  2 14:48 05 - Cadillac George Harris - Feel Like Breaking Up Somebody's Home.mp3
-rw-r--r--  1 willy willy      22842330 Mär  1 18:47 06 - Cadillac George Harris - Dangerous Woman.flac
-rw-r--r--  1 willy willy       8486309 Mär  2 14:48 06 - Cadillac George Harris - Dangerous Woman.mp3
-rw-r--r--  1 willy willy      23966495 Mär  1 18:47 07 - Cadillac George Harris - That's Alright.flac
-rw-r--r--  1 willy willy       9849900 Mär  2 14:48 07 - Cadillac George Harris - That's Alright.mp3
-rw-r--r--  1 willy willy      25000181 Mär  1 18:47 08 - George Jackson - I Want That Love Back.flac
-rw-r--r--  1 willy willy       9591807 Mär  2 14:48 08 - George Jackson - I Want That Love Back.mp3
-rw-r--r--  1 willy willy      28413504 Mär  1 18:47 09 - George Jackson - Strugglin' Lady.flac
-rw-r--r--  1 willy willy      11326333 Mär  2 14:49 09 - George Jackson - Strugglin' Lady.mp3
-rw-r--r--  1 willy willy      23416985 Mär  1 18:47 10 - George Jackson - Heart To Heart Collect.flac
-rw-r--r--  1 willy willy       9551061 Mär  2 14:49 10 - George Jackson - Heart To Heart Collect.mp3
-rw-r--r--  1 willy willy      34005749 Mär  1 18:47 14 - Sweet Miss Coffy - Baby Don't Do It.flac
-rw-r--r--  1 willy willy      12702469 Mär  2 14:49 14 - Sweet Miss Coffy - Baby Don't Do It.mp3
Alles drin alles dran
2079

LOG : NoPaste-Eintrag40649

Korrektur:

dieses Skript produziert zumindest bei mir auch die Covers. Hatte zuerst ein noch nicht fertig getagtes File erwischt :facepalm:
Das Ergebnis ist identisch (Filename / Tag) mit dem Einzeiler oben.

Code: Alles auswählen

#! /bin/sh

for a in *.flac; do
    OUTF=${a%.flac}.mp3

    ARTIST=$(metaflac "$a" --show-tag=ARTIST | sed s/.*=//g)
    TITLE=$(metaflac "$a" --show-tag=TITLE | sed s/.*=//g)
    ALBUM=$(metaflac "$a" --show-tag=ALBUM | sed s/.*=//g)
    GENRE=$(metaflac "$a" --show-tag=GENRE | sed s/.*=//g)
    TRACKNUMBER=$(metaflac "$a" --show-tag=TRACKNUMBER | sed s/.*=//g)
    DATE=$(metaflac "$a" --show-tag=DATE | sed s/.*=//g)
        
    flac -c -d "$a" | lame -V0 --add-id3v2 --pad-id3v2 --ignore-tag-errors --ta "$ARTIST" --tt "$TITLE" --tl "$ALBUM" --tg "${GENRE:-12}" --tn "${TRACKNUMBER:-0}" --ty "$DATE" - "$OUTF"
done

dirk11
Beiträge: 2840
Registriert: 02.07.2013 11:47:01

Re: flac2mp3 Script "aufbohren"

Beitrag von dirk11 » 02.03.2019 20:49:13

willy4711 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 13:35:12
dirk11 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 13:24:02
Ich weiß ja nicht, was Du mit "schlechte Karten" meinst, aber das Script funktioniert seit Jahren!
Dann machst du eben seit Jahren was falsch, oder hast keine richtige Musiksammlung.
Wenn Du meinst...
Flac Dateien, die nach Standard getaggt sind, kann es nicht lesen. Sonst hätte es ja auch die Covers übernommen.
Jetzt mal ganz ehrlich: ich hätte es sinnvoller gefunden, wenn Du sofort schreibst, dass Du überhaupt keine Ahnung von dem hast, was Du hier schreibst, dann wäre ich da auch nicht weiter drauf eingegangen.
Im Gegensatz zu Dir bin ich mittlerweile (durch Nachdenken und nochmaliges genaues Anschauen) darauf gekommen, daß das Script deshalb die Cover nicht übernimmt, weil das überhaupt nicht integriert ist. Es steht sogar drin, was es genau übernimmt:
$TITLE $TRACKNUMBER $ARTIST $ALBUM $DATE $GENRE
Aber anstatt zuzugeben, dass Du nicht mal ansatzweise - und damit noch weniger als ich - begriffen hast, was das Script macht, ist es natürlich der einfachere und bequemere Weg, sich erstmal über ein einziges Wort zu echauffieren ("Mausgeschubse") und damit gleich die ganze Fragestellung zu torpedieren; einfach mal in den Raum zu werfen und zu behaupten, man hätte "keine richtige Musiksammlung"; oder die FLAC-Dateien entsprächen "nicht dem Standard".
Was Du hier machst, ist keine sachliche Diskussion und schon gar keine Hilfe, sondern einfach nur eigene Unfähigkeit durch "Anstacheln" zu vertuschen.
Oder, Klartext:
Ich finde Dein Verhalten absolut Scheiße! Deine ständigen unsachlichen Sticheleien nerven, weil sie nur zu Steit und Zwist führen, indem Du damit andere provozierst!
Meine nach Standard getaggten Flac - Dateien kann es offensichtlich gar nicht lesen.
Dann sitzt das Problem wohl bei Dir vor der Tastatur.
Ich weiß auch nicht, was für Dich "Standard" ist, jedenfalls sind meine FLAC von meinen eigenen CDs mit abcde "gerippt" und mit id3tag versehen, welches zum rippen cdparanoia verwendet. Da einfach mal mehrfach(!) hinzuwerfen, das sei "nicht nach Standard", ist schon einen ganz dicken Strahl pissen für jemanden, der ganz offensichtlich noch weniger Ahnung hat als ich und der weder meine Sammlung noch die Art und Weise, wie ich sie gerippt habe, kennt.
Etwas mehr über Metadaten /Tagging-Formate:
Da würde ich Dir dann doch mal empfehlen, das selbst zu lesen. Danach kannst Du mir dann ja vielleicht auch erklären, was diese für meine Fragestellung zum im ersten posting gezeigten shell-script absolut nutzlosen Links sollen.
Nochmal für Dich:
Ich habe hier Fragen zum Shell-Scripting gestellt, Du hingegen kommst mit Gerede zu "nicht standardkonformen tags". Wenn Du in eine Autowerkstatt gehst, einen stotternden Motor als Problem beschreibst und dann zur Antwort bekommst, Du sollst erstmal Deine zerkratzte Windschutzscheibe austauschen, wie würdest Du dem Werkstattmeister gegenübertreten? Da ist meine Reaktion hier noch human gegen...

EDIT:
Das einzige, was noch sein kann ist, das easyTAG die Cover nicht "standard-konform" hinzufügt, denn einige der FLAC haben keine automatisch hinzugefügten Cover-Bilder, sondern solche, die ich nachträglich mit easyTAG eingefügt habe. Was ich aber nicht glaube, da sie auf meinen Abspielgeräten angezeigt werden.

willy4711

Re: flac2mp3 Script "aufbohren"

Beitrag von willy4711 » 02.03.2019 23:34:22

dirk11 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 20:49:13
Aber anstatt zuzugeben, dass Du nicht mal ansatzweise - und damit noch weniger als ich - begriffen hast, was das Script macht, ist es natürlich der einfachere und bequemere Weg, sich erstmal über ein einziges Wort zu echauffieren ("Mausgeschubse") und damit gleich die ganze Fragestellung zu torpedieren; einfach mal in den Raum zu werfen und zu behaupten, man hätte "keine richtige Musiksammlung"; oder die FLAC-Dateien entsprächen "nicht dem Standard".
Das erste Sript liefert ganz einfach einen Fehler, weil es die Tags nicht lesen kann.
Hab die Terminal-Ausgabe ja hinzugefügt.

Das zweite Skript (die entschiedenen Unterschiede habe ich benannt) liefert keinen Fehler und liest die Metadaten (Vorbis-Comment) in der
verlangten Menge incl. Covers, aus. Auch wenn du es auch nicht wahrhaben willst. Warum das Cover ausgelesen wird - Keine Ahnung.

Das dritte Skript (ffmpeg) macht das automatisch und wurde ja von anderen ganz am Anfang des Threads vorgeschlagen. Darauf bist du aber
nicht eingegangen. Außer mit dem (falschen) Hinweis auf Qualitätsunterschiede.


Vielleicht solltest du dich mal mit dem genauen Unterschied zwischen Vorbis-Comment und ID3v2 (speziell Padding ) beschäftigen, und warum
man flac- Dateien nicht mit ID3v2 taggen sollte.
Quellen über die daraus entstehenden Probleme hatte ich auch beigefügt.
dirk11 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 20:49:13
Da einfach mal mehrfach(!) hinzuwerfen, das sei "nicht nach Standard", ist schon einen ganz dicken Strahl pissen für jemanden, der ganz offensichtlich noch weniger Ahnung hat als ich und der weder meine Sammlung noch die Art und Weise, wie ich sie gerippt habe, kennt.
Na ja das fällt wohl auf dich selbst zurück. Empfehlung: Nachlesen über Flac- Container.
dirk11 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 20:49:13
Ich habe hier Fragen zum Shell-Scripting gestellt, Du hingegen kommst mit Gerede zu "nicht standardkonformen tags". Wenn Du in eine Autowerkstatt gehst, einen stotternden Motor als Problem beschreibst und dann zur Antwort bekommst, Du sollst erstmal Deine zerkratzte Windschutzscheibe austauschen, wie würdest Du dem Werkstattmeister gegenübertreten? Da ist meine Reaktion hier noch human gegen...
Da hast du einfach nicht verstanden, wo die Zusammenhänge sind. Aber jetzt wiederhole ich mich.

Noch ein Wort zu meinen "ständigen unsachlichen Sticheleien".

Ich empfinde es als diskriminierend, wenn ich (und andere) als Mausschubser bezeichnet werden, denn nichts anderes steckt dahinter. Es scheint mir, das
der Umgang mit der Konsole als etwas "höherwertiges" angesehen wird, und auf Anwender, die die GUI verwenden wollen herabgesehen wird.
Nun hat die Konsole sicherlich ihre Berechtigung was ich überhaupt nicht abstreiten will.
Ich gestehe selbstverständlich auch jedem das Recht zu, "just for fun" sich mit Skripten zu beschäftigen, wenn sie auch - wie in diesem Fall -
wenig oder gar nichts zum produktiven Umgang mit Musikdateien beitragen. Aber dann sollte man es auch so benennen.
Mausschubser ist der falsche Ausdruck.
Ich verwalte über 100 000 Musikdateien und müsste mit dem Klammerbeutel gepudert sein, wenn ich das über die Konsole machen wollte.

willy4711

Re: flac2mp3 Script "aufbohren"

Beitrag von willy4711 » 03.03.2019 11:28:18

Noch ein Paar Ergänzungen:
Das Skripten macht ja nur dann Sinn, wenn hinterher ein mit den meisten Medienplayern verwertbares Ergebnis raus kommt.
Ich hatte weiter oben ja schon was zu der Übernahme des Covers beim Konvertieren gesagt.

Nun war es Zufall, dass ich die konvertierte mp3- Datei mit dem VLC geöffnet hatte (Bild war ja vorhanden).

Alle anderen Player können das Cover nicht anzeigen.

Das heißt, dass man das Cover zu Fuß importieren muss, wenn man den VLC nicht verwenden will.

Weiterer Test:
Hab die Stücke mit meinem (kostenpflichtigen) Tool nach mp3 konvertiert:

Danach zeigen alle bei mir installierten Player das Cover an. ---- Nur Easytag nicht :?:

Das Importieren von Covern aus einer flac Datei, die in der Datei eingebettet sind, scheint also mehr oder weniger eine "Geheimwissenschaft"
zu sein, die nur ganz wenige Tools beherrschen.

dirk11
Beiträge: 2840
Registriert: 02.07.2013 11:47:01

Re: flac2mp3 Script "aufbohren"

Beitrag von dirk11 » 03.03.2019 13:17:11

willy4711 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 23:34:22
Das erste Sript liefert ganz einfach einen Fehler, weil es die Tags nicht lesen kann.
Hab die Terminal-Ausgabe ja hinzugefügt.
Ja. Daraus aber schließen, daß meine flac "nicht standardkonform" seien, ist schon ziemlich vermessen. Mit meinen flac (und die sind nicht alle von mir selbst erstellt) funktionieren beide Script-Varianten.
Das zweite Skript (die entschiedenen Unterschiede habe ich benannt) liefert keinen Fehler und liest die Metadaten (Vorbis-Comment) in der
verlangten Menge incl. Covers, aus. Auch wenn du es auch nicht wahrhaben willst. Warum das Cover ausgelesen wird - Keine Ahnung.
Auch wenn Du es nicht wahrhaben willst¹: vermutlich weil Du das Script falsch abgetippt hast oder weil Deine flac nicht "standardkonform" sind.
Außer mit dem (falschen) Hinweis auf Qualitätsunterschiede.
Kannst Du bitte endlich mal Lesen lernen!?!?! Ich habe keinen "Hinweis" gegeben, sondern das ganz bewußt von Anfang an als meine Vermutung geschrieben und sogar als Frage gestellt.
Hör' endlich auf, mir Deine Lese-Inkompetenz als Realität unterzuschieben! Ich verbitte es mir ein für alle Mal, Dein Text-Unverständnis auf mich abgeschoben zu bekommen!

Oh, und an anderer Stelle fängst Du auch noch an, Deine fehlende Lesekompetenz auf mich abzuwälzen:
willy4711 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 12:18:47
Das kann man auch ohne weiteres in der Doku nachlesen und muss keine falschen Gerüchte verbreiten
Nochmal für Dich: das mit dem Unterschied ffmpeg/lame war eine Vermutung und Frage, kein "falsches Gerücht".
Vielleicht solltest du dich mal mit dem genauen Unterschied zwischen Vorbis-Comment und ID3v2 (speziell Padding ) beschäftigen, und warum
man flac- Dateien nicht mit ID3v2 taggen sollte.
Ich weiß ja nicht, wer hier für Dich "man" ist, aber ich nutzte damals - wie geschrieben und von Dir ignoriert - zur Erstellung von FLAC abcde. Ich gehe davon aus, daß der Programmierer weiß, wie man in flac korrekte Tags einbindet. Ich kann mir darüberhinaus auch nicht vorstellen, daß man flac mit id3 beschreiben kann, wenn eigentlich vorbis-comment vorgesehen ist, dann sind die flac nämlich kaputt. Die files (sowohl flac als auch mp3) können jedenfalls nach Hinzufügung eines Coverfoto weiterhin normal abgespielt werden, so ganz falsch scheint das also nicht gelaufen zu sein.
flac -t $FILENAME behauptet jedenfalls, das meine flac in Ordnung sind.
Ich empfinde es als diskriminierend, wenn ich (und andere) als Mausschubser bezeichnet werden,
Ich glaube, ich wiederhole mich so langsam, aber man gibt sich ja Mühe, anderen etwas beizubringen:
Ich habe an keiner Stelle Menschen als "Mausschubser" bezeichnet, ich nutze ja schließlich selbst eine grafische Oberfläche (Xfce). Ich schrieb Mausgeschubse, das ist im Gesamt-Kontext etwas vollkommen anderes! Ironischerweise bist Du derjenige, der "Mausschubser" in diesem thread etabliert hat!
Sorry, aber wenn ich mit Text-Interpretation auf dem Kriegsfuß stehe, so wie Du, dann würde ich mich an Deiner Stelle nicht so weit aus dem Fenster lehnen.
der Umgang mit der Konsole als etwas "höherwertiges" angesehen wird, und auf Anwender, die die GUI verwenden wollen herabgesehen wird.
Ist schön, das es Dir "scheint". Vielleicht solltest Du endlich mal damit aufhören, Deinen "Schein" in anderer Leutz Texte zu interpretieren und diesen damit zu unterstellen! Ich bin es so langsam leid, Dir Texte zu erklären. Wenn Du ein Problem mit Schrift-Sprache hast, geh' in die VHS, da wird Dir geholfen.
Ich habe es im thread schon geschrieben und erkläre es Dir gerne nochmal:
Für mich ist in diesem Fall das Kommandozeilentool effizienter, weil ich nur den Namen des tool eingeben muss, damit es genau das macht, was ich will. Das hat es bisher, jetzt habe ich mein "ich will", sprich meine Vorgaben, geändert und grüble darüber nach, wie ich das Kommandozeilen-Tool entsprechend erweitern kann.
Ich gestehe selbstverständlich auch jedem das Recht zu, "just for fun" sich mit Skripten zu beschäftigen, wenn sie auch - wie in diesem Fall -
wenig oder gar nichts zum produktiven Umgang mit Musikdateien beitragen.
Und schon wieder stellst Du Deine Vorstellungen über die anderer hier!
Was Du als "produktiv" ansiehst, müssen andere noch lange nicht so sehen! Das Universum dreht sich nicht um Dich allein, verstehe und vor allem akzeptiere das endlich mal! Für mich ist das Script ein produktiver Umgang mit Musikdateien in meinem Workflow. Ob es Dir nun passt oder nicht. Dementsprchend ist der Wunsch nach Erweiterung auch keine "Just for fun" Frage.
Ich verwalte über 100 000 Musikdateien und müsste mit dem Klammerbeutel gepudert sein, wenn ich das über die Konsole machen wollte.
Ach herrjeh, geht's Dir jetzt um Schwanzvergleich? Arme Wurst...


Dirk
¹: An dieser Stelle beweist Du zum wiederholten Male, dass Du überhaupt nichts begreifst:
willy4711 hat geschrieben: ↑ zum Beitrag ↑
02.03.2019 12:36:31
Warum das Skript die Tags nicht findet -- keine Ahnung. Interessiert mich auch nicht weiter, da ffmpeg es klaglos macht.
[...]
Flac benutzt als Metadatenformat Vorbis comment. Insofern hast du da mit deinem Skript eh schlechte Karten. (siehe Fehlermeldung id3v2: not found)
Die Fehlermeldung bezieht sich auf das Schreiben in der erzeugten mp3-Datei. Du hast das Paket id3v2 nicht installiert.
In meinem Script werden die id3-tags in einem zweiten Schritt vom Programm id3v2 generiert, während sie im aktuellen archwiki-Script von lame generiert werden. Das hat der User CH777 hier doch schon erläutert.

P.S.: Ich habe so langsam keine Lust mehr, in einem Forum zu schreiben, in dem einem jedes Wort "im Hals umgedreht" und uminterpretiert wird, bis es in die eigene Weltanschauung passt. Angemeldet habe ich mich hier mal, um meinem Hobby zu frönen und um mich weiterzubilden, nicht um die merkwürdigen Text-Mißverständnisse andere Leute zu korrigieren. Die Einstellung, sich "diskriminiert zu fühlen", weil man zu blöd ist, ein einzelnes Wort korrekt zu lesen und einen Text in seinem Gesamtzusammenhang zu lesen und zu verstehen, nervt zusehends!

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22439
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: flac2mp3 Script "aufbohren"

Beitrag von KBDCALLS » 03.03.2019 16:55:43

Mäßigt euch Bitte, ansonsten wird das geschlossen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

dirk11
Beiträge: 2840
Registriert: 02.07.2013 11:47:01

Re: flac2mp3 Script "aufbohren"

Beitrag von dirk11 » 03.03.2019 17:30:40

Ich muss mich nicht mäßigen, ich habe auch so langsam keine Lust mehr, nur mit Streithanseln, die Texte nicht verstehen, zu diskutieren.

Zum Thema zurück:
Ich bin bei dem von mir genutzten Script (siehe erstes posting im thread) leider nicht in der Lage, zwei Dinge zu bewerkstelligen:
a) ich will, dass nicht nur die Tracknummer, sondern auch die Total-Tracks-Angabe (sofern vorhanden) übernommen wird. Dazu müsste wohl die Zeile
TRACKNUMBER=$(metaflac "$a" --show-tag=TRACKNUMBER | sed s/.*=//g)
und die entsprechende Eingabe
-T "${TRACKNUMBER:-0}"
modifiziert werden. Mir fehlt nur gerade der Durchblick, wie genau.

Und zum Thema Cover:
Meinem Verständnis nach müsste zur Übernahme des Cover eine Zeile a la:
PICTURE=$(metaflac "$a" --show-tag=PICTURE | sed s/.*=//g)
hinzugefügt werden, und dieses picture müsste dann in die zu schreibenden tags eingepflegt werden. Mein Versuch:
--tA APIC="${PICTURE}"
und
--ti APIC="${PICTURE}"
war leider nicht von Erfolg gekrönt und hat höchstens meine Unwissenheit unterstrichen.

Das Script mit ffmpeg (von dem ich nicht überzeugt bin, weil ffmpeg sehr intransparent arbeitet) habe ich dann kurzerhand auch mal probiert. Ergebnis:
Fehlermeldungen auf der Konsole (laut Internet-Recherche aber ignorierbar, da lustigerweise zum Videostream gehörig), ein vorhandenen Cover-Foto wird mitkonvertiert, eine vorhandene Total-Track-Angabe (also z.B. die 18 bei Track 02/18) aber auch nicht.

Antworten