Anwendungs-Software und Apps 14.497 Themen, 73.679 Beiträge

Probleme mit DivX 5.02 Pro Codec

Rika / 0 Antworten / Baumansicht Nickles

Also, mal ganz von vorne:


Ich hab ein VCD-MPEG1-Video (352x288,2242 Frames, 1024+176KBit/s) in ein MPEG4-Video umzuwandeln. Das ganze dachte ich mir wie folgt:


-Extrahieren des Audiostreams, Konvertieren auf 16KHz, Nachbearbeiten und normalisieren (VirtualDub+CoolEdit)


-Video auf 341x278 croppen, resizen auf 344x280,Diverse Filter (msparne, warp sharpen, smart smoother),Zwischenspeicherung im verlustfreien HuffYuv-Format (VirtualDub)


-Encoden des Videos mittels DivX 5.02 Pro, Umwandeln in MP4-Stream (VirtualDub, Interner MP4-Converter von DivX)


-Encoden des Audiostreams mittels AAC, Multiplexen (Nero+AAC-Plugin)


 


Das Problem ergab sich bei Schritt #3. Ich encode 2-pass,409KBit/s,Quarter Pel,GMC,B-Frames,kein MV-Caching,Pre-processing:Extreme,Psychovisual Enhancements:Strong,Slowest. Der erste Pass läuft problemslos durch, das Log-File ist auch in Ordnung. Bei zweiten Pass stürzt das ganze bei Frame #2237 (5 vor dem letzten) auf. VirtualDub liefert eine Integer-Divide-Zero-Exception aus dem Modul DivXencore an der Stell DIV EAX,ECX (wo aus irgendeinem Grunde ECX=0 wird).


Zuerst tippte ich auf VirtualDub und schaltete die Dynamic Code Generation aus. Das brachte nix, an Fast statt Normal Recompress liegt's auch nicht. Am Decoder von HuffYuv hängt's auch nicht, da mit anderen Codec ebenfalls das gleiche Problem auftritt. Das Problem tritt ferner auch auf anderen Rechnern auf, ist also nicht CPU-gebunden. Ebenso bei anderen programmen, ist also direkt ein Problem im Codec.


Der Fehler ist mir schon von einem weiteren Video bekannt, aber tritt bei viele anderen nicht auf. Daher schaute ich mir die zugehörigen Frames genauer an. Ab Frame 2231 ist die Szene bis 2240 nahezu vollkommen statisch, die MV sollten praktisch Null sein. Die letzten beiden Frames sind dann rein Schwarz. In dem Original MPEG1-Video ist hier ebenfalls ein Key-Frame gesetzt. Wenn das Problem also bei Frame 2241 auftreten würde, wo praktisch nur der DC-Koeffizient der DCT nicht Null wird, könnt ich's ja noch verstehen. Aber warum gerade in einer statischen Szene?

bei Antwort benachrichtigen