Erweiterung des MP3 im Hintergrund-Erstellungs-Skriptes [FERTIG]

  • Hallo,


    ich benutze das Skript um aus einer Aufnahme direkt eine MP3-Datei zu erstellen, dass hier zu finden ist.
    Nun bräuchte ich mal ein (wenig) Hilfe, beim ermitteln des Datums aus dem Verzeichnisnahmen, das dem Skript übergeben wird.
    Das ist das einzige was mir noch fehlt, um dem Lame alle Parameter mit zu übergeben, um einen brauchbaren ID3-tag zu schreiben.


    Moin


    EDIT:
    Mit extrem großer Hochachtung und noch größerem Dank ann alle Shell-Gurus, die mir geholfen haben, hänge ich jetzt mal die beiden Skripte hier ran, für den Fall, dass da noch andere User im forum sind, dessen Frauen ihre Radioaufnahmen direkt für den IPOd umwandeln wollen.
    Das ganze läuft wirklich gut und zeigt einmal mehr, das der VDR einfach durch nichts zu ersetzen ist.


    Moin

  • beschreibe mal dein vorhaben etwas genauer...


    Also wie z.B. dein Ordnername ausschaut und wie das datum übergeben werden muss...

  • Ok


    Der Ordnername sieht so aus:
    2007-02-14.22.30.50.99.rec


    Perfekt wäre für mich, daß das extrahieren des Datums ohne die Bindestriche also in diesem Fall ein 14022007 dabei herauskommt.


    Nebenbei, da beim ID3-tag (V1) die Stringlänge auf 30 Zeichen begrenzt ist, wäre es ungemein praktisch, darauf zu achten, das der vorher aus der info.vdr extrahierte Titel der Aufnahme evtl. so zu kürzen ist, dass dieser mit angehängtem Datum die maximale Stringlänge nicht überschreitet.


    Moin

    Mein VDR: 8)
    Gepanschtes LinVDR 0.7 mit Cody Patch - VDR 1.4.0 + BigPatch + diverse Plugins

    Asus P4V533-MX, Cel. 1800, 128 MB Ram,
    Samsung SV1604N,
    TT 1.5,
    Siemens Activy Budget


    :) Einfach ein geschmeidiges System

  • Hab mir jetzt dein Script nicht angesehen, aber das was du beschreibts klingt recht eiinfach:


    nehmen wir an 2007-02-14.22.30.50.99.rec steckt in variable DIR


    date --date "${DIR:0:11}" +%d%m%Y


    ergibt dann: 14022007


    Das andere Problem ist auch recht einfach du machst nen Substring auf 30-8=22 Zeichen also 0:22.


    HTH


    Steffen

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • steffen_b
    Erst einmal vielen Dank, das mit dem datum sollte ich jetzt hinbekomen.
    Nur, wie mache ich das mit dem Substring?


    Moin

    Mein VDR: 8)
    Gepanschtes LinVDR 0.7 mit Cody Patch - VDR 1.4.0 + BigPatch + diverse Plugins

    Asus P4V533-MX, Cel. 1800, 128 MB Ram,
    Samsung SV1604N,
    TT 1.5,
    Siemens Activy Budget


    :) Einfach ein geschmeidiges System

  • Du hast Recht, da hätte ich eigentlich drauf kommen können, allerdings bin ich doch ein exhter Neuling, was die Shellprogrammierung angeht...


    Aber, ich war zu voreilig (was die Datumsermittlung angeht), denn der Pfad zur Aufnahme ist doch ein wenig länger als ich zuerst angegeben habe.
    Zur Aufnahme gehört ja nicht nur das "rec" Unterverzeichnis, nein, das steht ja auch noch in einem zum Aufnahmenamen passenden Verzeichnis, und der kann natürlich von der Länge her variabel sein, beispielsweise so:
    /video0/Pour_le_Piano_-_Tastenspiele/_/2007-02-22.15.03.99.99.rec
    Da kann man dann wohl nicht mehr mit absoluten Positionsangaben arbeiten wie z.B. date --date "${DIR:0:11}" +%d%m%Y
    Also, was nun?
    Diese Nuss zu knacken ist wohl viel zu hart für mich.


    Moin

    Mein VDR: 8)
    Gepanschtes LinVDR 0.7 mit Cody Patch - VDR 1.4.0 + BigPatch + diverse Plugins

    Asus P4V533-MX, Cel. 1800, 128 MB Ram,
    Samsung SV1604N,
    TT 1.5,
    Siemens Activy Budget


    :) Einfach ein geschmeidiges System

  • Hi stifflersmom,


    kein Problem haben ja alle mal angefangen :) und ich bin da auch kein Gott ;)


    Also mal angenommen du hast das komplette Verzeichnis wie du schreibst in $DIR


    Ich benutz dafür gerne awk, kann sein das es mit pur Bash auch zu lösen ist.


    echo $DIR | awk -F"/" ' {print substr($NF,0,10) } '


    echo $DIR | awk ..... gibt den Inhalt der Variablen an awk weiter.
    -F"/" ...... legt fest das der "Feldtrenner"/Seperator / ist
    NF ...... beinhaltet in awk immer die Anzahl der Felder, also gibt print $NF das letzte Feld aus.
    substr ....... Substring in awk
    Wenn du das ganze noch in Backticks setzt kannst du die Ausgabe dieses Befehls direkt in date benutzen:


    {CODE]date --date "`echo $DIR | awk -F"/" ' {print substr($NF,0,10) } '`" +%d%m%Y[/CODE]


    Der Aufnahmename ist etwas schwieriger wie ich das sehe (da mal subdirectories und mal evtl nicht). Da würde ich versuchen das vdr-video Verzeichnis wegzuschneiden und dann das erste zu nehmen.


    Vielleicht geht das ganze auch viel einfacher, aber das sind so meine Gedanken dazu. Hoffe das hilft dir nen Einstieg zu finden.

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Hallo Steffen,


    erst einmal velen Dank,da werde ich mal heute Abend dran setzen.


    Moin

    Mein VDR: 8)
    Gepanschtes LinVDR 0.7 mit Cody Patch - VDR 1.4.0 + BigPatch + diverse Plugins

    Asus P4V533-MX, Cel. 1800, 128 MB Ram,
    Samsung SV1604N,
    TT 1.5,
    Siemens Activy Budget


    :) Einfach ein geschmeidiges System

  • Hallo,


    das ende von /video0/Pour_le_Piano_-_Tastenspiele/_/2007-02-22.15.03.99.99.rec bekommt man mit


    DIR=/video0/Pour_le_Piano_-_Tastenspiele/_/2007-02-22.15.03.99.99.rec
    DIR=${DIR##*/}
    echo $DIR


    ergibt :
    2007-02-22.15.03.99.99.rec


    Man könnte das date auch zusammenstelen :
    NewDate=${DIR:0:4}${DIR:5:2}${DIR:8:2}
    echo %NewDate
    ergibt :
    20070222


    Aber die lösung oben mit date ist auch nett :)



    Siehe auch http://www.tldp.org/LDP/abs/html/ unter "Strings".


    Gruß
    Viking

  • So macht es Toxic:



    Gruß
    Tarandor

  • Männer, ich danke Euch.


    Das Skript läuft super.
    Ich häng mal die fertige Version an den Threadstart.


    Moin

    Mein VDR: 8)
    Gepanschtes LinVDR 0.7 mit Cody Patch - VDR 1.4.0 + BigPatch + diverse Plugins

    Asus P4V533-MX, Cel. 1800, 128 MB Ram,
    Samsung SV1604N,
    TT 1.5,
    Siemens Activy Budget


    :) Einfach ein geschmeidiges System

  • Meine Frau ist ein großer Klassik-Fan, und da bekommt man bei NDR-Kultur und Bayern 4 schon eine ganze Menge.


    Moin

    Mein VDR: 8)
    Gepanschtes LinVDR 0.7 mit Cody Patch - VDR 1.4.0 + BigPatch + diverse Plugins

    Asus P4V533-MX, Cel. 1800, 128 MB Ram,
    Samsung SV1604N,
    TT 1.5,
    Siemens Activy Budget


    :) Einfach ein geschmeidiges System

  • Ich pendel z.B. jeden Tag ne Stunde mit'm ÖPNV. Auf'm Hinweg ist die Zeitung durch, auf'm Rückweg fehlt die Power fuer Lesen. Hab so'n paar Dinger:


    - Show Royale auf RadioEins
    - Diverses vom Zündfunk (BR2)
    - Zeitzeichen auf WDR5
    sowie hie- und da ein Radiofeature nach Programmzeitschrift


    Zudem halte ich zum unproblematischen Einschlafen der Kinder immer noch eine Folge Bärenbude (WDR5) bereit - sowie fuer Regentage lillipuz.


    Bin aber auch fuer andere gute Radiosendungs-Tips dankbar.


    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

  • Hallo


    Danke für die Mühe!! danach habe ich schon lange gesucht, Danke :)


    Leider gibts bei meinen linvdr0.7 Mahlzeit3.2 Edition kein mcookie Kommando :(


    wäre folgende Änderung im Skript eine mögliche Lösung des Problems?


    #5-stellige Zufallszahl
    BASE=`echo $RANDOM % 32767 + 10000`


    <EDIT>
    habs grad bei mir mal ausprobiert, wenn man BASE so definiert, dann klappts:
    let "BASE= $RANDOM % 32767 + 10000"
    </EDIT>




    und dann statt {BASE:11:5} dann {BASE:0:5} im weiteren Skript

    VDR: yavdr 0.6.1


    Hardware: Digital Devices Cine S2 V5.5, ZOTAC GeForce GT 630

    Einmal editiert, zuletzt von sosonni ()

  • Zitat

    Original von steffen_b
    Was für Radioaufnahmen sind denn interessant genug aufgenommen zu werden ? Nur mal so interessehalber, hab noch nie Radio aufgenommen :)


    Brauchst nur einmal eine Woche lang OE1 zu hören... :sonne
    Als begeisteter OE1 Hörer sind für mich z.B.
    Diagonal (Samstags 17:05)
    Spielräume (Weltmusik) (Wochentags 17:30)
    Radiokolleg (Wochentags 9:30)
    u.v. a. mehr Pflichttermine.... :wow


    LG
    ewi

    primär: LinVDR 0.7 + 1.4.4 VDR + bigpatch + diverse Plugins
    sekundär: Baustelle: ctvdr_x.y, Kano*, SuSe
    HW: Abit BP6, 2x Celeron 500 (nur 1 aktiv), 2xDVBs TT 1.3, 512 MB

  • @tarantor
    Stimmt! Meine Audio-Aufnahmen haben zwar nur ein 001.vdr, aber trotzdem kombiniere ich nun einfach tarantors und stifflersmoms script zu folgendem:


    VDR: yavdr 0.6.1


    Hardware: Digital Devices Cine S2 V5.5, ZOTAC GeForce GT 630

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!