xvid_encraw probleme

  • Hallo Selur,

    danke für die Antwort.
    Ich habe den Fehler mittlerweile gefunden.


    Bei der Einstellung -nopacked lag der Hund begraben.

    Ich hab im englischen Doom 9 Forum gelesen das die Option in beiden
    Passes gesetzt werden muss (wenn man sie denn verwenden will).
    Sonst passt das Stats-File nicht für den zweiten Pass und
    er wird automatisch mit Quantizer 2(wie ein first Pass) kodiert.

    Das führt natürlich unabhängig von einer eingestellten Bitrate immer
    zum gleichen Endergebnis/Filesize.

    - Jetzt gehts, wie gewünscht.

    Wäre vielleicht interessant zu schauen ob das auch passiert wenn man in
    VDub mit der "packed Bitstream" Einstellung zwischen den Passes spielt...
    - Hab gesehen das hier Jemand mit VDub ein ähnliches Bitratenproblem hat...
    Je nach dem wie die angepeilte Bitrate gesetzt ist, siehts mal wie ein Underflow und
    mal wie ein Overflow aus...

  • - nopacket solltest Du aber nur verwenden, wenn Du das avi in irgendwas muxen willst, z.Bsp. in ein mp4 oder mkv. Wenn es bei avi bleiben soll, dann lass die Funktion weg.

    cu

    Joe
    __________________
    Freedom ist just another word for nothing left to loose.

  • Zitat von katjarella

    Woher hast Du diese Informationen? Denn das möchte ich schon mal genauer wissen.

    Klick mich...

    "some devs (like michael niedermayer from ffmpeg) have the opinion that packing two frame to one breaks the compliancy of the stream to the mpeg-4 standard! also a normal mpeg-4 decoder, written following the mpeg-4 specs, not knowing packed bitstream, cant decode packed bitstreams"

    - Also nicht Mpeg4 konform

    Bei Matroska wird zwar keiner meckern, allerdings führt "packed Bitstream"
    zu einer größeren Filesize(kein Overhead)
    Da "packed Bitstream" ohnehin nur ein Kompatibelitäts-Hack ist, sollte man
    die Option besser gleich weglassen wenn man "nach MKV will"... :)

    Im AVI bringts nur ein + an Kompatibelität(packed = Ein).

    Hoff ich habs richtig verstanden!?

    ------------------------------------------------------------------
    Um zurück zu XVID_Encraw zu kommen...

    Für RAW-Streams gibts dort keine Möglichkeit "packed Bitstream" zu setzen.
    (Default = Aus) (Alles mit Option -o)

    Nur für Avi-Output ist dort "packed Bitstream" aktiviert und kann über -nopacked
    deaktiviert werden. (Default = Ein) (Alles mit Option -avi)

    Man geht wohl davon aus das man direkt einen RAW-Stream für MKV benutzt...


    Zitat von katjarella


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

    und feine Sache --=ZerO=--, das Du es selber rausgefunden hast.

    Danke! :D

  • noch ein paar Fragen zu xvid_encraw.

    -------------------------------------------------
    Ich mache ein full1pass zu Analyse:

    Code
    xvid_encraw.exe -type 2 -i video.avs -nopacked -max_bframes 0 -full1pass -pass1 video.log -progress 25

    dann lese ich die Dateigröße der Audiospur aus, berechne daraus die Zielgröße des Videos und gebe es als -size Parapeter an.

    Code
    xvid_encraw.exe -type 2 -i video.avs -nopacked -max_bframes 0 -pass2 video.log -size [COLOR='#ff0000']%TMP_SIZE%[/COLOR] -progress 25 -avi video.avi

    Frage1: Ist das "genau" und analysiert er das auch Richtig? Denn mein Test, ist erst in so 6-8h fertig :)

    -------------------------------------------------
    Das mit den Iframes, habe ich so verstanden, das man Zonen setzen muß.

    Frage2: muß ich diese Zonen im full1pass auch machen?

    Frage3: welche Zonenen Parameter, verwendet xvid_encraw den als Default? Oder kann ich irgendeine Zone ab Frame XYZ angeben? Denn ich brauche bestimmte IFrames an div. Frames, ohne irgendwie die Bitrate zu beeinflussen.

    Mein AVS hat 33980 Frames und ab Frame 33258 bis 33802 ist ein Abspann, dann wieder normal.

    Frage4: was muß ich angeben, das er ab 33258 nur 60% der Analysierten Bitrate nimmt und ab 33802 wider normal Encodet? Und falls das mit der size Angabe sauber ist, was gibt man dann an?

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

    Danke für die Antworten.

  • Zitat

    Frage4: was muß ich angeben, das er ab 33258 nur 60% der Analysierten Bitrate nimmt und ab 33802 wider normal Encodet? Und falls das mit der size Angabe sauber ist, was gibt man dann an?


    -zones 0,w,1,O/33258,w,0.6,O/33802,w,1,O

    O steht für chroma optimizer, kannst du auch weglassen. Dann gibt es noch G (Greyscale) und eine Zahl für die bframesensivity

    Bsp: -zones 0,w,0.5,25O/1000,w,1O/166846,w,0.04,25OG ---> das sind meine Defaultwerte

    die letzte Zone wäre dann der Abspann in Greyscale mit bframesensivity von 25 + chroma optimizer

    zum fullquality firstpass hab ich keine ahnung :), aber ich denke du musst da auch die Zonen entsprechend anpassen...

    Pioneer PDP-427 XA | Popcorn Hour NMT C-200 | Sony STR-DB 840 QS | Canton Ergo 91 DC

  • Danke kurt, werde das auch mal probieren.

    mein Test ist fertig, hier mal ein Film:

    full1pass:

    und dann der 2te Pass mit SIZE=218760

    also des stimmt so nicht :( kann es was mit dem quants = 2 / 2.00 zu tun haben?

  • also das mit dem -size integer : target size in kilobytes, funktioniert das nicht.

    1. encodet er den 1pass / -full1pass immer im quant=2. auch ein -cq 1 übergeht er.
    2. wenn man aber -zones 0,q,1 angibt encodet er auch schön den ersten pass mit quant=1. aber egal wie ich dann den 2ten pass gestalte, er beachtet nicht meine -size angabe :(

    Beispiel:

    Code
    xvid_encraw.exe -type 2 -i video.avs -nopacked -max_bframes 0 -frames 500 [B]-pass1[/B] X_TEST6.log -zones 0,q,1 -avi X_TEST6_PASS1.avi


    Das avi mit quant=1 hat 8.447.798 Bytes

    beim 2pass, egal ob mit -zones 0,q,1 oder -zones 0,w,1 oder ohne zone, aber mit -size 3000, ist es entweder:

    -size 3000 -zones 0,q,1/400,w,0.5,G = 7.959.946 Bytes
    -size 3000 -zones 0,w,1/400,w,0.5,G = 2.202.378 Bytes
    -size 3000 (ohne zone) = 2.202.378 Bytes

    1te rrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

    auch funktioniert das nicht mit den keyframes, eigentlich sollte doch bei angabe von 400,w,0.5,G ein Keyframe sein, ist es aber nicht.

    2te rrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

  • status update :)

    Nach dem ich nun nen 1/2 Tag mit DivX6 rumgespielt habe, automatisch div. I-Frames setzen und sogar die Qualität (Modulation) per Range beeinflussen konnte. Dachte ich mir, das muß doch auch in der log von xvid_encraw funktionieren. Leider war das nur so halb, die IFrames konnte ich setzen. Jedoch div. quant Angaben überspringt er einfach :(

    Dabei ist mir aufgefallen, das man im 2ten Pass unbedingt -imin 1 -pmin 1 angeben muß, damit er auch quant=1 benutzt.

    Auch komme ich langsam dahinter wie es mit dem -size funktioniert. Normaler weise ist ja 1kbyte == 1024bytes, entweder berechnet da xvid_encraw etwas falsch oder es muß da noch nen Overhead geben, denn ich noch nicht rausbekommen habe.

    bin da im Moment bei 1075.*****

    Und damit er mehr quants in die schlechten Bereiche wirft, muß ich sogar -zones 500,w,0.0,G angeben. Leider verteilt er immer noch den anderen schwarzen Bereichen zuviel quant=2

    aber ich komme schon dahinter :) oder lasse Xvid Xvid sein und arbeite weiter mit Divx :D

  • Danke für die Info zu lumimasking. Hab ich garnicht gemerkt, das es da einen AW: (@ katjarella) XviD für Esoteriker? Beitrag gibt :)

    Erster Test: Wenn man die Logs vom -full1pass anschaut:
    videofullpass0:

    Code
    ** -full1pass -pass1 videofullpass0.log -avi videofullpass0.avi

    videofullpass1:

    Code
    ** -full1pass -pass1 videofullpass1.log -imin 1 -pmin 1 -zones 0,q,1/248,q,1/499,q,1 -avi videofullpass1.avi

    videofullpass2: (mit lumi)

    Code
    ** -full1pass -pass1 videofullpass2.log -imin 1 -pmin 1 -zones 0,q,1/248,q,1/499,q,1 -lumimasking -avi videofullpass2.avi

    * In der Log von videofullpass0 steht überall quant=2 drin.
    * In der Log von videofullpass1 / 2 steht überall quant=1 drin. (schön)

    aber wenn man videofullpass0 und videofullpass2 (mit lumi) vergleicht, sind die restlichen Werte die gleichen und auch die erzeugte Videogröße ist die gleiche. :( somit kann lass ich mal lieber lumimasking wech.

    Und ich brauche einen Firstpass, damit ich meine Keyframes setzen kann. denn -zones 0,q,1/248,q,1/499,q,1 funktioniert nicht. :mad:


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

    evt. versteh ich auch die Logs falsch: kann mir einer mal das erklären?

    Code
    22: key=0, time=     16, len=       6 | type=P, quant=  1, len=       6
       23: key=0, time=      0, len=       6 | type=P, quant=  1, len=       6
       24: key=0, time=      0, len=       6 | type=P, quant=  1, len=       6
       25: key=2, time=      0, len=    7929 | type=I, quant=  1, len=    7929
       26: key=0, time=     78, len=   14128 | type=P, quant=  1, len=   14128
       27: key=0, time=     78, len=   17510 | type=P, quant=  1, len=   17510
       28: key=0, time=     78, len=   20196 | type=P, quant=  1, len=   20196
    • key=* type= I/P/B ist klar.
    • quant=1 bis 31, denke ich um so höher der Wert um so schlechter die Qualität.
    • time=* mir völlig unklar
    • len=* unklar, denke aber um so größer um so mehr bracht dieses Frame Bitrate. Wenn das richtig ist, wie könnte man da encraw beeinflussen, das er den Quant bei den kleinen len erhöht als bei den großen len's?


    ------------------------------------------------
    Edit: gibts oder kann einer mal ein Debug xvid_encraw erstellen?

    Wo nach Aufruf alle Settings angezeigt werden, die er jetzt beim Encoden verwendet?

    * wo gibts eigentlich die xvid_encraw Version, wo er die xvidcore.dll verwendet?

  • du kannst auch bei Zonen Keyframes erzwingen:

    Code
    -zones 0,q,1K/248,q,1K/499,q,1K


    aus der Hilfedatei:

    Pioneer PDP-427 XA | Popcorn Hour NMT C-200 | Sony STR-DB 840 QS | Canton Ergo 91 DC

  • Danke kurt, bei meinen xvid_encraw packeten, war nie ne Hilfedatei dabei :(

    Kannst Du di mal bitte posten.

    Und ich dachte bei Quantizer geht nur 1-31 ( volle Werte ) und bei Weight hab ich mich auch an der normalen Xvid orientiert ( 0 - 2 ). mmmmmmm


    Es ist ja auch nicht so leicht, xvid_encraw für Windows zu finden.

  • Damit ich das jetzt richtig mache, wenn ich das angebe:

    -zones 0,w,1.0,KC/3810,w,0.9,KC/5244,w,1.0,KC/33258,w,0.1,KCG

    hab ich das so verstanden:

    Frame 0 bis 3809: normale Bitrate + KeyFrame (0) + Carton Modus
    Frame 3810 bis 5243: weniger Bitrate + KeyFrame (3810)+ Carton Modus
    Frame 5244 bis 33257: normale Bitrate + KeyFrame (5244) + Carton Modus
    Frame 33258 bis Ende: am wenigsten Bitrate + KeyFrame (33258) + Carton Modus + Graustufen Encoding.


    Richtig?

  • genau. w,0.1 meint ein weight von 10% zum Rest

    w,1.0,KC brauchst du eigentlich nicht so zu schreiben, es reicht auch w,1,KC

    edit: du kannst auch noch die b-frame sensivity in den zonen anpassen, s.Bsp. oben...

    Pioneer PDP-427 XA | Popcorn Hour NMT C-200 | Sony STR-DB 840 QS | Canton Ergo 91 DC

  • Und nochmal ein Danke kurt.
    * b-frame sensivity brauch ich nicht angeben, weil ich keine möchte :)
    * ich mach lieber mit den Nachkomma stellen, denn ich habe mal ne encode schleife gebaut, wo zb w,0 das gleiche ist wie als würde man es garnicht angeben. auch Werte über w,4.* stimmen überhaupt nicht. Schade das ich auch die encraw Source nicht so gut verstehe, damit ich schaun kann wie dort die Berechnungen sind. Oder welcher Range überhaupt erlaubt ist. selbst bei Minus Werten melder er keinen Fehler.


    Frage: gibts eigentlich nen log Manipulator wie das von DivX ( DivX EKG ) ?

Jetzt mitmachen!

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