Beiträge von Akio

    Hi zusammen,

    vielen Dank für eure zahlreichen und hilfreichen Antworten, da lag die Lösung des Problems des langsamen Encodes ja an einer Stelle, die ich nie vermutet hätte... D.h. dann wohl entweder eine neue Graka oder doch FFMS2. Komme ebenfalls auch auf die ca. 45 fps im Benchmark mit AVSMeter (was auch zu erwarten war nach den neusten Infos ;) ).

    Habe ohne Resizing mit FFMS2 dann auch tatsächlich über 100 fps erreicht, mit PointResize ca. 79 fps (der auch noch reichen würde - man kann ja die Szenen zum Schneiden im Cuttermaran noch erkennen ;) ):

    Im Anschluss mit BilinearResize dann nur noch ca. 63 fps, also nicht mehr so viel schneller.

    Allerdings habe ich, wenn ich FFMS2 verwende noch ein Problem: Direkt mit den *.ts-Dateien der Aufnahme scheint der Indexer nicht gut zurecht zu kommen, sodass ich die Aufnahme mit MKVMerge einfach in eine MKV-Datei gepackt habe. Aber leider tut sich FFMS2 auch damit noch schwer, er hängt manchmal längere Zeit und ein seek geht gar nicht gut. Er erkennt auch selbst die Framerate nicht, sondern die musste ich mit AssumeFPS(25) noch hinzufügen. Hat FFMS2 da noch Schwierigkeiten, insbesondere mit DVB-S2 Aufnahmen?

    Aber es ist auf alle Fälle gut zu wissen, woran es liegt, dass er nicht schneller encodiert hat :).

    Danke und MFG!

    Danke für eure Tipps! :)
    Der x262 wäre vielleicht wirklich vielversprechend... wäre cool, wenn er verfügbar wäre.

    Beim MKVCutter wäre das Problem aber, dass er nicht framegenau arbeitet wenn ich es richtig gesehen habe...

    Hmm... was den Flaschenhals betrifft, im Einsatz ist eine GTX 275, ich hoffe, dass sie nicht der Flaschenhals ist ;-). Aber dennnoch würde mich einmal interessieren, wie man einen Benchmark in AVISynth ohne Encoding durchführen würde. Einfach per VirtualDub in MJPEG encoden? Wobei dann vielleicht die HDD limitiert.

    Aber vielleicht sind die 50fps ja auch das Limit auf der Hardware hier. Was bedauerlich wäre, wenn man bedenkt, dass x264 auf schnellsten Einstellungen ein gutes Stück schneller wäre...

    Vielen Dank für eure beiden schnellen Antworten! :)

    Ja, der Workflow ist nicht optimal, das ist wohl wahr, aber irgendwie ist er im Moment die praktikabelste Möglichkeit die ich sehe, denn die Audiospur würde ich am liebsten nicht neu encoden müssen, sondern wie "früher" bei SD auch einfach nur entsprechend den Schnittpunkten schneiden. Ebenfalls sollte der Schnitt auch komfortabel durchführbar sein, auch da habe ich mit den Schnittfunktionen in MeGUI herumprobiert, aber das klappt alles nicht so schön schnell und komfortabel wie im Cuttermaran (insbesondere das Suchen der Schnittpunkte ist wirklich langsamer, wenn man in MeGUI direkt das AVISynth-Script lädt, so kommt es mir zumindest vor). Daher dieser umständliche Weg über ein temporäres MPEG2 Video... aber am Ende hoffe ich, dass das ganze dann per Script automatisiert ablaufen kann und nur noch im Cuttermaran die Schnittpunkte gefunden werden müssen.

    Bei ffmpeg habe ich bereits herumprobiert, es mittels avs2yuv zu encoden. Bedauerlicherweise fängt ffmpeg dann garnicht an zu encoden, sondern zeigt in jedem Encodingschritt an, bei Frame 0 zu sein und mit 0 fps zu encodieren und das bei q=0... also irgendetwas stimmt da noch nicht. Ich habe es auch nur mit einer älteren ffmpeg-Version überhaupt soweit kommen lassen können, die neueren Versionen brachen bei mir leider auch mittels avs2yuv direkt ab, das werde ich aber noch einmal näher untersuchen... vielleicht habe ich da unbedacht die 64bit Variante verwendet und schaue mir die commandline noch mal genauer an und poste sie mal.

    Aber vielleicht wäre das ja gar nicht mehr nötig... denn mit dem HCenc auf "fast" habe ich bereits ca. 46-50 fps erreicht, danke für den Tipp, das war mir vorher irgendwie entgangen (oder ich habe mich an die falschen fps erinnert oder im 2-Pass-Mode gearbeitet ;) ). Aber eine Frage bleibt mir da noch:

    Zitat von sneaker2

    Mit meinem etwas älteren QuadCore erreiche ich mit HC Geschwindigkeiten im dreistelligen fps-Bereich bei HD-Auflösung. Schau dort doch noch mal nach, ob Du auch schnelle Einstellungen (profile "fast", 1 pass, SMP). Evtl. bietet sich auch ein schnelles Downsizing in AviSynth an, um Encodierzeit zu sparen.

    Hier würde mich interessieren, wie du fps im dreistelligen Bereich erzielt hast. Hier habe ich als Quelle eine Full-HD Aufnahmen mit h.264 Videostream und alles was im AVISynth-Script steht ist ein DGSource und ein BilinearResize auf 720x576 Pixel. Aber ich habe es auf einem i7 860 (@2.8 GHz) nur auf knapp 46-50 fps geschafft. Ausgewählt habe ich im HCEnc das Profil "fast" und habe dann mit einem Const-Quantizer encodiert. Welche Einstellungen wären noch erforderlich/nützlich um die Geschwindigkeit weiter zu steigern? Und was meinst du genau mit schnellem Downsizing in AVISynth? Gibt es da noch eine schnellere Methode als ein BilinearResize? :)

    Danke schon mal!
    MFG

    Hi zusammen,

    wie der Titel bereits andeutet, bin ich auf der Suche nach der schnellsten Möglichkeit, MPEG-2 Videos aus einem AVI-Synth-Script zu erzeugen. Die Qualität ist dabei NICHT von Bedeutung.

    Der Hintergrund ist der folgende. Schon seit längerem bin ich auf der Suche nach einer passenden Möglichkeit, Aufnahmen von HD-Sendern Framegenau und mit demselben Komfort zu schneiden, wie ich es von normalen SD-Aufnahmen über ProjectX und Cuttermaran gewöhnt war. Nach langem hin und her probieren von diversen Tools (darunter auch der neue Smart Cutter von TMPGEnc), die jedoch fast immer zu Artefakten an der Schnittstelle geneigt haben, scheint es ohne Reencode nicht möglich zu sein, einen sauberen Stream als Ergebnis zu bekommen.

    Ich hatte dann die Idee, aus der HD-Aufnahme so schnell wie Möglich ein MPEG-2 Video zu erzeugen, welches dann in den Cuttermaran geladen werden kann. Anschließend kann ich das Video im Cuttermara schneiden (so wird mir gleichzeitig die Audio-Spur geschnitten) und aus dem gespeicherten Projektdatei können dann die Cut-Points extrahiert werden, dich dann zu einer Cutlist für AVISynth nutzen kann. Und das resultierende Script ginge dann direkt an x264 in ein CRF-Encode. Mit dem Ergebnis könnte man dann je nach Bedarf weiter verfahren (z.B. MKVs draus machen).

    In AVISynth lade ich die Ausgangsaufnahme mit DGAVCIndex, was auch sehr gut funktioniert. Zum erstellen der MPEG2 Datei habe ich bereits den HCEnc ausprobiert, allerdings komme ich nicht wirklich weit über ~25fps hinaus, was also doch recht lange dauert.

    Beim Testen von ffmpeg als Encoder hat sich dann ergeben, dass ich fast ~60fps erhalte, was schon deutlich besser ist. Jedoch habe ich die *.ts-Datei direkt in ffmpeg geladen, was dazu geführt hat, dass die Anzahl der Frames zwischen dem AVISynth-Script und der ffmpeg erzeugten MPEG-2 File voneinander abwichen, was natürlich nicht gut ist, da die MPEG-2 Datei die Basis für die Schnittpunkte bilden soll.

    Als Lösung dachte ich mir, ich füttere einfach das AVISynth-Script direkt an ffmpeg. Und genau hier fangen die Probleme an. Ich habe es partout nicht geschafft, das AVISynth-Script an ffmpeg zu verfüttern. Und auch mit dem mencoder habe ich da noch keine großen Erfolge erzielt.

    Daher meine Frage (die ich zuerst einmal etwas allgemein halten wollte): was ist die schnellste Möglichkeit die ihr kennt, um aus einem AVISynth-Script welches DGAVCIndex nutzt eine MPEG-2 Videofile zu erstellen?

    Und im speziellen: Wie kann ich ein AVISynth-Script welches DGSource als Quellfilter verwendet an ffmpeg weiterreichen?
    Und als Alternative: Wie würde es aussehen (bzw. wie könnten die Settings von mencoder lauten) um aus dem AVISynth-Script (schnell) ein MPEG-2 Videofile zu erstellen?

    Aber vielleicht gibt es für die Ursache meines Problems auch schon eine viel elegantere Lösung ;-). Über eure Antworten würde ich mich freuen!

    MFG