Probier mal "FFVideoSource("C:\***\***.Wmv9.AC3-Sia.avi", fpsnum=24000, fpsden=1001)".
Beiträge von sneaker2
-
-
Eine weitere Lösung gibt es auch im folgenden Thread im englischen Doom9 (am besten komplett lesen):
http://forum.doom9.org/showthread.php?t=159457 -
Achso, "Hat sich eh erledigt mit dem konstanter rate^^" sollte bedeuten, daß Du es mit vfr hinbekommen hast. Dachte, das sollte bedeuten, daß Du auf cfr ausgewichen bist.
-
Wenn die Untertitel mit der konstanten Rate synchron sind, sind sie es auch mit der vfr-Variante, wie oben erklärt. Aber solange Du mit dem Ergebnis zufrieden bist ist es ja egal - nur als Anmerkung.
-
Am Ton änderst Du ja auch nichts, egal ob Du am Ende vfr oder cfr haben willst. Das gilt analog für die Untertitel.
-
Ob Du mit konstanter oder variabler Framerate timest macht keinen Unterschied. Die Timings verändern sich nicht. Eine Zeile bei Sekunde 5 wird immer an Sekunde 5 sein, egal ob Dein Endprodukt cfr oder vfr ist.
-
Ich hab' keine Ahnung, ob Du neu timen mußt: Das müßtest Du eigentlich selber wissen. Aber wenn es nicht synchron ist: ja, natürlich muß man dann neu timen.
-
Als Player kannst Du z.B. Media Player Classic nehmen.
Das AviSynth-Skript
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.
-
Was ich noch wollte, FFVideoSource nimmt er nicht im script
Genau Fehlerbeschreibung? Falls es wieder eine Uralt-Version sein sollte: aktuelle Version
währe directshowsource ratsam oder AVCSource, also was währe sinnvoller?
Theoretisch funktionieren beide. Teste es einfach mal aus, falls ffvideosource damit gar nicht klar kommt.
-
Wird Zeit, daß Du mal 7zip updatest....
Nichtsdestotrotz:
http://www.mediafire.com/?b725d09012zfja4 -
x264 unterstützt seit fast genau einem Jahr "--tcfile-in" - die Version die Du verwendest ist also uralt. Außerdem brauchst Du eh diese gepatchte Version.
-
Die forciert eine konstante Framerate bei einer Quelle mit variabler Rate, also z.B. einer mkv- oder mp4-Datei. Dabei werden allerdings keine Frames verworfen/dupliziert, sondern nur die Zeitstempel angepaßt.
-
'--tcfile-in' + '--force-cfr' sollte cfr output erzeugen
Nein, "--force-cfr" wird dabei einfach ignoriert. Leider gibt x264 keine Fehlermeldung aus. -
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: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 BetaBoyDXVA 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.