Mkvmerge CLI Options-File-'append-to'-Problem,...

  • Habe folgendes OptionsFile:

    Code
    -oH:\\Output\\Test.mkv--append-to1:0:0:0,2:0:1:0,3:0:2:0,4:0:3:0,5:0:4:0,6:0:5:0,7:0:6:0,8:0:7:0--clusters-in-meta-seek--engageno_simpleblocks--disable-lacing--engageno_cue_duration--engageno_cue_relative_position--default-duration0:24000/1001p--compression-1:none--forced-track0:yes--default-track0--no-audio--no-subtitles--no-chapters--no-attachments--no-buttonsH:\\Temp\\Test-001.264--default-duration0:24000/1001p--compression-1:none--forced-track0:yes--default-track0--no-audio--no-subtitles--no-chapters--no-attachments--no-buttonsH:\\Temp\\Test-002.264--default-duration0:24000/1001p--compression-1:none--forced-track0:yes--default-track0--no-audio--no-subtitles--no-chapters--no-attachments--no-buttonsH:\\Temp\\Test-003.264--default-duration0:24000/1001p--compression-1:none--forced-track0:yes--default-track0--no-audio--no-subtitles--no-chapters--no-attachments--no-buttonsH:\\Temp\\Test-004.264--default-duration0:24000/1001p--compression-1:none--forced-track0:yes--default-track0--no-audio--no-subtitles--no-chapters--no-attachments--no-buttonsH:\\Temp\\Test-005.264--default-duration0:24000/1001p--compression-1:none--forced-track0:yes--default-track0--no-audio--no-subtitles--no-chapters--no-attachments--no-buttonsH:\\Temp\\Test-006.264--default-duration0:24000/1001p--compression-1:none--forced-track0:yes--default-track0--no-audio--no-subtitles--no-chapters--no-attachments--no-buttonsH:\\Temp\\Test-007.264--default-duration0:24000/1001p--compression-1:none--forced-track0:yes--default-track0--no-audio--no-subtitles--no-chapters--no-attachments--no-buttonsH:\\Temp\\Test-008.264--default-duration0:24000/1001p--compression-1:none--forced-track0:yes--default-track0--no-audio--no-subtitles--no-chapters--no-attachments--no-buttonsH:\\Temp\\Test-009.264--compression-1:none--no-videoH:\\Temp\\Test_AudioCut.mkv


    Wenn ich dann:

    Code
    "G:\Hybrid\MkvCutter\mkvmerge.exe" @"H:\Temp\irgendwasIstFalsch-001_mkvOptions.txt"


    aufrufe erhalte ich:

    Zitat

    Error: The file no. 1 ('H:\Temp\Test-002.264') is not being appended. The argument for '--append-to' was invalid.

    -> irgendwas ist also an dem '--append-to'-Aufruf nicht richtig, aber was?

    die allgemeine Syntax ist doch:

    Code
    mkvmerge [global options] {-o out} [options1] {file1} [[options2] {file2}] [@optionsfile]


    sprich, der '--append-to"-Teil muss an den Anfang und sollte doch eigentlich stimmen,...

    Was ich will ist:

    • Die .264 files aneinander hängen und dabei sicher sein, dass die TimeCodes entsprechend der "--default-duration 0:24000/1001p" gesetzt werden und nicht aus den Files generiert werden solle, weshalb ich die Files nicht mit '+' einfach aneinanderhängen kann.
    • Den Audio stream und eventuelle Untertitel&Co die im "irgendwasIstFalsch_AudioCut.mkv" enthalten sind dazu multiplexen, so dass ich am Ende einen Video stream + die streams aus 'irgendwasIstFalsch_AudioCut.mkv' in einem Container habe.

    Cu Selur

  • 1. Der --append-to-Teil sieht richtig aus - ohne "+" (oder runde Klammern) geht es aber glaube ich nicht. Normalerweise sollte das --default-duration der ersten Datei auf alle Segmente angewendet werden. Hast Du Probleme damit? Könnte aktuell etwas verbuggt sein - teste mal z.B. mit mkvmerge 5.0.0 gegen.
    2. Einfach folgendes ans Ende sollte ausreichen, oder?
    --no-video
    irgendwasIstFalsch_AudioCut.mkv

  • Wenn ich anstatt dem obigen OptionsFile, foldegendes verwendet:

    Code
    -oH:\\Output\\Test.mkv--clusters-in-meta-seek--engageno_simpleblocks--disable-lacing--engageno_cue_duration--engageno_cue_relative_position--default-duration0:24000/1001pH:\\Temp\\Test-001.264+H:\\Temp\\Test-002.264+H:\\Temp\\Test-003.264+H:\\Temp\\Test-004.264+H:\\Temp\\Test-005.264+H:\\Temp\\Test-006.264+H:\\Temp\\Test-007.264+H:\\Temp\\Test-008.264+H:\\Temp\\Test-009.264--compression-1:none--no-videoH:\\Temp\\Test_AudioCut.mkv


    wird zwar eine Datei erstellt, aber sie ist total asynchron, was der Grund war warum ich vor jedes File "--default-duration 0:24000/1001p" packen wollte,..

    Wenn ich Audio und Video aus der erstellten Datei extrahiere und mit:

    Code
    mkvmerge --ui-language en -o "H:\Output\avRemux.mkv" -d 0 --default-track 0:yes --default-duration 0:23.976fps --aspect-ratio-factor 0:1 --fourcc 0:MP4V --no-chapters --compression -1:none --forced-track 0:yes --no-audio --no-subtitles "H:\Temp\video.264" --language 0:en --default-track 0:yes --forced-track 0:no -a 0 --compression -1:none --no-video --no-subtitles --no-chapters "H:\Temp\audio.ac3"

    remuxe ist das Ergebnis synchron.
    -------------
    sneaker2: meinst Du so:

    ? (-> ist auch asynchron, ich lad mit mal ne mkvmerge 5.0 runter und teste damit)


    Cu Selur

  • mkvmerge 5.0.0 mit:

    Code
    -oH:\\Output\\Test.mkv--append-to1:0:0:0,2:0:1:0,3:0:2:0,4:0:3:0,5:0:4:0,6:0:5:0,7:0:6:0,8:0:7:0--default-duration0:24000/1001fpsH:\\Temp\\Test-001.264+H:\\Temp\\Test-002.264+H:\\Temp\\Test-003.264+H:\\Temp\\Test-004.264+H:\\Temp\\Test-005.264+H:\\Temp\\Test-006.264+H:\\Temp\\Test-007.264+H:\\Temp\\Test-008.264+H:\\Temp\\Test-009.264--compression-1:none--no-videoH:\\Temp\\Test_AudioCut.mkv


    ist auch asynchron :(

    auch :(

  • Ich habe ein neues Ticket erstellt:
    https://trac.bunkus.org/ticket/889

    Wenn Du mit 5.0.0 aber immer noch Probleme hast, ist das Problem evtl. anders gelagert. Am besten setzt Du Dich selbst mit Mosu in Verbindung, nachdem Du nochmal mit MediaInfo überprüft hast, daß Du wirklich die 5.0.0 getestet hast. Weitere Fehler in Deinen Einstellungen sehe ich keine. Vorausgesetzt Dein Rundherum mit dem Schneiden ist korrekt, also der Fehler wirklich bei mkvmerge liegt und nicht bereits vorher gemacht wurde.

    Analog zum anderen Thread: "( )"- anstatt "+"-Operator - bringt es was?

    3 Mal editiert, zuletzt von sneaker2 (27. Juni 2013 um 00:18)

  • Mir ist irgendwie unklar wie das mit '( ..)' aussehen soll. :)

    (Das "--compression -1:none" ist für Untertitel übrigens nicht unbedingt empfehlenswert. Aktuelle mkvmerge-Versionen haben die Header Removal Compression glücklicherweise eh wieder standardmäßig aus, so daß man den Parameter mit aktuellen Versionen am besten einfach wegläßt.)


  • erstellt eine Datei, leider ist sie immer noch async. :(
    (und ein remuxen der Ergebnisdatei fixed dieses sync Problem)

    Scheint, als ob das --default-duration 0:24000/1001p nur auf den ersten Track angewendet wird. :/

  • Und 6.3.0 läuft jetzt? Nach dem Fix für mein Ticket kam ja kein weiterer nach - hingen also doch zusammen? Bin etwas verwundert, weil sich unsere Samples beim ()-Operator unterschiedlich verhalten haben. Bei Dir ist es vermutlich wieder ein Misch aus verschiedenen mkvcutter-Encodes/Quelldaten gewesen? Bei mir war der Encode "aus einem Guß".

  • Nach etwas mehr testen, noch mal zur Klärung:

    1. Ausführen der Optionsdatei egal ob mit 6.2.0 oder 6.3.0 führt zu einer asynchronen Wiedergabe des Ergebnisses
    2. Extrahieren der Streams aus dem asynchronen Ergebnis und erneutes Multiplexen mit 6.2.0 oder 6.3.0 fixed die Asynchronität
    3. wenn man bei 2. einfach ein Remuxing macht in dem man die Dateien in mmg öffnet und nur die Videoframerate setzt (24000/1001), bleibt das Ergebnis asynchron.
    -> entweder ich mach was falsch oder mein eigentliches Problem ist noch nicht gefixed :(

    Cu Selur

  • Mosu hat die Ursache meines Problems gefunden, liegt an den Timestamps der Audiodatei, welche im gecutteten File nicht mehr stimmen.
    Die einzige Lösung ist wohl den Audiostream nach dem cutten zu extrahieren und ihn als raw stream beim Multiplexen zu verwenden,.. :/
    (alles etwas unschön, vor allem wenn _AudioCut.mkv nicht nur einen sondern mehrere Audio- und Untertitelspuren enthält)

  • Hat er eine Erklärung dazu abgegeben, warum die Zeitstempel in der geschnittenen Audio-/Untertitel-Datei nicht mehr passen - aber nach dem Remuxen schon? Rein interessehalber. Du schneidest den Ton ohne die Videospur, oder?
    Betrifft das nur den Ton oder auch die Untertitel? Weil letztere haben ja auch als Rohdaten praktisch Zeitstempel - Ton und Untertitel müßten bei mindestens einem der Schritte auseinanderdriften. Zwischen direkt muxen und demuxen+remuxen dürfte sich dann keine Änderung ergeben.

  • Nope, hat nicht erklärt warum der Effekt auftritt. Der Punkt um den es beim Fixen geht, ist das wenn mkvmerge ein mkv als Input bekommt, es die Timecodes übernimmt und wenn man Rohdaten importiert die Timecodes neu generiert werden.

    Was ich mache:
    1. Video stream an key frames mit mkvmerge schneiden und in mehrere mkvs extrahieren mit der Splitoption
    2. Teile die reencoded werden müssen, werden reencoded
    3. Videostreams werden extrahiert
    4. Audio&Co wird geschnitten
    5. Raw Videostreams werden mit dem geschnittenem Audio&Co mkv gemuxen

  • Der Effekt, den Remuxen auf Zeitstempel hat, ist mir bekannt. Ich frage mich nur, warum die "vfr"-Zeitstempel des Tons (also direkt nach dem Schneiden mit --split parts(?)) nicht exakt zu den Schnitten am Bild passen. Ich nehme an, daß Du diese Schnittliste für den Ton exakt anhand der des Bildschnitts erstellt hast? Diese "vfr"-Zeitstempel müßten ja eigentlich genau zu den Schnitten am Bild passen, eben gerade weil sie "vfr" sind.
    Umgekehrt: wenn ich den Ton hinterher auf "cfr" bringe: 1. warum paßt dies besser, als die Schnittberechnungen von mkvmerge? 2. paßt dies auch bei langen Filmen mit sehr sehr vielen Schnitten, oder driftet es dann irgendwann auseinander?

    So ganz durchschaut habe ich es noch nicht, aber umso länger ich darüber nachdenke, umso mehr komme ich zu dem Schluß, daß entweder mkvcutter oder mkvmerge dort etwas ganz gewaltig falsch machen müssen. Meiner Meinung nach müßte Deine Methodik (soweit ich sie erraten kann) vollkommen korrekt sein. Ich werde es mir noch genauer anschauen.

  • Soweit ich es verstehe ist das Problem entweder, dass die Timestamps entweder schon beim Original mkv welches ich schneide wohl irgendwie nicht korrekt sind oder halt der Splitaufruf ist irgendwie murks:

    Code
    -o
    H:\\Temp\\test3_AudioCut.mkv
    --split
    parts:00:09:02.000-00:09:03.668,+00:09:05.169-00:09:07.339,+00:09:09.716-00:09:13.470,+00:09:17.599-00:09:19.433,+00:09:24.773-00:10:23.289,+00:12:22.241-00:12:32.126,+00:13:53.583-00:13:56.669,+00:21:47.307-00:21:56.023,+00:41:44.713-00:42:14.367
    --no-video
    F:\\Cuttest.mkv


    hat sich bei Mosu aber so angehört, als ob wohl vermutlich die Quelle beim Audio merkwürdige TimeCodes hat. :/

Jetzt mitmachen!

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