konvertieren zu MPEG2: gleicher Dateiname????

  • Hrmpf... jeden Tag ein Problem... :]


    Ich habe jetzt zig kleine Aufnahmen (zwischen 1 und 90 Minuten).
    In der Übersicht der Aufnahmen heißen die alle "%snooker". Jeweils anderes Datum/Uhrzeit


    Problem:
    - wenn ich die jetzt alle am Stück in MPEG2 wandeln möchte, dann habe ich im /pub/export/ hinterher genau EINE "snooker.mpg" liegen - mit der letzten Aufnahme.... während der Umwandlung wird immer wieder dieses File überspielt...


    Frage:
    - kann ich es irgendwo einrichten, dass für den MPEG2-Dateinamen z.B. Datum+Uhrzeit der Aufnahme mit dazugenommen wird? z.B. "snooker_11.04.2004_1650.mpg" oder ähnlich?


    Danke

  • hmmmm.... die convert.pl scheint der Dreh- und Angelpunkt zu sein... nur leider verstehe ich die syntax dort nicht wirklich.


    Es gibt eine Funktion GetOutputname (oder so ähnlich - ist jetzt aus'm Kopf)... die bekommt ein Directory übergeben und liefert wohl einen passenden Filenamen zurück?


    Aber wie bekomme ich jetzt dort etwas hinein, was das resultierende File eindeutig macht? Wie gesagt: am liebsten Datum+Uhrzeit der Originalen Aufnahme....

  • vor kurzem noch die Antwort gesehen ...


    such ich gerade nach ...


    ansonsten wär natürlich ne Lösung , die Folgen alle fortlaufend *.vdr in 1 Verzeichnis und los ...


    HJS

  • Zitat

    Originally posted by hjs
    vor kurzem noch die Antwort gesehen ...
    such ich gerade nach ...


    ich hab's nicht finden können


    Zitat


    ansonsten wär natürlich ne Lösung , die Folgen alle fortlaufend *.vdr in 1 Verzeichnis und los ...


    das wusste ich - aber das will ich nicht! Ich möchte das ja nicht an der Konsole machen ;) das ist mir zu fummelig - zumal das Heute kein Einzelfall bleiben wird.... Ich suche also schon eine etwas dauerhaftere Lösung die ich auch nächsten Monat ohne langes Grübeln noch mal hinbekomme (und ich meine jetzt NICHT einen Zettel abzuarbeiten LOL :D)


    Wäre super, wenn es da einen Kniff gäbe...


    Was ist das eigentlich für eine Syntax in diesen .pl Dateien? Gibt es empfehlenswerte Web-Seiten die das erläutern was da passiert? (ich denke da an diese megalangen Stringketten wo offenbar der Dateiname ausgelesen wird etc.)

  • dammich , ich find den thread nich mehr ... ;(


    dabei hab ich mir extra nochn ausdruck gemacht weil ich gerade das konvertieren an meiner kiste gerne nach eigenen bedürfnissen zusammenstricken wollte ... aber der is auch zu haus ...


    du kannst aber der convert.pl sagen , wie das file heißen soll und was rein soll ...



    HJS

  • Das convert.pl wird ja aus OSD -> Befehle -> Export starten aufgerufen (-q -s) ... dabei arbeitet es die queue-Liste ab. Dort stehen alle meine Aufnahmen drin ...


    Nur das ermitteln der Zieldatei ist nicht clever genug - weil es kommt eben immer ein "snooker.mpg" heraus... verdammt....
    Er schneidet ja auch irgendwo das "%" ab... zumindest das 1. wenn eines da ist...


    Aber ich habe keinen blassen Schimmer, wie ich es hineinbekomme, dass er den Dateinamen um weitere Daten ergänzt...

  • jo , da man das zielverzeichnis angeben kann , sowie den filenamen , haste doch fast ausgesorgt ... wenn du noch mit variablen umgehen kannst , weist du convert an , die entstehende mpg datei ins gleichlautende verzeichnis wie der dateiname zu werfen


    ergebnis sollte sein , daß du soviele neue verzeichnisse wie dateien hast ...


    HJS

  • Zitat

    Originally posted by hjs
    jo , da man das zielverzeichnis angeben kann , sowie den filenamen , haste doch fast ausgesorgt ... wenn du noch mit variablen umgehen kannst , weist du convert an , die entstehende mpg datei ins gleichlautende verzeichnis wie der dateiname zu werfen


    ergebnis sollte sein , daß du soviele neue verzeichnisse wie dateien hast ...


    HJS


    Ja, das wäre schon was!


    die Stelle im convert.pl hab ich gefunden... da wird mit sprintf der Command-String für den vdrsync-String zusammengesetzt


    "-basename <...>" ist offenbar das File (das Directory), das gelesen wird
    "-o <...>" ist das Zielverzeichnis (/pub/export per default)


    Dann kommt ein Aufruf von "-mpeg2 <...>". Da wird wohl noch mal die Variable $dir reingeschrieben... das kapiere ich jetzt nicht ganz - ich hab noch nicht herausgefunden, was in $dir drinnen steht - ich ging jetzt vom Quellverzeichnis aus - aber warum steht das nochmal hinter dem -mpeg2 switch? Die Hilfe von vdrsync sagt nur, dass es den -mpeg2-switch gibt... nicht, dass es noch ein directory erwartet


    Ich würde vermuten, dass ich den string hinter "-o" erweitern müsste... nur weiß ich nicht wie...


    Daher auch die Frage: Was für eine Sprache/Syntax ist das - und wo gibt es eine gute Einsteiger-Seite dafür?


    Vielen Dank ... ich fühle mich schon kurz vor dem Ziel....
    ...was vermutlich bedeutet, dass ich es nächstes Jahr gelöst haben werde LOL ;D

  • Kennt sich hier keiner aus - oder hat niemand sonst das Problem mit gleichen Aufnahme-Namen?


    ich habe mir die "convert.pl" angesehen.
    In der "sub Transcode" gibt es diese Stelle:

    Code
    if ($mode ==1)
      $cmd = sprintf("%s %s -basename \"%s\" -o \"%s\" -mpeg2 \"%s\" %s",
         $NICE,
         $VDRSYNC,
         $getOutputName($dir),
         $OUTPUT,
         $dir,
         $DEBUG ? "" : ">/dev/null 2>/dev/null");
       Exec($cmd);


    soweit so gut.
    Wofür das "$dir" hinter "-mpeg2" ist habe ich nicht herausgefunden. weiß aber nicht, ob das evtl. wichtig ist


    Ich habe jetzt einfach mal versucht hinter das "-o" 2x ein %s zu schreiben (und natürlich die Parameterliste zu erweitern um das $dir anzuhängen)

    Code
    $cmd = sprintf("%s %s -basename \"%s\" -o \"%s%s\" -mpeg2 \"%s\" %s",
         $NICE,
         $VDRSYNC,
         $getOutputName($dir),
         $OUTPUT, $dir,
         $dir,
         $DEBUG ? "" : ">/dev/null 2>/dev/null");


    das hatte leider nicht den gewünschten Erfolg


    dann hab ich mal das zweite %s (und Parameter) wieder rausgenommen und einfach mal hart ein "/test" angehängt:

    Code
    $cmd = sprintf("%s %s -basename \"%s\" -o \"%s\"/test -mpeg2 \"%s\" %s",


    Aber da kommt dann auch nix an... vermutlich, weil das Verzeichnis nicht existiert?


    Ist mein Ansatz denn überhaupt richtig?

  • habe jetzt versucht ein "mkdir" vorweg zu schicken


    Code
    $cmd = sprintf("mkdir \"%s%s\"", $OUTPUT, $dir)
    Exec($cmd)


    Das Problem:
    "mkdir: Cannot create directory '/pub/export/video0/%snooker/2004-04-06.14.55.50.50.rec': No such file or directory
    Error while running "mkdir "/pub/export/....usw.usf...."


    ???? hilfe - wie lege ich mehrere Unterverzeichnisse an? Oder: wie bekomme ich den hinteren Teil (mit Datum/Uhrzeit) aus dem String?

    elastico


    (LinVDR 0.5 + MarcTwain Komplett-Patch)

    Einmal editiert, zuletzt von elastico ()

  • HA!


    "-p " beim "mkdir" bringt es ... tja.. logisch... "p" ... wie "pitte mach unterverzeichnisse" oder "p" wie "paul".... äääh... ja....


    Zusammenfassend:
    1.) man nehme die Datei "/usr/bin/convert.pl" und öffne sie in einem Editor (ich habe mc benutzt)


    2.) man scrolle runter bis zur "sub Transcode"


    3.) man ergänzt ein paar Zeilen vor dem zusammensetzen des $cmd für VDRSYNC - und erweitert den $cmd für VDRSYNC um ein "%s" und einen Parameter "$dir"


    Sieht dann so aus:


    Es wird dann in /pub/export eine weitere Unterverzeichnisstruktur angelegt. Es heißt dann hinterher also
    /pub/export/video0/<Aufzeichungname>/Datum_Uhrzeit.rec/<hier liegt dann das MPG-File>


    Ist zwar nicht schön - aber selten :gap


    würde mich noch freuen, wenn es etwas eleganter ginge (z.B. nur Datum_Uhrzeit aus der Aufnahme ermitteln und an den MPG-Dateinamen anhängen um die vielen Verzeichnisse zu sparen


    Wäre für Tipps dankbar


    edit: schade - im "[code]"-Style kann ich nix fett drucken lassen... sonst hätte ich die Änderungen hervorgehoben


    Daher hier noch mal anders:


    yippieee... meine erste (fast) eigene Lösung :gap ... vielleicht hilft es jemanden... und vielleicht hat noch jemand eine elegantere Idee

    elastico


    (LinVDR 0.5 + MarcTwain Komplett-Patch)

    4 Mal editiert, zuletzt von elastico ()

  • Zitat

    Original von elastico
    Daher auch die Frage: Was für eine Sprache/Syntax ist das - und wo gibt es eine gute Einsteiger-Seite dafür?


    Die Sprache heißt Perl.
    Sites (ob sie gut sind, musst du selbst herausfinden;)):
    SelfHTML
    Perl
    Mehr fällt mir im Moment auch nicht ein, einfach mal googeln.



    Würde dir ja gerne weiter helfen, aber /usr/bin/convert.pl gibt's bei mir (c't vdr mit Tobi's Multipatch) nicht...
    sonst gibt's unter /usr/bin nur vdr2mpg.sh, vdrconvert.sh und vdrsync.pl und da ist der Ausschnitt, den du zitiert hast nicht drin.


    Grüße
    Michael

  • Zitat

    Original von elastico
    "-p " beim "mkdir" bringt es ... tja.. logisch... "p" ... wie "pitte mach unterverzeichnisse" oder "p" wie "paul".... äääh... ja....


    Das p steht übrigends für parents. Das bedeutet, dass kein Fehler ausgegeben wird, wenn das Verzeichnis bereits existiert und übergeordnete Verzeichnisse (die Eltern:) erzeugt werden, falls nötig.


    Code
    mkdir --help


    Wollt ich nur noch gesagt haben:)

  • Zitat

    Originally posted by MichaelK


    Das p steht übrigends für parents. Das bedeutet, dass kein Fehler ausgegeben wird, wenn das Verzeichnis bereits existiert und übergeordnete Verzeichnisse (die Eltern:) erzeugt werden, falls nötig.


    ich hatte die Option mit google gefunden :) da stand aber nicht was es heißt! Danke für die Info


    Zitat
    Code
    mkdir --help


    Wollt ich nur noch gesagt haben:)


    LOL - ja, eigentlich klar!
    Nur: als ich merkte, dass keine Unterverz. automatisch erzeugt werden, da ging ich nicht von einer Option bei mkdir aus.... ich ging eher davon aus, dass es einen anderen Befehl geben könnte... (oder das es nicht geht und man es in Perl über einen loop selber machen müsste) ... daher kam ich nicht auf die Idee...


    Aber so ganz langsam komme ich dahinter - und beim nächsten Problem werde ich erst alle --help ausprobieren ;)


    Aber ich hab's ja hinbekommen... nur eben mit tonnen von Verzeichnissen jetzt... aber auch erstmal gut... perfektioniert wird es dann, wenn ich kapiert habe, wie ich den $dir-String mit Perl so zerlegen kann, dass ich den letzten Teil "/<datum><uhrzeit>" bekomme


    Aber - natürlich - hab ich nun ein anderes Problem... nämlich, dass VDRSYNC nicht alle Files bearbeiten mag.... sind wohl bekannte Probleme (habe Kontakt zum Doc aufgenommen) ... mal gucken, ob es eine Lösung gibt, die auch mit LinVDR 0.5 funktioniert


    sonst bleibt mir nur der komplizierte Weg über ProjectX und ähnliches in der Hoffnung, dass das dann funktioniert ?(

  • Das Problem gleicher Dateinamen bei der mpg-Konvertierung läßt sich wie folgt lösen:


    Sofern man vdrconvert als root betreibt die Datei


    /root/.vdrconvert/vdrconvert.env


    um den Eintrag


    MPG_TITLEDATE=yes


    ergänzen. Die fertigen mpeg-Dateien haben dann folgendes Aussehen:


    2004-08-24_Pok#E9mon.mpg


    Das Datum der Aufnahme wird also mit eingefügt.


    Der unten stehende Ausszug der Variablen der in der vdrconvert.env stammt von der Internetseite http://vdrconvert.vdr-portal.de.




    VDR -> MPG
    Name Defaultwert Beschreibung
    MPG_DESTDIR $DESTDIR/mpg Zielverzeichnis
    MPG_TITLEDATE $CONV_TITLEDATE Durch Eintragen von "yes" wird das Datum im Dateinamen eingefügt
    MPGUSESTREAMS
    Auswahl der Audio Streams
    MPG_NOAC3
    Bei yes wird AC3 verworfen
    MPG_AUTOWRITE
    Bei yes Ergebnis automatisch im OSD Dialog brennen

  • Zitat

    Original von elastico


    yippieee... meine erste (fast) eigene Lösung :gap ... vielleicht hilft es jemanden... und vielleicht hat noch jemand eine elegantere Idee



    Hi elastico,


    ein Kollege, der Perl fließend spricht, hat sich mal schnell des Problems angenommen.
    Dabei ist folgendes herausgekommen (funzt gut):



    HTH


    Richard

Jetzt mitmachen!

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