Beiträge von LigH

    Stürzt MeGUI selber ab, oder der aufgerufene Encoder (ffmpeg)?


    Vielleicht ist es ja möglich, den letzten Befehl (Zeile 51, statt -i - aber das temporäre Audio-Skript, falls das noch zu finden ist, oder aus den Zeilen 21-42 rekonstruieren) per Batchdatei oder direkt in CMD auszuführen, um unabhängig von MeGUI das Ergebnis zu bekommen und die neue Tonspur danach nur noch mit dem konvertierten Video zu multiplexen. Das klärt zwar nicht die Ursache, aber verhilft vielleicht zu einem Ergebnis.

    Ich vermute mal, dass dein System vielleicht mit den MKV-Dateien besser zurecht käme, wenn sie mit anderen Optionen gemultiplext werden. Leider kann ich nicht erraten, welche das sein sollen... ich erinnere mich schwach, dass Verkettungen mit vorherigen und nachfolgenden GOPs möglich sind.


    Vielleicht unterstützt das System ja MP4-Dateien mit faststart-Option besser als MKV. Da sind dann aber auch nur Inhalte erlaubt, die im MP4-Standard unterstützt werden.

    Ob jetzt FFmpeg Static gelinkt oder fest verwurzelt ist, spielt (meine ich) keine Rolle ;)

    Befehl ist Befehl.

    Nein.


    Es gibt bei OBS keine ffmpeg.exe, die über einen Kommandozeilenbefehl aufgerufen wird. Es gibt Programmfunktionen innerhalb von OBS, die ohne jede Kommandozeile im Programm verwendet werden, über Heap und Stack und CPU-Register.


    Vielleicht ist dir ja auch schon mal bei x264 oder x265 aufgefallen, dass die Liste an Parametern, die als Zusatzinfo im Videostream gespeichert wird, gar nicht den Kommandozeilenparametern entspricht, die man an eine x264.exe oder x265.exe übergeben hätte, beispielsweise findet man da niemals etwas mit Preset oder Tuning. Das ist ein ähnliches Prinzip: Man muss diese Encoder nicht über einen Kommandozeilenbefehl steuern, man kann sie auch in einem Programm verwenden, das niemals eine Kommandozeile generiert, sondern stattdessen eine Datenstruktur mit unterschiedlichen Werten allein im Hauptspeicher ablegt und dann deren Adresse über eine Programmfunktion an die eingebundene Encoderfunktion übergibt.

    Wenn ich mich recht erinnere, unterstützen NVEnc und QSEnc möglicherweise nicht den verlustlosen Modus der H.264-Kompression, weil dieser grundlegend anders funktioniert als die üblichen Algorithmen im Main- und High-Profil. Sie unterstützen aber wohl auch nicht den CRF-Modus wie x264, oder es würde mich überraschen, dass GPU-Hardware-Encoderchips das tun. Korrigiert mich, wenn meine Erinnerungen veraltet sind... :saint:


    In einem Reddit-Beitrag habe ich diese Empfehlung für verlustfreie Aufzeichnungen mit ffmpeg und libx264 im RGB-Modus mit vollem Farbumfang (notwendig für die Aufzeichnung von Computerspielen) gefunden. Es kann aber gut sein, dass andere verlustfreie Videocodecs einen geringeren Rechenaufwand haben als x264.

    Eventuell wäre diese Meldung noch interessant, kommt die bei dir auch in der Konsole bei mencoder?


    Code
    1. ** MUXER_LAVF *****************************************************************
    2. REMEMBER: MEncoder's libavformat muxing is presently broken and can generate
    3. INCORRECT files in the presence of B-frames. Moreover, due to bugs MPlayer
    4. will play these INCORRECT files as if nothing were wrong!
    5. *******************************************************************************

    Ähnliches Verhalten in GSpot: Bei ffmpeg meldet es "Interleave: 1 vid frame (40 ms)", bei mencoder fehlt diese Angabe. (Ich hab das mit 25 fps PAL versucht.)


    An der Index-Struktur kann man auch erkennen, dass wahrscheinlich nicht interleaved wird: Bei ffmpeg kommen die Einträge mit 01wb und 00dc (im Hex-Editor sichtbar) abwechselnd, bei mencoder voneinander getrennt in Gruppen.

    :/ Nicht interleaved? Das heißt, Video und Audio nacheinander? =O Wer macht denn so was... :rolleyes:


    Leider kenne ich für mencoder noch nicht einmal einen Befehl, der mir seine Dokumentation ausgibt (falls die überhaupt integriert wird wie bei ffmpeg). Aber MABS lädt die Dokumentation vom Repo mit herunter; mal stöbern...


    Versuch mal, die Option -idx relativ früh in deiner Kommandozeile einzufügen.

    Sehr empfehlenswert ist das TIVTC-Paket, aktuell von pinterf (das wird gerade zusammen mit TDeint für AviSynth+ noch ordentlich aktualisiert, auch als 64-bit-Version).


    Allgemein sollte ein Skript etwa so aussehen:


    Code
    1. LoadPlugin("TIVTC.dll")
    2. # eine Videoquelle, möglichst FFVideoSource oder LwLibavVideoSource
    3. TFM()
    4. TDecimate()


    Allerdings haben die Funktionen auch noch mögliche Parameter, die gerade bei Zeichentrick die automatische Telecine-Muster-Erkennung unterstützen oder gar die manuelle Vorgabe von Startwerten erlauben.


    Selur : QTGMC ist doch nur für lineares Interlacing geeignet, nicht für Telecine... oder willst du damit Artefakte aus einem falsch erkannten Pulldown-Muster kaschieren? Besser wäre wohl, erst mal zu schauen, dass das 3:2-Muster wirklich korrekt zum Material passt, also aus den 5 möglichen Startwerten der richtige verwendet wird.

    Nun, wie gesagt: Es ist bei Zeichentrick nicht leicht, das Wiederherstellungsmuster vollautomatisch richtig zu erkennen. Kann gut sein, dass es für AvISynth da schlauere Plugins gibt, besser konfigurierbare Plugins, oder dass man den Funktionen, die in ffmpeg eingebaut sind, etwas helfen muss ... da ist dann mein Wissen an seinem Ende. Mal schauen, wer sonst noch Ideen hat.