Beiträge von sneaker2

    Als Player kannst Du z.B. Media Player Classic nehmen.

    Das AviSynth-Skript

    Code
    FFVideoSource("C:\AVSscripts\zkc71080p.mp4",timecodes="C:\AVSscripts\zettai7time2.txt")

    mußt Du dann kurz mit dem Player öffnen, es dauert einen Moment und dann startet das Video (kannst den Player nun wieder schließen, brauchst Dir nicht das komplette Video anschauen). Während dieses Moments erstellt FFVideoSource die Datei "zettai7time2.txt", welche nun die Timecodes enthält. Diese Datei kannst Du dann in Aegisub laden und später als vfr-Parameter für assrender angeben.

    Du wendest NHMLTransform vollkommen falsch an, lies' nochmal die Beschreibung. Bei meiner Methode braucht man aber eh kein NHMLTransform, weshalb ich auf Deinen Fehler nicht näher eingegangen bin.

    Du sagst, daß Du die Timecode-Datei per Aegisub erstellt hast? In der aktuellen Version kann es damit Probleme geben. Was für ein Format hat denn dein Quellvideo? Notfalls die Timecodes manuell rausziehen über "ffvideosource("quelle.mp4",timecodes="timecodes.txt")" - das Script einmal kurz mit einem Player anspielen und schön müßtest Du die korrekten Timecodes haben. Dann das Video, den Ton, die gerade erstelle "timecodes.txt" über "Video">"Öffne Timecode-Datei" und den Untertitel in Aegisub laden. Den Untertitel korrekt timen und abspeichern. (Nicht die Exportfunktion nutzen)
    Danach wieder das Script mit "assrender("untertitel.ass",vfr="timecodes.txt")" und der von mir vorgeschlagenen x264-Kommandozeile nutzen.

    Schau dir bitte auch immer Deine Scripte in einem Player an, um sicherzustellen, daß Bild und Untertitel synchron sind, bevor Du wieder eine Stunde Zeit mit Enkodieren verschwendest.

    Ich glaube Du mußt nochmal zurück ans Reißbrett, irgendwas läuft da mächtig falsch bei Dir.

    Bist Du dir überhaupt sicher, daß Deine Timecode-Datei korrekt ist? Wenn Du ffvidesource nicht zum Laufen bekommst und Dir NHMLTransform unbekannt ist, frage ich mich, wie Du sie überhaupt erstellt hast.

    Nebenbei: wenn man den Videostream reencoded, kann man auch die TimeCodes an x264 übergeben und dem sagen, dass es einen cfr Stream erzeugen soll.



    Nein, kann man nicht. Wenn man --tcfile-in verwendet, ist das Ergebnis eine vfr-Datei. (Solange der Ausgabecontainer es unterstützt)

    5. Muxe Video und Audio und gib dem Muxer dabei die Timecodes für das Video.

    meinst du nach dem muxen per cmd/mp4box/perl

    Vielleicht habe ich Dich mißverstanden: Soll Deine Zieldatei eine variable oder eine konstante Framerate haben? Meine Anleitung ist für ein Ergebnis mit variabler Framerate.

    Für eine konstante Framerate mußt Du nur "FFVideoSource("vfr-quelle.mp4", fpsnum=24000, fpsden=1001)" im Skript verwenden. Die vfr-Parameter kannst Du dann einfach weglassen. Auch bei dieser Variante "Datei">"Untertitel speichern unter..." wählen - NICHT die Exportfunktion.

    Ansonsten meinte ich mit Punkt 5 genau das, was Selur Dir mit NHMLTransform erklärt hat.

    Es gibt noch eine alternative Möglichkeit mit dieser gepatchten x264-Version, die bereits eine fertige mp4-Datei mit Ton und vfr erzeugt, ohne daß man noch mit NHMLTransform nacharbeiten muß.
    Die Kommandozeile sollte dann folgendermaßen aussehen:
    x264 --tcfile-in "timecodes.txt" --audiofile "ton.aac" --acodec copy -o "Zieldatei.mp4" "Quellvideo.avs"
    (Presets, Tunings, CRF etc. nach Geschmack)

    Öffnest Du denn die Quelldatei mit Timecodes?
    Wo man durcheinanderkommen kann, ist sicherlich die Export-Funktion von Aegisub. Bei jedem Export mit Frameratenanpassung werden alle Timings verändert. Deshalb würde ich die Methode mit dem vfr-Parameter bevorzugen und in Aegisub nur "Datei">"Speichere Untertitel unter..." wählen.

    Was passiert, wenn Du das Script in einem Player öffnest? (MPC, VirtualDub, etc.)
    Hat die timecode-Datei das richtige Format? Also z.b:

    Code
    timecode format v2
    0
    42
    83

    Versuch ansonsten mal eine andere vsfilter-binary, z.B. von xvidvideo.ru. Oder assrender. (Letzteres muß mit "loadcplugin()" geladen werden)

    Ich bin mir nicht sicher, ob ich Deinen Post zu 100% verstanden habe: Du willst alle 3 Untertitel fest einbrennen, richtig?

    Achte nochmal auf die Reihenfolge der Arbeitsschritte:
    1. Öffne das Quellvideo in Aegisub, dabei muß entweder
    a) das Quellvideo bereits die Timecodes enthalten (z.B. eine Matroska-Datei)
    b) Du die Timecodes manuell über den Punkt "Video">"Öffne Timecode-Datei" nachladen
    2. Time nun alle Deine Untertitel und speichere sie
    Stelle während keines Schrittes irgendwelche Frameraten oder ähnlich in Aegisub ein (wie LigH schon sagte)
    3. Brenne die Untertitel mit AviSynth ein, dazu brauchste Du eine vfr-fähige vsfilter- oder assrender-Version. Die Timecode-datei gibt's Du mittels des Paramenters "vfr" ein. (z.B.: "textsub("unterntitel.ass",vfr="timecodes.txt")" oder "assrender("untertitel.ass",vfr="timecodes.txt")
    4. Enkodiere das AviSynth-Skript
    5. Muxe Video und Audio und gib dem Muxer dabei die Timecodes für das Video.

    Das Ganze läßt sich noch etwas abwandeln, aber ist zumindest eine mögliche Lösung.

    BetaBoy schreibt viel, wenn der Tag lang ist.

    Zitat vom Montag:

    Zitat von BetaBoy

    DXVA resizing and software fallback was one of our last todo's for 2.5.... not sure if they will make it, but they are on the table atm with a few days left for QA and final release.

    ....
    Version 2.0 ist vor 15 Monaten erschienen.