rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 11944
|

26. November 2018 15:27
Oh, das geht noch kürzer und robuster für Sonderzeichen in Dateinamen: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | #!/bin/sh
# Convert a folder of .flac files to another folder
# with .mp3 files.
test -z "$DEBUG" || set -x
export flac_dir="${1:-/archive/media/flac}"
export mp3_dir="${2:-/archive/media/mp3}"
# number of cores i.e. parallel jobs
cores=4
# ---- main ---------------
( cd "$flac_dir" && find -type f -name '*.flac' -print0 ) | xargs -r0 -P $cores -n 1 sh -${DEBUG:+x}c '
mp3="$mp3_dir/${1%.*}.mp3"
flac="$flac_dir/$1"
if ! [ "$mp3" -nt "$flac" ]; then
echo "from $flac to $mp3"
mkdir -p "${mp3%/*}"
#nice -n 15 flac -s -c -d "$flac" | nice -n 15 lame -S --vbr-new -V0 - "$mp3" 2>/dev/null
nice -n 15 lame -S --vbr-new -V0 "$flac" "$mp3" 2>/dev/null
fi
' --
|
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 27297
Wohnort: Görgeshausen
|

26. November 2018 17:11
Hallo, von "kompletter Mist" war in der Tat nie die Rede. Der Artikel ist "verbesserungswürdig" - was IMHO, wenn man sich mit der Materien auskennt bzw. ein Ziel hat, < 10 Minuten gedauert hätte. Aber: wir machen das alle freiwillig hier. Wenn jemand diese 10 Minuten nicht hat oder haben will, dann ist das zu akzeptieren. Aber vielleicht hat ja wer anders die 10 Minuten ☺ Gruß, noisefloor
|
BillMaier
Supporter
Anmeldungsdatum: 4. Dezember 2008
Beiträge: 6242
|

26. November 2018 17:52
Hi, rklm schrieb: Poste ich das jetzt als zweites Skript auf der Seite?
besser wäre nur ein Skript - und das einigermaßen erklärt und nach Wiki-Referenz. Vom Artikel her sowas wie Skripte/pdf2mp3 zum Beispiel. Dass es immer mehrere Wege zum Ziel gibt ist bekannt - aber dafür gibt es GitHub und Konsorten 😉 Gruß BillMaier
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 11944
|

26. November 2018 18:37
BillMaier schrieb:
rklm schrieb: Poste ich das jetzt als zweites Skript auf der Seite?
besser wäre nur ein Skript - und das einigermaßen erklärt und nach Wiki-Referenz.
OK, dann sucht Euch erst mal ein Skript aus. ☺
Vom Artikel her sowas wie Skripte/pdf2mp3 zum Beispiel.
Danke für den Hinweis!
|
pepre
Supporter
(Themenstarter)
Anmeldungsdatum: 31. Oktober 2005
Beiträge: 6380
Wohnort: Erlangen
|

27. November 2018 09:07
rklms Script ist viel hübscher! "xargs -P" war mir bis dato unbekannt. Sehr elegant. Danke! ☺
|
BillMaier
Supporter
Anmeldungsdatum: 4. Dezember 2008
Beiträge: 6242
|

27. November 2018 20:51
Gut, dann bin ich dafür, dass im Artikel hier rklms Skript beschrieben und erklärt wird. Wenn jemand Anmerkungen dazu hat, kann man die ja hier diskutieren. Gruß BillMaier
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 11944
|

29. November 2018 17:59
BillMaier schrieb: Gut, dann bin ich dafür, dass im Artikel hier rklms Skript beschrieben und erklärt wird. Wenn jemand Anmerkungen dazu hat, kann man die ja hier diskutieren.
OK, mache ich dann mal. Da das die erste Seite im Wiki ist, an der ich nicht nur kleine Änderungen mache, bitte auf die Finger klopfen, wenn irgendwas nicht passt oder unverständlich ist.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 11944
|

29. November 2018 18:54
Done. Das Herunterladen funktioniert in der Baustelle nicht, korrekt?
|
Beforge
Wikiteam
Anmeldungsdatum: 29. März 2018
Beiträge: 2007
|

29. November 2018 20:55
Hallo rklm, wenn auf den nicht existenten Anhang Skripte/flac2mp3/flac2mp3 verwiest, funktioniert der Download (in der Baustelle) in der Tat nicht. Der Anhang kann ja erst an dieser Stelle existieren, wenn die Seite aus der Baustelle ins Wiki verschoben wurde. Im Moment liegt der Anhang noch unter Baustelle/flac2mp3/flac2mp3. Deswegen ist es sinnvoll, auf Anhänge, die auf der selben Wikiseite liegen, nicht hart zu verweisen (Wikiseite/Anhang), sondern einfach nur auf den Anhang: Anhang oder ./Anhang. Da betrifft übrigens alle Anhänge, auch Bilder. Hier wäre [Anhang(flac2mp3, flac2mp3)]] oder vor mir aus auch [Anhang(./flac2mp3, flac2mp3)]] korrekt. Ich habe das jetzt mal im Artikel geändert. Viele Grüße Beforge
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 11944
|

29. November 2018 21:14
Beforge schrieb:
Deswegen ist es sinnvoll, auf Anhänge, die auf der selben Wikiseite liegen, nicht hart zu verweisen (Wikiseite/Anhang), sondern einfach nur auf den Anhang: Anhang oder ./Anhang. Da betrifft übrigens alle Anhänge, auch Bilder.
Ja, ergibt natürlich total Sinn. Hätte ich auch selbst drauf kommen können. 🙄
Ich habe das jetzt mal im Artikel geändert.
Super! Ich hatte mich an einem anderen Artikel orientiert, in dem das so ist. ☺
|
Beforge
Wikiteam
Anmeldungsdatum: 29. März 2018
Beiträge: 2007
|

29. November 2018 21:35
Gibt es leider oft hier im Wiki. Solange die Seite an der selben Stelle bleibt, ist das ja auch kein Problem. Probleme gibt es erst, wenn man eine Seite in die Baustelle, ins Wiki oder sonst wo hin verschiebt.
|
BillMaier
Supporter
Anmeldungsdatum: 4. Dezember 2008
Beiträge: 6242
|

29. November 2018 22:14
rklm schrieb:
Ich hatte mich an einem anderen Artikel orientiert, in dem das so ist. ☺
war. 😉 Danke für deinen Hinweis! Dafür gibt es ja das Wikiteam, in diesem Fall Beforge 👍 Was mir beim Überfliegen des Artikels auffällt: Es fehlt noch die Ubuntu-Version, für die das Skript getestet wurde. Kannst du die bitte noch ergänzen? Ich schau gerne nochmal genauer drauf, komme aber momentan nicht dazu. Gruß BillMaier
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 11944
|

29. November 2018 22:58
BillMaier schrieb:
Was mir beim Überfliegen des Artikels auffällt: Es fehlt noch die Ubuntu-Version, für die das Skript getestet wurde. Kannst du die bitte noch ergänzen?
Habe ich ergänzt
Ich schau gerne nochmal genauer drauf, komme aber momentan nicht dazu.
Jo, eilt ja nicht.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 11944
|

30. November 2018 10:41
Hatte noch eine interessante Idee für eine alternative Übergabe des eingebetteten Skriptes.
|
pepre
Supporter
(Themenstarter)
Anmeldungsdatum: 31. Oktober 2005
Beiträge: 6380
Wohnort: Erlangen
|

4. Dezember 2018 10:22
Ich hab's mal für mich erweitert - vllt könnt ihr ja Teile davon gebrauchen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 | #!/bin/bash
cores=$(nproc --all)
mp3_tags=1
dbg=""
while getopts "c:thd" opt; do
case $opt in
t) mp3_tags=0;;
c) cores=$OPTARG;;
d) dbg="x";;
h)
echo " "
echo "Usage: flac2mp3 [source dir] [destination dir]"
echo -e "\nOptions:\n"
echo " -t without id3 tags"
echo " -c n use n cores (default = all)"
echo " -d debug mode"
echo " "
exit 0;;
\?) echo -e "\nInvalid option: -$OPTARG\n" >&2; exit 1;;
esac
done
shift "$((OPTIND -1))"
export mp3_tags
export flac_dir="${1:-/archiv/media/flac}"
export mp3_dir="${2:-/archiv/media/mp3}"
function enc_tags() {
mp3="$mp3_dir/${1%.*}.mp3"
flac="$flac_dir/$1"
trap "rm -f '\''$mp3'\''; exit 1" INT TERM HUP
if [ "$mp3" -nt "$flac" ] ; then
echo "Already encoded: $mp3"
else
echo "Encoding: $mp3"
mkdir -p "${mp3%/*}"
if [ $mp3_tags -eq 1 ] ; then
tx="--add-id3v2 --pad-id3v2 --ignore-tag-errors"
ta=$(metaflac "$flac" --show-tag=ARTIST | sed s/.*=//g)
tt=$(metaflac "$flac" --show-tag=TITLE | sed s/.*=//g)
tl=$(metaflac "$flac" --show-tag=ALBUM | sed s/.*=//g)
tg=$(metaflac "$flac" --show-tag=GENRE | sed s/.*=//g)
tn=$(metaflac "$flac" --show-tag=TRACKNUMBER | sed s/.*=//g)
ty=$(metaflac "$flac" --show-tag=DATE | sed s/.*=//g)
nice -n 19 lame -S --replaygain-accurate --vbr-new -V0 ${tx} --ta "${ta}" --tt "${tt}" --tl "${tl}" --tg "${tg:-12}" --tn "${tn:-0}" --ty "${ty}" "$flac" "$mp3" 2>/dev/null
else
nice -n 19 lame -S --replaygain-accurate --vbr-new -V0 "$flac" "$mp3" 2>/dev/null
fi
fi
}
export -f enc_tags
cd "$flac_dir"
find -type f -name '*.flac' -printf '%P\0' | sort -z | xargs -r0 -P $cores -n 1 bash -${dbg}c 'enc_tags "$@"' --
echo -e "\n\nDone.\n"
|
|