• Hallo zusammen,

    ich bin dabei Videos mit xvid zu encodieren. Habe dabei schon einige Tools ausprobiert, Vdub, mencoder und xvid_encraw.

    Bevorzugen würde ich ein CLI-Programm wie xvid_encraw. Beim Encodieren ist mir folgendes aufgefallen was ich mir nicht wirklich erklären kann.

    Vdub encodiert um ein vielfaches schneller als mencoder und xvid_encraw. Für alle werden die selben Einstellungen benutzt. Und gerade Vdub + xvid_encraw sollten doch ähnlich funktionieren da sie beide die xvidcore.dll nutzen oder sehe ich das falsch?

    Hier ein paar Daten:

    Länge der Ausgangsdatei 1:29min

    VDUB
    Zeit (min) Dateigröße (KB)
    6:18 16.246

    Xvid_encraw
    Zeit (min) Dateigröße (KB)
    20:00 14.881

    Mencoder
    Zeit (min) Dateigröße (KB)
    12:10 16.269 KB

    Desweiteren ist mir aufgefallen das xvid_encraw die benötigte Encodingzeit falsch ausgibt, im obigen Beispiel waren es laut xvid_encraw ca. 3 min, real aber 20 min.

  • Beim Encodieren ist mir folgendes aufgefallen was ich mir nicht wirklich erklären kann.

    Vdub encodiert um ein vielfaches schneller als mencoder und xvid_encraw. Für alle werden die selben Einstellungen benutzt.

    So und nun postest Du bitte die verwendeten Versionsnummern, alle ALLE Einstellungen, ALLE LOGs und bitte die techn Daten Deiner Quelle.

    Denn Ohne das alles stimmen Deine MesseErgebnisse nicht und besser gesagt, ich glaube das nicht und muß sagen, das Du was falsch machst.

    Würde mich freuen, wenn Du das fehlende Nachreichen könntest. DANKE

  • Alternative zu VirtualDub als CLI: AVS2AVI

    AVS2AVI hab ich jetzt auch probiert und ähnlich schlechte Ergebnisse:

    16:39.727 min; 14.882 KB
    8:06.079 min; 15.228 (ohne deinterlace)

    Sehe ich das richtig das die aktuellen Einstellungen des Xvid VfW genommen werden?

  • Normalerweise sollte AVS2AVI vor dem Encoden den VFW Konfigurations Dialog öffnen,...

    Würde es wie Katjarella auch begrüßen, wenn Du genauer schreiben könntest welche Versionen an Tools und welche Encoder Versionen zu benutzt hast.

    Cu Selur

    Ps.: falls sich nicht wer aufrafft und es vorher tut werde ich Montag mal einen kleinen eigenen Vergleich machen.

  • Hier möglichst detailiert meine Konfiguration:

    VDub 1.6.17 (build 24469), anbei schicke ich die Settings-Datei.

    Mencoder:

    Code
    MEncoder Sherpya-SVN-r23404-4.2.0 (C) 2000-2007 MPlayer TeamCPU: Genuine Intel(R) CPU           T2500  @ 2.00GHz (Family: 6, Model: 14, Stepping: 8)CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1Compiled with runtime CPU detection.

    Habe aber auch den offiziellen Build probiert

    Code
    MEncoder 1.0rc1-3.4.2 (C) 2000-2006 MPlayer TeamCPU: Genuine Intel(R) CPU           T2500  @ 2.00GHz (Family: 6, Model: 14, Stepping: 8)CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0Compiled with runtime CPU detection.

    mit gleichen Ergebnis.

    mencoder-Commandline:

    Code
    mencoder -ovc xvid -ofps 25 -oac mp3lame -srate 44100 -audio-preload 1.5 -of avi -mc 0 -vf pp=lb -xvidencopts "bitrate=1500:min_iquant=1:max_iquant=31:min_pquant=1:max_pquant=31:min_bquant=1:max_bquant=31:max_bframes=2:bquant_ratio=150:bquant_offset=100:me_quality=6:lumi_mask:chroma_me:qpel:gmc:vhq=4:quant_type=h263" -lameopts "cbr:preset=128:mode=0" -o outavi  in.avi


    xvidencraw:

    Code
    xvid_encraw - raw mpeg4 bitstream encoder written by Christoph Lampert 2002-2003xvid_encraw built at 21:11:14 on Jul 12 2006xvidcore build version: xvid-1.2.0-devBitstream version: 1.2.-127Detected CPU flags: ASM MMX MMXEXT SSE SSE2 TSCDetected 2 cpus, using 1 threads.

    xvid_encraw Commandline:

    Code
    xvid_encraw -i xvid.avs -single -bitrate 1500 -max_key_interval 250 -max_bframes 2 -bquant_ratio 150 -bquant_offset 100 -nopacked -quality 6 -vhqmode 4 -bvhq -qtype 0 -qpel -gmc -closed_gop -lumimasking -notrellis -imin 1 -imax 31 -pmin 1 -pmax 31 -bmin 1 -bmax 31 -bvhq -bmin 1 -threads 1 -progress 100 -avi out.avi

    zugehöriges AVS-Skript:

    Code
    DirectShowSource("in.avi",fps=25,audio=false)ConvertToYV12()edeintted = last.SeparateFields().SelectEven().EEDI2(field=-1)TDeint(order=-1,edeint=edeintted)


    AVS2AVI:

    Code
    AVS2AVI v1.39 (c) 2002-2004:
    Christophe Paris, David Leatherdale, int21h, Moitah
    http://www.avs2avi.org/

    AVS2AVI AVS s.o.

    Habe vermutet das es evtl. an den Filtern liegt die ich im AVS-Skript benutze, Tdeint ist wohl etwas aufwändiger als der "blend-deinterlacer" von VDub, aber sieht auch besser aus. Habe das ganze auch ohne deinterlace gemacht. Die Performance ist zwar besser, aber immer noch schlechter als bei VDub.

    Ohne Deinterlacer

    mencoder:
    ca. 10 min

    xvid_encraw:
    ca. 7:00 min

    avs2avi:
    6:00.524

    Bei mencoder schaltet er auch immer in den -ni (non-interlaced) Mode, es das evtl. ein Grund wo die Performance drunter leidet?

    Anbei auch noch zwei Screenshots aus Gspot, für das Eingangsformat. Habe einmal ein unkomprimiertes AVI probiert und ebenfalls ein huffyuv codiertes File. Die Encodingergebnis waren ziemlich identisch.

    So ich hoffe ich habe nichts vergessen...

    Dank an euch im vorraus.

  • Anmerkungen/Fragen:
    1. Hast Du immer auch den Ton mitkomprimiert? (mencoder Eingabezeile suggeriert dies, jedoch deaktivierst Du den Sound in Avisynth,...)
    -> Wäre schön, wenn der Sound und eventuelle Deinterlacing bei allen nicht vorkommt, da ja der VideoEncodingSpeed interessiert. Das

    Code
    edeintted = last.SeparateFields().SelectEven().EEDI2(field=-1)

    Nicht gerade flott ist hätte ich auch so sagen können und das eventuell die Audioencoder nicht gleich flott sind,...
    TDeint(order=-1,edeint=edeintted)2. Für Avis sollte man AviSource anstatt DirectShowSource verwenden.
    2. Wie sind die Settings im vfw Interface? (stehen nicht in der VirtualDub Configdatei. ;))

  • Also bei Vdub und mencoder wurde ebenfalls der Sound encodiert, wie du schon richtig sagst sind die wo das AVS genutzt wird ohne Ton. Bzgl. deinterlace habe ich ja auch ein Versuch ohne gemacht.
    Da VDub mit deinterlace+Ton immer noch schneller ist als alle zusammen, fand ich das mit dem Ton jetzt nicht so entscheidend.

    Anbei schicke ich Screenshots der xvid-Vfw Einstellungen.

  • In der mencoder-Zeile fehlt VHQ für B-Frames, soweit ich das beurteilen kann.

    VDub lagert ganz automatisch das komplette Avs-Skript in einen eigenen Thread aus. Bei rechenintensiven Skripts wie deinem kann allein das schon heftige Auswirkungen haben.

    Brother John
    ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
    DVD nach MPEG-4 klappt nicht? Verzweifelt? Auf zum Encodingwissen!

  • Meine Ersten Ergebnisse....

    FILM001_YUY2.avs:

    Code
    SetMemoryMax(64)LoadPlugin("***\DGDecode.dll")MPEG2Source("***\FILM001.d2v")GaussResize(712,576,6,74,-9,-74,p=36)AddBorders(4,0,4,0,$000000)ConvertToYUY2()

    xvid_encraw:

    Zitat

    xvid_encraw.exe -type 2 -i "%QUELL%.avs" -nopacked -max_bframes 0 -max_key_interval 200 -overhead 0 -bitrate 2000 -imin 1 -imax 1 -bmin 1 -bmax 8 -pmin 1 -pmax 4 -par 4 -vhqmode 4 -progress 9999 -avi "%QUELL%_xvid_encraw.avi"

    avs2avi:

    Zitat

    möchtet Ihr die xvidvfw.cfg oder Screenshots oder reicht ein RegExport?

    dann hab ich ein Script geschrieben, wo die Zeit vor dem Start, nach dem Start ausgelesen wird. Dann die VideoInfos und die FrameListe per MPEG4 Modifier CL v1.4.4 ausgelesen werden. Denn nur wenn das Ziel von allen Encodern gleich ist, kann man auch einen Speed Test machen. Und dann müßte dieser Test min. 50 Durchläufe haben, damit man einen Mittelwert hat.

    Auch darf man nicht vergessen beim avs2avi & Xvid den richtigen Encoder zu nehmen, denn es gibt den für YV12 und den "Normalen".

    hier mal einen Ausschnitt:

    Das müßte ich jetzt in der Schleife laufen lassen :( kommt aber irgendwann diese Nacht.

  • Weil DirectShow-Filter andere Prioritäten haben, und sich häufig in den Bildinhalt auf unerwartete Weise einmischen (bei MPEG-2 z.B. deinterlacen, aber auf sehr simple Art). VfW-Decoder sind oft etwas exakter, DirectShow-Filter eher schneller.

    Außerdem erlauben DirectShow-Filter zwar oft bei leicht defektem Material das einmalige Anschauen. Aber ein Zurückspringen geht dann meist schief. VfW-Decoder brechen am Fehler ab oder bringen sichtbare Bildaussetzer - da weiß man dann zumindest, dass das Material defekt ist.

  • Hallo zusammen,

    katjarella
    Danke schonmal für deinen ersten Test, hast du mit mencoder oder Vdub auch Versuche gemacht? Würdest du mir evtl. dein Skript, das die Zeit bei Start und Stopp angibt zur Verfügung stellen? Will nicht immer auf die Stoppuhr drücken:-) (wie peinlich)

    Evtl können wir uns ja auch auf ein Testvideo einigen und identische Skripte und Encodingoptions benutzen?

  • mencoder: nein; weil ich den nicht mehr habe, nicht mehr will und nach meinen persönlich Tests, ich dieses Teil als Fehlerhaft ansehe.

    Vdub: wird im Grunde nur noch ein bissl Langsamer laufen als AVS2AVI, weil dort noch mehr Informationen umgeleitet werden, der Codec + Einstellungen der gleiche ist.

    ----------------------------------------------------------------

    hier ist mein einfaches Script, ohne Schleife, weil ich noch nit dazugekommen bin.

    ----------------------------------------------------------------

    gleiches Video? Na dann schaufel doch mal ein MPEG1/MPEG2 Video irgendwo hin. Eigentlich müßte man für SpeedTests, ein unkomprimiertes Video verwenden. Denn wenn man ein komplexes AVISynthScript nutzt und dies nur abgespielt wird, hat schon dies immer unterschiedliche Zeiten und ist niemal gleich.

    ----------------------------------------------------------------

    PS: das mit der Exportieren Frame Liste hast Du verstanden? Und warum diese bei Speedtest, gleich sein muß?

  • PS: das mit der Exportieren Frame Liste hast Du verstanden? Und warum diese bei Speedtest, gleich sein muß?

    Ja leuchtet ein, aber das war bei mir leider nicht der Fall. Ich habe die Info immer mit Gspot gecheckt.

    Nochmal zu deinem älteren Beitrag:

    Zitat

    Auch darf man nicht vergessen beim avs2avi & Xvid den richtigen Encoder zu nehmen, denn es gibt den für YV12 und den "Normalen".


    Wie wähle ich den aus? Und was heißt "Normal"?

    Bzgl. eines Testclips, habe hier ein MPEG-2 Video von einer Panasonic Digi-Cam, das bei mir beim Encoden zu schaffen macht, dazu wollte ich gleich ebenfalls ein Post machen. Kann den Link auch gerne hier nochmal veröffentlichen.

  • Wie wähle ich den aus? Und was heißt "Normal"?

    Das "Problem" ist die nicht optimierte Darstellung des Codecs in der AuswahlListe, wie zb bei DivX. Denn da wird gleich angezeigt, das es den YV12 Codec oder den anderen gibt. Auch in der REG (siehe Shot) ist er nicht besonders gut "reingeschrieben", aber man findet Ihn, wenn man halt den Richtigen DeAktiviert, mit AVS2AVI die Settings einstellt /abspeichert. Wieder einschaltet und das gleich mit dem anderen macht.

    Bzgl. eines Testclips, habe hier ein MPEG-2 Video von einer Panasonic Digi-Cam, das bei mir beim Encoden zu schaffen macht, dazu wollte ich gleich ebenfalls ein Post machen. Kann den Link auch gerne hier nochmal veröffentlichen.


    klar. wenn man Ihn nicht extra DeInterlacen oder sonst wie bearbeiten muß. Das wird aber sicher sein, wenn Du damit Probleme hast :)

  • Die Sache mit dem YV12-Codec ist nicht bei jedem gleich, katjarella.

    zwiebel: Je nach Reihenfolge der Installation von Codecs kann es vorkommen, dass sich der XviD-Codec in der Liste der VfW-Codecs (VirtualDub: Video - Compression...) sowohl für FourCC (4-Zeichen-Erkennungs-Code) "xvid" als auch "yv12" einträgt, oder DivX 5/6 für "dx50" und "yv12", weil beide zusätzlich noch einen YV12-Konverter mitbringen, denn YV12 ist ein unkomprimiertes Videoformat mit einigen Besonderheiten - insbesondere dass es nicht direkt dargestellt werden kann, weil es grundlegend anders aufgebaut ist als der Grafikspeicher ("planar", nicht "gepackt"). Der YV12-Konverter hilft bei der Vorschau von AviSynth-Video in VirtualDub(Mod). Für die Konvertierung ist er eher unerheblich.

Jetzt mitmachen!

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