Probleme beim Spulen von mkv auf Standalone-Player

  • Zitat

    Das wird dann schon etwas schwieriger, wenn der Ausgabepfad mit Doppel-Backslashs im C-Stil umgeschrieben werden muss. Das wird in Batch nicht gerade trivial, oder?

    Sollte so funktionieren:

    Code
    set "ziel=c:\test\blub\blab"
    set "ziel=%ziel:\=\\%"
    echo %ziel%

    EDIT:
    Die Leerstellen vor > und >> können übrigens auch weggelassen werden, die werden sonst nur mit in die .opt-datei geschrieben.

    6 Mal editiert, zuletzt von mogobime (10. April 2013 um 20:45)

  • Hab mal ebenfalls ohne Gewähr noch ein paar Änderungen vorgenommen, so finden die Tools auch ihre files, wenn nicht alles im aktuellen Verzeichnis liegt, und das Arbeitsverzeichnis als parameter übergeben wurde.
    Außerdem bin ich mir nicht sicher, ob beispielsweise x264 + mkvmerge überhaupt %cd% kennen/beachten und ihre jeweiligen inputs nicht in ihren eigenen Programmverzeichnissen suchen:

    Einmal editiert, zuletzt von mogobime (11. April 2013 um 00:59)

  • Und nun müssen noch die Parameter mit Werten so zerteilt werden, dass einerseits der Parametername und andererseits der Wert auch noch in einzelne Zeilen kommen; in dem Punkt ist mkvmerge etwas anstrengend. Aber gut, wenn man damit Anführungszeichen vermeiden kann, weil der komplette Inhalt der nächsten Zeile ein Dateiname sein muss ... von mir aus. Dann eben noch viel mehr ECHO-Zeilen.

  • Die ganzen "echos" lassen sich zusammenfassen, was übersichtlicher ausschaut:

    Code
    (REM #### 1. generelle Optionen ####ECHO --clusters-in-meta-seekECHO --disable-lacingECHO --engage no_cue_durationECHO --engage no_cue_relative_positionECHO --engage no_simpleblocksECHO --track-order 0:0,1:0,2:0,3:0,4:0REM #### 2. Ausgabedatei ####ECHO -o "%zielOpt%\\%file%.mkv"REM #### 3.1 Videotrack-Optionen ####ECHO --language 0:gerECHO --track-name 0:"%file%"ECHO --forced-track 0:noECHO --display-dimensions 0:1920x1080ECHO --default-duration 0:24pECHO --compression 0:noneECHO -d 0ECHO -AECHO -SECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%.h264"REM #### Das = verhindert, dass Episoden einer Serie zusammengefasst werden ####REM #### 3.2a Audiotrack-Optionen ####ECHO --language 0:gerECHO --track-name 0:"%file% Ger"ECHO --forced-track 0:noECHO --compression 0:noneECHO -a 0ECHO -DECHO -SECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%_ger.dts"REM #### 3.2b Audiotrack-Optionen ####ECHO --language 0:engECHO --track-name 0:"%file% Eng"ECHO --forced-track 0:noECHO --compression 0:noneECHO -a 0ECHO -DECHO -SECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%_eng.dts"REM #### 3.3a Subt.-Track-Optionen ####ECHO --language 0:gerECHO --track-name 0:"%file% Ger"ECHO --forced-track 0:noECHO -s 0ECHO -DECHO -AECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%_ger.sup"REM #### 3.3b Subt.-Track-Optionen ####ECHO --language 0:engECHO --track-name 0:"%file% Eng"ECHO --forced-track 0:noECHO -s 0ECHO -DECHO -AECHO -TECHO --no-global-tagsECHO --no-chaptersECHO ="%zielOpt%\\%file%_eng.sup")>"%ziel%\%file%.opt"


    :D CALL :label ist ein hervorragender Trick, in etwa vergleichbar mit dem GOSUB in BASIC.

    In Batch verändern sich aber manche Zeichenketten (Dateinamen!), wenn die als Parameter übergeben werden, zB:

    Sollte man mal gehört haben...

    Einmal editiert, zuletzt von Endoro (20. April 2013 um 18:55)

  • Es fehlen aber immer noch massig Zeilenumbrüche.
    Falsch:

    Code
    --engage no_cue_duration

    Richtig:

    Code
    --engageno_cue_duration

    Falsch:

    Code
    -o "%zielOpt%\\%file%.mkv"

    Richtig:

    Code
    -o
    %zielOpt%\\%file%.mkv


    --disable-lacing und --engage no_simpleblocks würde ich weiterhin weglassen. Das müßte schon ein sehr spezieller Player sein, der das nicht kann.

    Dafür, daß es hier wohl nur um einen klitzekleinen Fehler ging, ist es aber wirklich ganz schön ausgeartet.

  • Das mit den option files ist tricky, muss man sich reinfuchsen. Das einfach so mal reinschreiben geht nicht: siehe hier.

    Ich habs ja schon vor Wochen gesagt & den Link zur Docu gepostet, aber mir hört ja keiner zu ! :D

  • Das könntest du in wenigen Wochen passabel lernen. Die Frage ist, ob sich das lohnt. Imo nicht. Ich würde meine Energie für eine Scriptsprache lieber in Powershell oder -noch besser- Perl stecken. Batch ist ganz klar auf dem absteigenden Ast.

Jetzt mitmachen!

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