ubuntuusers.de

Skripte/flac2mp3

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Skripte/flac2mp3.

pepre Team-Icon

Supporter
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6474

Wohnort: Erlangen

Hallo! ☺

Weil ich eh dran saß habe ich Baustelle/flac2mp3 erstellt. Könnte unter Skripte/Multimedia verlinkt werden.

Ok, ist jetzt nichts besonderes, aber vllt mag es zur Inspiration dienen, wenn jemand ebenfalls parallele Hintergrundjobs starten will.

Das Script funktioniert (zumindest bei mir), könnte also die Baustelle verlassen.

Edit: Oops! Neuer Artikel im Titel hinzugefügt.

Moderiert von BillMaier:

Diskussion mit Artikel verlinkt

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6492

Hallo,

danke für das Skript. Ich habe den Satz mit dem "ich" mal entfernt, das wollen wir hier im Wiki nicht ☺

Zwei Anmerkungen:

  • Die getestet-Box sollte auf die wirklich-getestete Version spezifiziert werden.

  • Die Voraussetzungen sollten noch beschrieben sein, bspw. wird ja LAME benötigt, was laut Artikel nicht vorinstalliert ist.

Viele Grüße

BillMaier

pepre Team-Icon

Supporter
(Themenstarter)
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6474

Wohnort: Erlangen

BillMaier schrieb:

  • Die getestet-Box sollte auf die wirklich-getestete Version spezifiziert werden.

Das muss jemand tun, der Ubuntu hat. 😀

  • Die Voraussetzungen sollten noch beschrieben sein, bspw. wird ja LAME benötigt, was laut Artikel nicht vorinstalliert ist.

Deshalb habe ich ja LAME und FLAC verlinkt. Falls es eine "requires"-Vorlage gibt, so finde ich sie nicht.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ich finde den Text noch ein bisschen dünn... Was fehlt, ist die Beschreibung zu Nutzung. Gibt es z.B. Parameter? Außerdem wäre IMHO zumindest noch erwähnenswert, wie man die VBR-Rate für LAME ändert, wenn man deinen Default nicht möchte.

Abgesehen davon: IMHO funktioniert das Skript unter Ubuntu nicht, jedenfalls nicht so ohne weiteres. Grund: das Verzeichnis /archiv/media/mp3 gibt's nicht und auch das Anlegen funktioniert nicht - wenn das Skript nicht mit Root-Rechten aufgerufen wird. Und warum soll man überhaupt einen neuen Orderner unterhalb von Root anlegen? Warum läuft das nicht z.B. im Homeverzeichnis? Gibt's dafür Gründe?

Gruß, noisefloor

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6492

pepre schrieb:

Deshalb habe ich ja LAME und FLAC verlinkt. Falls es eine "requires"-Vorlage gibt, so finde ich sie nicht.

Gibt es nicht. Ich habe mir mal erlaubt, die beiden in den Wissensblock zu packen. Dass sie installiert sein müssen, könnte als Prosa noch in die Einleitung.

@noisefloor: Gute Punkte +1

Gruß BillMaier

pepre Team-Icon

Supporter
(Themenstarter)
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6474

Wohnort: Erlangen

noisefloor schrieb:

Grund: das Verzeichnis /archiv/media/mp3 gibt's nicht und auch das Anlegen funktioniert nicht

🙄 Ähm, - ok - ich dachte jetzt nicht, dass das Script eine eierlegende Wollmilchsau werden soll. Die Absicht war eher zu zeigen, wie man LAME einfach parallelisiert, wenn man sowieso rekursiv durch ein Verzeichnis huscht. Und dass man die Pfade ändert war für mich völlig selbstverständlich.

Ich werde das jetzt nicht anpassen, damit es DAU-freundlich wird, - die Zeit habe ich gar nicht.

Dann löscht das Ganze lieber wieder. ☺

pepre Team-Icon

Supporter
(Themenstarter)
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6474

Wohnort: Erlangen

Ich kann mich des Eindrucks nicht erwehren, dass ich hier in eine wikipedianische Stub-Mine getreten bin... 😀

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

Ich kann mich des Eindrucks nicht erwehren, dass ich hier in eine wikipedianische Stub-Mine getreten bin...

Nein. Aber es gibt nun mal ein paar Regeln hier im Wiki. Und dazu gehört, dass der Artikel a) unter *buntu funktioniert. Tut er aber nicht, wegen der Pfade. b) ein Wikiartikel besteht minimal aus Einleitung, Installations-Abschnitt und Nutzungsabschnitt. Die Installation fehlt(e). c) das ein bisschen Erklärung dabei ist - fehlt aber komplett. Sprich: das ist alles zu wenig.

Bitte auch mal Wiki/Referenz lesen. Da steht alles drin, was wichtig / relevant ist.

Die Absicht war eher zu zeigen, wie man LAME einfach parallelisiert, wenn man sowieso rekursiv durch ein Verzeichnis huscht.

Prinzipiell ein ehrbares Anliegen. ABER: wie soll man denn irgendwie irgendwas lernen, wenn keine Erklärung dabei ist und das Skript an sich auch komplett unkommentiert ist? Sprich: wenn man nicht weiß, wie man mehrere Jobs parallel startet, weiß man es nach dem Lesen des Artikels auch nicht wirklich. Wenn du eine Absicht hast, müsstest du hier noch mehr tun, damit es nicht bei der guten Absicht bleibt.

Ich werde das jetzt nicht anpassen, damit es DAU-freundlich wird, - die Zeit habe ich gar nicht.

Brauchst du auch nicht. Was fehlt: siehe oben.

Dann löscht das Ganze lieber wieder.

Also verwirfst du deine Absicht wieder, zu zeigen, wie man in der Bash einfach parallelisiert?

Gruß, noisefloor

pepre Team-Icon

Supporter
(Themenstarter)
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6474

Wohnort: Erlangen

noisefloor schrieb:

... Stub-Mine...

Nein.

Doch 😀 Es ist das Wesen eines Stubs, dass er nicht ausformuliert ist, sondern mit der Zeit wächst.

... dass der Artikel a) unter *buntu funktioniert. Tut er aber nicht, wegen der Pfade.

Die Pfade sind bei jedem anders. Das kann nicht ootb funktionieren.

Installations-Abschnitt

Eines Bashscripts?!

Dann löscht das Ganze lieber wieder.

Also verwirfst du deine Absicht wieder, zu zeigen, wie man in der Bash einfach parallelisiert?

Ja. Vllt habe ich irgendwann mal Zeit dafür das nach den Vorschriften zu machen, aber nicht jetzt.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

habe die letzte brauchbare (=die, die man Wiki-tauglich machen könnte) Version wieder hergestellt und, da pepre den Artikel nicht fertig machen möchte, auf "Verlassen" gesetzt. Wenn jemand den Wikiartikel fertig und Wiki-konform machen möchte → nur zu. Viel fehlt ja nicht mehr.

Gruß, noisefloor

pepre Team-Icon

Supporter
(Themenstarter)
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6474

Wohnort: Erlangen

noisefloor schrieb:

habe die letzte brauchbare (=die, die man Wiki-tauglich machen könnte) Version wieder hergestellt

What?! Erst erklärt man mir sinngemäß: "so völlig unbrauchbar, weil alle Formalien fehlen, und das Script läuft sowieso nicht". Gut, akzeptiert, und bevor bei den Usern Unheil geschieht, lösche ich das. Dann wird die Löschung der PM gerügt mit dem Verweis auf "Vandalismus", - und plötzlich existiert doch eine "brauchbare" Version und der Status wechselt von "Kompletter Mist" zu "Viel fehlt ja nicht mehr"?!

Leute, Leute, das war mal viel entspannter hier... 🙄

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6492

Hallo prepre,

ich akzeptiere, dass du gefrustet bist. Einiges an Interpretation gehört da aber doch dazu. Ich frage mich zum Beispiel, woher du

pepre schrieb: "Kompletter Mist"

hast. Wir haben konkret ein paar Dinge hinterfragt und andere Dinge konkret angemerkt. Von "kompletter Mist" war nicht die Rede. Dass du die Anmerkungen/Rückfragen nicht beantworten oder etwas ändern willst, ist ok. Aber löschen geht echt gar nicht.

Viele Grüße

BillMaier

pepre Team-Icon

Supporter
(Themenstarter)
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6474

Wohnort: Erlangen

"Kompletter Mist"

Wortklauberei.

Aber löschen geht echt gar nicht.

Prinzipienreiterei.

Aber es gibt nun mal ein paar Regeln hier im Wiki.

Wenn der höchst unfertige Artikel und das nicht lauffähige Script User - wie befürchtet - verwirrt, dann doch besser weg damit, oder nicht?

Aber offenbar schlägt die Regel "nicht löschen" die Regel "Stubs sind nicht erwünscht". Woher sollen Autoren das wissen?

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55174

Wohnort: Berlin

noisefloor schrieb:

Und warum soll man überhaupt einen neuen Orderner unterhalb von Root anlegen? Warum läuft das nicht z.B. im Homeverzeichnis?

Und jetzt schauen wir alle mal, wo das Homeverzeichnis liegt. Oh, unterhalb von "Root" (also /, nicht /root/).

Immer diese Ungenauigkeiten in der Formulierung!!1!! 😈

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13117

Ich hätte da noch ein alternatives Skript, das ohne bash und Job Control auskommt, aber ebenfalls parallel konvertiert. Poste ich das jetzt als zweites Skript auf der Seite?

Wer es vorher mal anschauen möchte:

 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
#!/bin/sh

# Convert a folder of .flac files to another folder
# with .mp3 files.

test -z "$DEBUG" || set -x

flac_dir=/archive/media/flac
mp3_dir=/archive/media/mp3

# number of cores i.e. parallel jobs
cores=4

# ---- main ---------------

limit=$cores

( cd "$flac_dir" && find -type f -name '*.flac' ) | {
trap 'cores=$((cores + 1))' CHLD

while IFS= read -r flac; do
  mp3="$mp3_dir/${flac%.*}.mp3"
  flac="$flac_dir/$flac"

  if ! [ "$mp3" -nt "$flac" ]; then
    test $cores -eq 0 && wait

    echo "from $flac to $mp3"
    cores=$((cores - 1))
    {
      trap '' CHLD
      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
done

while [ $cores -lt $limit ]; do
  wait
done
}

Unterschiede:

  • kürzer

  • keine bash und Job Control benötigt

  • lame kann selber FLAC lesen

  • klein geschriebene Namen für Variablen, die lokal im Skript sind

  • benötigt keine temporären Dateien (und wenn, sollte man mktemp für das Anlegen nutzen)

  • Konvertieren und Verzeichnis anlegen in einem Durchgang mit find.

  • bessere Behandlung von Dateinamen mit Sonderzeichen

Antworten |