externen x264encoder/mkvmerge in vdub einbinden

  • hallo,
    wie binde ich einen externen Muxer in vdub ein bzw. wie lautet die Kommandline dafür?
    Die x.264.exe habe ich so eingebunden:
    --crf 16.0 --qpmin 10 --rc-lookahead 60 --chroma-qp-offset 3 --aq-mode 1 --aq-strength 1.0 --ref 3 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid 2 --weightb --direct auto --deblock -1:-1 --subme 8 --trellis 1 --psy-rd 1.0:0.18 --partitions p8x8,b8x8,i4x4,p4x4 --threads 12 --input-csp i420 --input-res %(width)x%(height) --fps %(fpsnum)/%(fpsden) -o "%(tempvideofile)" - --output "r:\extvid.mkv"
    (relevant fürs vdub einbinden des encoders nur die markierten Bereiche)

    Binde ich nun jedoch mkvmerge als Muxer über ein weiteres Profil ein, gibts ne Fehlermeldung.
    Lösche ich den Muxer, produziert vdub eine Leerdatei und encoded auch einwandfrei mit der x264.exe nach mkv. Ich glaube jedoch das ich schon bei der Encoderkommandline irgendwo etwas grundlegend falsch konfiguriert habe und das wahrscheinlich der -output Befehl überhaupt gar nicht dahin gehört, da ja mit einer video/audio Tempdatei gearbeitet werden sollte damit eben das muxen geht.

    Die Zusammenhänge der video/audio vdub Tempdatei und deren Konfiguration sind mir aber nicht klar, daher wär es mir nett wenn mir jm. sagen könnte wie was wohin gehört und wie vorallem die Kommandozeile für mkvmerge in vdub aussehen sollte.
    [Blockierte Grafik: http://img5.fotos-hochladen.net/thumbnail/vdhifsu76aek_thumb.jpg]

  • Ich glaube jedoch das ich schon bei der Encoderkommandline irgendwo etwas grundlegend falsch konfiguriert habe und das wahrscheinlich der -output Befehl überhaupt gar nicht dahin gehört, da ja mit einer video/audio Tempdatei gearbeitet werden sollte damit eben das muxen geht.


    Ja, schmeiß den Raus. "-o" und "--output" sind synonym, Du hast ihn also doppelt drin.

    Mkvmerge müßte so ausshen:
    -o "%(outputfile)" "%(tempvideofile)" "%(tempaudiofile)"

  • Mit dem zusatz alleine funktioniert es nicht. Er erstellt die mkv nun und bricht am Ende (wenn gemuxt werden soll) mit einer Fehlermeldung ab.
    Ich vermute es liegt u.a. an der restlichen vdub Config, wo die temp file namen usw. angegeben werden und vielleicht wird das nicht vom mkvmerge richtig gefunden?
    Hast du vielleicht mal einen screenshoot von deiner vdub external encoder config?

    (Audio ausgangsdatei ist ac3 und soll per direct stream copy zugefügt werden, einen audio encoder Profile brauch ich da doch nicht angeben?)

  • Würde mich wundern, wenn sich die nativen Funktionen wie "Direct Stream Copy" mit den externen Encodern vermischen ließen. Wenn Du keinen externen Audioencoder eingebunden hast, gibt es möglicherweise also gar kein %(tempaudiofile), so daß evtl. VirtualDub selbst oder spätestens mkvmerge mit einem Fehler abbricht.

    3 Mal editiert, zuletzt von sneaker2 (14. Juli 2014 um 20:07)

  • Daran könnte es liegen -nur wie bind ich den audio encoder für Ac3 dann ein für eine direct stream copy?
    (hab eac3to auf dem PC für AC3 encoding)

  • eac3to geht nicht (oder nur mit Tricks), weil es keine Pipe als Eingang unterstützt. Mit ffmpeg sollte es gehen:
    -f wav -i - -acodec ac3 "%(tempaudiofile)"
    (VirtualDub entsprechend auf wav-Ausgabe stellen.)

    Dabei wird natürlich neu kodiert, d.h. streng genommen Qualitätsverlust (auch wenn möglicherweise unhörbar).

  • Der jeweilige Audio-Encoder müsste dafür auch die Verarbeitung aus einer Pipe als Quelle unterstützen. Für QAAC sollte das bereits mal erklärt worden sein, glaube ich, bin mir aber nicht sicher in welchem Forum (hier oder doom9 oder HydrogenAudio...). Für AC3-Encodierung wäre da vielleicht Aften als eigenständiger Encoder geeignet, oder ffmpeg.

  • Also ich hab das hin und zurück probiert, aus irgendeinem Grund funkt das nicht mit dem einbinden.
    Ob es am Muxer, FFmpeg / einem Fehler in der Kommandozeile liegt, weiß ich nicht. Andererseits wenn es so ist das der output ohnehin nur als wav geht und das AC3 über ffmpeg neu encodiert werden muß, dann doch besser gleich manuell mit mkvmerge audio und video spur wieder zusammenbringen, da braucht auch nix neu codiert für werden.

    Die x.264exe hatte ich letzlich auch ehr nur aus Interesse mal eingebunden, weil es von der vfw z.z, keine neuen Revisionen gibt und ich es wg. DGIndexNV sowie der Avisyntsciprs es praktischer fand über vdub als mit einer Batch Datei für die exe zu hantieren.
    Wie auch immer, hab heut mal paar videos konvertiert mit dem alten x264vfw2273 und der aktuellen x264.exe (R2431-kmod) - eigentlich liegen da ja schon paar Revisionen zwischen ohne das allerdings ein zeitlicher Unterschied erkennbar ist. (ein visuellen habe ich eh nicht erwartet)
    Auch mit der aktuellsten Rev. sind leider weiterhin nicht alle 6Kerne im 1Pass ausgelastet.
    Kann es sein, das sich dbzgl. bei x.264 auch in Zukunft nichts mehr sonderlich tuen wird, weil der Codec im Laufe der Zeit dahingehend weitgehend ausgereizt schon am Limit des für den codec möglichen liegt?

    2 Mal editiert, zuletzt von Der_Lurchi (17. Juli 2014 um 01:18)

  • Zitat

    Kann es sein, das sich dbzgl. bei x.264 auch in Zukunft nichts mehr sonderlich tuen wird, weil der Codec im Laufe der Zeit dahingehend weitgehend ausgereizt schon am Limit des für den codec möglichen liegt?


    Große Qualitätssprünge sind in x264 sicher nicht mehr zu erwarten, er wird vielleicht noch etwas schneller und kriegt kleine Verbesserungen was Qualität&Geschwindigkeit angeht, aber wirklich große Änderungen sind eigentlich nicht mehr zu erwarten.

    Zitat

    Auch mit der aktuellsten Rev. sind leider weiterhin nicht alle 6Kerne im 1Pass ausgelastet.


    Was durchaus an deinen Settings liegen kann. ;) (nicht alle Features lassen sich im gleichen Maße parallelisieren)

  • Und wenn der erste Durchlauf so schnell ist, dass der Encoder vor allem aufs Frameserving wartet, wäre "keine Vollauslastung" auch keine Überraschung.

    Hier wäre dann Multithreading angesagt. Wenn ich beispielsweise QTGMC benutze, ist Multithreading Pflicht. Sonst nimmt Avisynth einen Kern zu 100%, währen x264 die anderen 3 Kerne nicht auslasten kann, weil einfach nicht genug Arbeit da ist. Man kann es erkennen, wenn man sich anguckt, welche Prozesse welchen Lastanteil haben.

    Gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

Jetzt mitmachen!

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