vermutlich muß
-ostrength integer : overflow control strength (5)
-oimprove integer : max overflow improvement (5)
-odegrade integer : max overflow degradation (5)
angepasst werden, da die RateCOntrol sonst nicht aggresiv genug ist
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.
-
-
Zitat von katjarella
Woher hast Du diese Informationen? Denn das möchte ich schon mal genauer wissen.
"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!
-
noch ein paar Fragen zu xvid_encraw.
-------------------------------------------------
Ich mache ein full1pass zu Analyse:Codexvid_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.
Codexvid_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,OO 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...
-
Danke kurt, werde das auch mal probieren.
mein Test ist fertig, hier mal ein Film:
full1pass:
Zitatxvid [info]: Avisynth detected
xvid [info]: Input colorspace is YV12
xvid [info]: Input is 576 x 312, 25.000fps (25/1), starting from frame 0
xvid [info]: Number of frames to encode: 32576
xvid [info]: xvidcore build version: xvid-1.1.2
xvid [info]: Bitstream version: 1.1.2
xvid [info]: Detected CPU flags: ASM MMX MMXEXT SSE SSE2 TSC
xvid [info]: Detected 0 cpus, using 0 threads.
32551 frames( 99%) encoded, 49.54 fps, Average Bitrate = 1087kbps
Tot: enctime(ms) =657205.00, length(bytes) = 176937640
Avg: enctime(ms) = 20.17, fps = 49.57, length(bytes) = 5431
I frames: 673 frames, size = 23147/15578402, quants = 2 / 2.00 / 2
P frames: 31805 frames, size = 5073/161358650, quants = 2 / 2.00 / 2
N frames: 98 frames, size = 6/ 588und dann der 2te Pass mit SIZE=218760
Zitatxvid [info]: Avisynth detected
xvid [info]: Input colorspace is YV12
xvid [info]: Input is 576 x 312, 25.000fps (25/1), starting from frame 0
xvid [info]: Number of frames to encode: 32576, Bitrate = 1375kbps
xvid [info]: xvidcore build version: xvid-1.1.2
xvid [info]: Bitstream version: 1.1.2
xvid [info]: Detected CPU flags: ASM MMX MMXEXT SSE SSE2 TSC
xvid [info]: Detected 0 cpus, using 0 threads.
32551 frames( 99%) encoded, 53.22 fps, Average Bitrate = 1087kbps
Tot: enctime(ms) =611742.00, length(bytes) = 176937640
Avg: enctime(ms) = 18.78, fps = 53.25, length(bytes) = 5431
I frames: 673 frames, size = 23147/15578402, quants = 2 / 2.00 / 2
P frames: 31805 frames, size = 5073/161358650, quants = 2 / 2.00 / 2
N frames: 98 frames, size = 6/ 588also 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 angabeBeispiel:
Codexvid_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 Bytesbeim 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 Bytes1te 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
-
Zitat von katjarella
Leider verteilt er immer noch den anderen schwarzen Bereichen zuviel quant=2
Imho besitzt xvid einen parameter, wo dunkle bereiche gesondert behandelt werden (lumimasking o.ä.) -
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: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?
Code22: 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:
aus der Hilfedatei:ZitatZone Options:
Start frame# 500 => -zones 500
Rate control:
Weight 2.01 => ,w,2.01
Quantizer 5.01 => ,q,5.01Static:
Begin with keyframe => ,K
Greyscale encoding => ,G
Chroma optimizer enabled => ,O
Cartoon Mode => ,C
BVOP sensivity 45=> ,45
(Mehrere Zonen werden durch / getrennt.) -
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.
-
Hilfedatei war wohl falsch ausgedrückt: Selur hatte hier eine Übersetzung (u.a. für dich) angefangen
http://forum.gleitz.info/showthread.php…hilfedatei+xvidZitatEs ist ja auch nicht so leicht, xvid_encraw für Windows zu finden.
der wichtigste thread ist der hier:
http://forum.doom9.org/showthread.php…ighlight=encraw -
arg total vergessen.
Es ist ja auch irgendwie doof mit xvid_encraw und den Versionen, div. verwenden einfach unterschiedliche Parameter. (siehe Forum auch weiter hinten)
-
squid_80 hat sich vor einiger Zeit drangemacht, xvid_encraw zu verbessern (z.b mkv output, versch. optionen überarbeitet). guck mal vielleicht in den news thread: http://forum.gleitz.info/showthread.php…ighlight=encraw
-
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...
-
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!