Kodieren mit x264 plötzlich sehr langsam...

  • Hallo zusammen,

    mir ist heute beim kodieren meiner Sat-Aufnahmen aufgefallen, dass das System sehr langsam geworden ist. Bei 1280x720 und 50fps gibt mir x264 per Kommandozeile bei einem File von nicht mal 15 Minuten länge eine Zeit von über zwei Stunden an. Das war vor ein paar Monaten noch deutlich anders. Da habe ich in einer Nacht locker 7-8 Dokus wandeln können, jetzt nicht mal die Hälfte. Ich habe bewusst an der Konfiguration meines Rechners kaum etwas geändert, lediglich die GK wurde von AMD auf NVidia geändert. Gestern hab ich zudem die 32Bit-Variante von ffdshow installiert, da der TSDoctor diese verlangte. Die hab ich heute aber wieder deinstalliert, aber daran hat es nicht gelegen. 2 Stunden für nicht mal 15 Minuten Material bei einem i5 2500K mit 4 Kernen und 4,2GHz beim reinen runterrechnen (keine Filter oder so) finde ich dann schon arg langsam.

    Als Einstellungen für den Codec benutze ich folgendes:

    Zitat


    "C:\Program Files (x86)\x264\x264.exe" "avs.avs" --output "%%~ni.h264" --preset slow --tune film --vbv-bufsize 78125 --vbv-maxrate 62500 --profile high --level 4.1 --crf 20

    die avs-Datei schaut so aus:

    Zitat


    LoadPlugin("C:\Program Files (x86)\StaxRip\Applications\AviSynth plugins\LSmash\LSMASHSource.dll")
    LWLibavVideoSource("Quellvideo.mkv")
    ConvertToYV12()

    Laut Taskmanager liegt der CPU-Anteil vom Codec bei 99%, es scheint also auch kein anderer Prozess Leistung zu nehmen.

    Ist jemanden von euch schon einmal das Phänomen begegnet?

    Besten dank

    Lapje

  • Du verwendest hier eine CRF-Encodierung mit VBV-Einschränkungen. Warum wird es langsam ... muss x264 häufig GOPs recodieren, um die VBV-Grenzen einzuhalten?

    Moment, dieser Modus wurde bei x265 doch erst kürzlich eingeführt. Unterstützt x264 so was überhaupt ebenfalls? Oder schlafe ich noch im Hirn? :grübeln:

  • Zitat

    Zudem ist die von Dir gezeigte die 2er-Version, ich habe noch die 1.2x,

    Ja,ist die neuere Version 2.xx.

    Hab nun mal des Sys.Image auf den früheren Zustand wo noch Version 1.2 aktuell inst. zurückgestellt.
    Auch hier absolut nichts von ffdshow....nur LAV als Splitter und DeCoder.

    Bin zwar auch ein Fan von ffdshow / LAV oder CCCP,aber nur zielgerichtet und nicht dauerhaft auf Videorechner mit Canopus Produkten.

    In den allermeisten Fällen nehme ich den TsDoctor zum Säubern,
    Geschnitten [natürlich im direct stream copy] gehts dann mit Xilisoft Videocutter 2 oder Video ReDo TV Suite 5.

    Cypheros-TS-Doctor-1.2.181.jpg

    TsDoc_Old_LAV.jpg

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Unterstützt x264 so was überhaupt ebenfalls? Oder schlafe ich noch im Hirn? :grübeln:


    Du schläfst noch!
    CRF Encodierung mit VBV-Einschränkungen gibt es schon seit uralten Zeiten.
    Anders wären machinenspezifische Umwandlungen auch gar nicht möglich (BluRay/AVCHD/etc.)
    Lapje: Wie kommst du darauf, das deine x264 Settings BluRay kompatibel sind?
    Deine vbv Werte sind viel zu hoch. Schau mal hier;https://sites.google.com/site/x264bluray/home/720p-encoding
    Du schriebst auch nicht , ob du von 1920x1080 zu 1280x720 wandelst.
    Bei mir auf einem i7 geht das wandeln zu 1280x720 in weit über Echtzeit.
    Merkwürdig, das es bei dir so lange dauert.
    Benutzt du StaxRip als GUI für deine Encodes?
    Probier mal die Kommandzeile vom x264 und/oder einen anderen Decoder.
    Statt LWLibavVideoSource mal FFVideosource testen.
    Und wieso sind deine SAT Aufnahmen schon im MKV Container.
    Kann mich nicht erinnern, das irgendein Sender sowas benutzt :D

  • Hola,

    das was ich oben gespostet habe ist die Batch-Datei, daher alles auf Kommandozeile und das Ausgangsmaterial ist auch 1280x720. Ein Fehler ist dann, dass ich die VBV-Werte von den FHD-Einstellung übernommen habe. Das habe ich nun geändert.

    Ich verwende LWL da FF bei mir Probleme gemacht hat, der hat dann gerne mittendrinn mit der Fehlermeldung "Invalid initial pts dts" abgebrochen, daher bin ich auf LWL umgestiegen. Bisher hat das auch immer gut funktioniert.

    Das mit mkv ist leicht erklärt: Ich gebe die Schnittpunkte beim TSD an und rufe die Stapelabarbeitung dann per Batchdatei auf, in dieser wird die ts-Datei direkt via mkvmerge in mkv umverpackt. So kann ich diese auch vor dem Umrechnen noch mit den meisten Playern anschauen - ts geht auf meinem BD-Player z.B. nicht.

    Wo liegt denn genau der Unterschied zwischen LWL uind FF?

  • Teste mal nur die Geschwindigkeit des Skripts. Einmal mit LWLibavVideoSource() und einmal - wie von Taurus empfohlen - mit ffvideosource(). Einfach nur zu schauen, ob das Problem bei AviSynth oder bei x264 liegt.
    avs2pipemod.exe -benchmark "avs.avs"

    Würde bei der Gelegenheit gleich auch eine 64bit-Version von x264 (ich hoffe Du bist nicht auf XP 32 oder ähnlich) wechseln, die bringt noch etwas mehr Geschwindigkeit. (Aber eher 10% als 100%, das allein ist also keine Erklärung) Dann über Pipe:
    avs2pipemod -y4mp "avs.avs" | "C:\Program Files (x86)\x264\x264.exe" - --demuxer y4m --output "%%~ni.h264" --preset slow --tune film --vbv-bufsize 78125 --vbv-maxrate 62500 --profile high --level 4.1 --crf 20

    Schau außerdem während des Enkodierens auf die CPU-Frequenz. Vielleicht ist die CPU im Energiesparmodus. (CPU-Z)

  • Ich habe jetzt versucht das ganze so in einer Batch-Datei einzufügen oder per Eingabeaufforderung zu starten:

    Zitat


    avs2pipemod -y4mp "avs-Bench.avs" | "C:\Program Files (x86)\x264\x264.exe" - --demuxer y4m --output "test.h264" --preset slow --tune film --vbv-bufsize 78125 --vbv-maxrate 62500 --profile high --level 4.1 --crf 20

    bekomme nur die Meldung "failed to load avisynth.dll" und "x264[error] could not open input file '-'"...

    Einmal editiert, zuletzt von Lapje (19. März 2016 um 21:41)

  • avs2pipemod mußt Du erst runterladen und dorthin entpacken, wo Du es verwenden möchtest bzw. mit dem ganzen Pfad aufrufen, wie Du es bei x264 gemacht hast. (Oder in einen Ordner, der in PATH o.ä. hinterlegt ist.)

  • Zitat


    "E:\DVB\avs2pipemod.exe" -y4mp "avs-Bench.avs" | "C:\Program Files (x86)\x264\x264.exe" - --demuxer y4m --output "test.h264" --preset slow --tune film --vbv-bufsize 78125 --vbv-maxrate 62500 --profile high --level 4.1 --crf 20

    leider gleiche Fehlermeldung

  • Zitat


    "E:\DVB\avs2pipemod.exe" -y4mp "avs-Bench.avs" | "C:\Program Files (x86)\x264\x264.exe" --demuxer y4m --output "test.h264" --preset slow --tune film --vbv-bufsize 78125 --vbv-maxrate 62500 --profile high --level 4.1 --crf 20

    aktuelles ASynth installiert, aber immer noch gleiche Fehlermeldung...

    Zitat


    # LoadPlugin("C:\Programme\StaxRip\Applications\AviSynth plugins\ffms2\ffms2.dll")
    # FFVideoSource("test.mkv")

    LoadPlugin("C:\Program Files (x86)\StaxRip\Applications\AviSynth plugins\LSmash\LSMASHSource.dll")
    LWLibavVideoSource("test.mkv")

  • Bei dem x264-Aufruf fehlt noch ein "-". Hast Du die Meldung mit "failed to load avisynth.dll" immer noch?
    Deinstallier AviSynth, lösche den Ordner und durchsuche Deine Festplatte nach allen "avisynth.dll", die Du finden kannst, und lösche sie. Installier AviSynth neu. PC neu starten. Wieder testen.
    Wenn das nicht klappt, bin ich überfragt. Vielleicht irgendein dll-Konflikt, aber damit kenne ich mich nicht aus. Solange es nur die eine, richtige avisynth.dll gibt und der Ordner nicht zugemüllt ist, sollte alles klappen.

    Das folgende Tool kann möglicherweise bei der Fehlersuche helfen:
    http://forum.doom9.org/showthread.php?t=170647

  • das mit der dll werde ich morgen erst prüfen können, wenn ich den "-" aber wieder reinmache, bekomme ich wieder die Meldung "Could not open input File '-'". Also könnte der Fehler auch davor liegen...

  • Moin,
    ich weiß ja nicht was in deinen mkv's drin steckt.
    Aber ich habe gestern Abend nur aus Jux und Tollerei mal ein
    1280x720 50p m2ts in mkv gewandelt,
    und abschließend mit deinem AVS Script(FFVideosource)
    mit deinen x264 Einstellungen encodiert (von der Kommandozeile).
    Die Bitrate der originalen m2ts/mkv lag so bei 15 MiB.
    Standard x264 Zeugs (AVCHD)
    An die 70 Frames beim Encoding mit einem I7@4.3GHz.
    LWLibavVideoSource war komischerweise viel langsamer,
    obwohl ich den sonst immer benutze.
    Scheint so als wenn die neuste Version sich etwas beißt mit meinem System.
    Wenn du noch Hilfe beim Debugging brauchst, melde dich.
    Habe noch irgendwo einen I5 (Laptop) herum liegen, könnte es damit nach stellen.
    Normalerweise encodiere ich x264 mit "veryslow" und komme bei 1280x720 Material
    knapp auf Echtzeit (50 Frames)
    Ist schon komisch, das es bei dir so schleicht.
    Gruß

    Taurus

  • Gut, Du hast einen i7, schon etwas anderes als mein i5, das Problem war zudem, dass ich bei FF immer Probleme hatte, entweder die beschriebene Fehlermeldung, oder das der Clip plötzlich doppelt so lange war weil sich der Ton wiederholt hatte...

  • Gerade M2TS mit Interlaced-Video ist schwierig zu handhaben. Selbst mit "threads=1" hatten frühere Versionen von FFMS2, die sich da noch auf Haali verlassen haben, so ihre Probleme. Die aktuellen verwenden zwar nun auch libav-Routinen, dennoch scheint dieses Quellformat manchmal noch Fehlverhalten zu provozieren. Mit nur einem Decoder-Thread ist die Decodierung dann zwar nicht mehr die schnellste, sollte aber immer noch eine erträgliche Geschwindigkeit haben, für sich allein schneller als Echtzeit (zu testen in AVSmeter).

Jetzt mitmachen!

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