• Ok, was ich zum Testen verwendet habe, war die angehängte Datei, wo in jeder Zeile
    1 4 13 12 0 stand. Die erste Zeile ist für das erste Frame, die zweite für das zweite,...

    1 ist der Frametyp, es werden also nur I Frames gesetzt
    4 ist der Quantizer für dieses Frame
    13 = 1 + 4 + 8, also sind MPEG Quant, QPEL und GMC aktiviert in allen Frames
    12 = 4 + 8, also Trellis und Inter4V
    0 heißt, das keine besonderen Motion Flags gesetzt sind, also Diamond Search verwendet wird.

    Kommandozeile ist dann sowas wie:

    xvid_encraw.exe -external control.rc -i irgendwas.avs -type 2 -avi out.avi

    Aber es scheint da einen (ziemlich dummen) Bug zu geben, wie ich gerade bemerke. Im Anhang eine aktualisierte Version.

    Aber funktioniert die Binary bei dir? Ich bin mit dem Steuerdateilayout noch nicht so zufrieden, falls du irgendwelche genaueren Vorstellungen hast, her damit.

    Dateien

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • normales xvid_encraw funktioniert.

    xvid_encraw_external:

    Code
    xvid_encraw_ext.exe -external Jetix_cut.rc -i Jetix_cut.avs -avi _video_external.aviTrying to retrieve width and height from input headerxvidcore build version: xvid-1.2.0-devBitstream version: 1.2.-127Detected CPU flags: ASM MMX MMXEXT SSE SSE2 TSCDetected 2 cpus, using 2 threads.Read Information for 915 frames*** Anwendungsausnahme aufgetreten: ***        Anwendung: J:\DOOM9\MPEG4_Standalone\xvid_external\xvid_encraw_ext.exe (pid=3448)        Wann: 22.10.2007 @ 12:58:08.656        Ausnahmenummer: c0000005 (Zugriffsverletzung)

    Anhang: FehlerProtokol und die Steuerdatei.

    ---------------------------------------------------------------------------
    Edit: es liegt an der Steuerdatei... jetzt hab ich mal ähnlich Werte genommen wie Du, dann funktioniert es. Also erstmal basteln.

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

    Edit2: ja es lag an der Steuerdatei und dem VOL Flag Eintrag....


    Code
    [B]4.2 Quantizer[/B][COLOR='Gray']Wert	Effekt[/COLOR]0	Meldung: Error in plugin_external.c: Invalid Quantizer32	Meldung: Error in plugin_external.c: Invalid Quantizer[B]4.3 VOL Flags[/B][COLOR='Gray']Wert	Effekt[/COLOR]0	funktioniert, jedoch keine Ahnung was passiert.2	[COLOR='Red']Absturtz[/COLOR][B]4.4 VOP Flags[/B][COLOR='Gray']Wert	Effekt[/COLOR]0	funktioniert, jedoch keine Ahnung was passiert.

    Diese Test's hab ich erstmal im CBR Modus gemacht.

    Was mir noch aufgefallen ist, bei meiner xvid_encraw.exe und mit -ssim_file, schmierte er mir die Werte noch zusätzlich auf den Bildschirm. Bei Deiner Version nicht mehr :) < fein des.

    Erstmal schon KLASSE, das ich nun nur meine I-Frames deklarieren kann! Jetzt müßte nur noch der 4.2 Quantizer Wert auch auf 0 gehen, damit Xvid selber entscheidet, welcher Wert.

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

    Edit3: ich hab mal im VBR Modus weiter getestet...

    Leider funktioniert Deine xvid_encraw Version nicht mit meinem Standalone Playern, dies liegt aber an dem User data Eintrag DivX503b1393. Nachdem ich nun Deine exe auf DivX999b000p gepatcht habe, funktionieren Sie auch mit dem Standalone Player. Leider jedoch nicht mit der dixmux.exe, somit mußte ich mit VirtualDub Mod muxen :(

    Auch sollte es doch so sein:
    Progressiv Encode=DivX503b1393p
    Interlace Encode=DivX503b1393

    Naja ich will Lieber überall: DivX999b000p

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

    Die Sache mit dem 4.2 Quantizer und Wert 0, habe ich nun auch rausgefunden. Es meldet einen Fehler, der 4.1 Frametype bleibt und der Rest übernimmt XviD mit seinen Werten. Im Anhang habsch LOGs drin.

    Auf jeden Fall ist es SEHR Interresannt, zu sehen was beim Decoden passiert, wenn die IFrames sehr sehr weit auseinanderliegen und der Erste KeyFrame noch im Graustufen Encodet, der Rest aber "normal". Sehr Informativ, besonders auf den Hinblick aufs Optimieren von Filtern.

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

    Edit4:

    Leider besteht diese xvid_encraw (ungepacht) keinen einzigen Standalone Profil Test :(

    Code
    [COLOR='#ff0000']Parse failed[/COLOR]File Opened: _video_standard_ORI.avi    Size - 15071232    DMFCHECK_ERROR 0:  Unexpected Item encountered in DMF File - Tag:Mۣ� Offset: 0xe5f61c(15070748)  Size: 0x503c0e70(1346113136)    Title Riff - Type:AVI  Offset: 0x8(8)   Size: 0xe5f60c(15070732)        Header List Chunk - Tag: hdrl  Offset: 0x14(20)  Size: 0xc0(192)            AVI Header - Tag: avih  Offset: 0x20(32)  Size: 0x38(56)            Stream List Chunk - Tag: strl  Offset: 0x60(96)  Size: 0x74(116)                Stream Header - Tag: strh  Offset: 0x6c(108)  Size: 0x38(56)                Stream Format Header - Tag: strf  Offset: 0xac(172)  Size: 0x28(40)        Junk Chunk - Offset: 0xdc(220) Size: 0x718(1816)        Movi List Chunk - Tag: movi  Offset: 0x7fc(2044)  Size: 0xe5b4f0(15054064)        Index Chunk - FourCC:idx1  Offset: 0xe5bcf4(15056116)   Length: 0x3920(14624)        DMFCHECK_ERROR 0:  Unexpected Item encountered in DMF File - Tag:Mۣ� Offset: 0xe5f61c(15070748)  Size: 0x503c0e70(1346113136)[COLOR='Red']Parse failed[/COLOR]


    Mit der gleichen Commandline besteht es meine alte und die aus dem MeGUI Packet.

    Code
    Check top level chunk order:[COLOR='SeaGreen'] Passed[/COLOR]File size does not exceed 4GB.:[COLOR='SeaGreen'] Passed[/COLOR]Validate the Menu Model:[COLOR='SeaGreen'] Passed[/COLOR]Check RIFF offsets in all MediaSource objects:[COLOR='SeaGreen'] Passed[/COLOR]Check MediaTracks reference valid avi media tracks:[COLOR='SeaGreen'] Passed[/COLOR]Check DMNU chunk < 4MB, MENU chunk < 300kB:[COLOR='SeaGreen'] Passed[/COLOR]Check menu chunk with the highest version appears first.:[COLOR='SeaGreen'] Passed[/COLOR]Checks that all subtitle overlays with MRIF chunks are properly located.:[COLOR='SeaGreen'] Passed[/COLOR]Check if 4CC codes are allowed in this version.:[COLOR='SeaGreen'] Passed[/COLOR]Check exactly 1 video track.:[COLOR='SeaGreen'] Passed[/COLOR]Check less than 8 audio tracks:[COLOR='SeaGreen'] Passed[/COLOR]Check less than 8 subtitle tracks:[COLOR='SeaGreen'] Passed[/COLOR]Check strf count = strl count:[COLOR='SeaGreen'] Passed[/COLOR]Check strn count = strl count:[COLOR='SeaGreen'] Passed[/COLOR]Check strl count = # tracks in index:[COLOR='SeaGreen'] Passed[/COLOR]Check strn format:[COLOR='SeaGreen'] Passed[/COLOR]Check movi chunks == # index chunks:[COLOR='SeaGreen'] Passed[/COLOR]Check video fourcc codes:[COLOR='SeaGreen'] Passed[/COLOR]Check subtitle fourcc codes:[COLOR='SeaGreen'] Passed[/COLOR]Check audio fourcc codes:[COLOR='SeaGreen'] Passed[/COLOR]Check audio extra header data:[COLOR='SeaGreen'] Passed[/COLOR]Check number of stream headers:[COLOR='SeaGreen'] Passed[/COLOR]Checks the dwLength parameter for video:[COLOR='SeaGreen'] Passed[/COLOR]Checks the dwLength parameter for audio:[COLOR='SeaGreen'] Passed[/COLOR]Checks values in strl versus waveformatex:[COLOR='SeaGreen'] Passed[/COLOR]Check that audio preload is between 0 and 1000 ms.:[COLOR='SeaGreen'] Passed[/COLOR]Check that the index values exist.:[COLOR='SeaGreen'] Passed[/COLOR]Check the interleaving.:[COLOR='SeaGreen'] Passed[/COLOR]Check Menu Overlays.:[COLOR='SeaGreen'] Passed[/COLOR]Check Title Subtitles.:[COLOR='SeaGreen'] Passed[/COLOR]Check Junk Chunks.:[COLOR='SeaGreen'] Passed[/COLOR]Check for correct FourCC codes in index:[COLOR='SeaGreen'] Passed[/COLOR]Check Main Header Frame Count = Index count:[COLOR='SeaGreen'] Passed[/COLOR]Check MetaData chunks:[COLOR='SeaGreen'] Passed[/COLOR][B]Alte Version:[/B]File Opened: _video_standard_OLD.avi    Size - 15076896    Title Riff - Type:AVI  Offset: 0x8(8)   Size: 0xe60e18(15076888)        DMFCHECK_WARNING 23001:  Check strn count = strl count:: nStreamHeaders(1) should equal nStreamNames(0). Riff Offset(0x8)    Title Subtitle Tests:: No overlay tracks found in Title Riff at 0x0(0)        Header List Chunk - Tag: hdrl  Offset: 0x14(20)  Size: 0x11ec(4588)            AVI Header - Tag: avih  Offset: 0x20(32)  Size: 0x38(56)            Stream List Chunk - Tag: strl  Offset: 0x60(96)  Size: 0x1094(4244)                Stream Header - Tag: strh  Offset: 0x6c(108)  Size: 0x38(56)                Stream Format Header - Tag: strf  Offset: 0xac(172)  Size: 0x28(40)                    DMFCHECK_WARNING 25001:  Check strn format:: No Stream Name on DMFStreamList at offset 0x58(88)                Junk Chunk - Offset: 0xdc(220) Size: 0x1018(4120)            ODML List Chunk - Tag: odml  Offset: 0x10fc(4348)  Size: 0x104(260)            DML Header- Tag: dmlh  Offset: 0x1108(4360)  Size: 0xf8(248)        Junk Chunk - Offset: 0x1208(4616) Size: 0xdf8(3576)        Movi List Chunk - Tag: movi  Offset: 0x2008(8200)  Size: 0xe5b4f0(15054064)        Index Chunk - FourCC:idx1  Offset: 0xe5d500(15062272)   Length: 0x3920(14624)DMFCheck Summary for _video_standard_OLD.aviTests run: 34,[COLOR='SeaGreen'] Passed[/COLOR]: 34, failed: 0errors: 0  warnings: 2[B]MeGUI Version:[/B]File Opened: _video_standard_MEG.avi    Size - 14868744    Title Riff - Type:AVI  Offset: 0x8(8)   Size: 0xe2e100(14868736)        DMFCHECK_WARNING 23001:  Check strn count = strl count:: nStreamHeaders(1) should equal nStreamNames(0). Riff Offset(0x8)    Title Subtitle Tests:: No overlay tracks found in Title Riff at 0x0(0)        Header List Chunk - Tag: hdrl  Offset: 0x14(20)  Size: 0x11ec(4588)            AVI Header - Tag: avih  Offset: 0x20(32)  Size: 0x38(56)            Stream List Chunk - Tag: strl  Offset: 0x60(96)  Size: 0x1094(4244)                Stream Header - Tag: strh  Offset: 0x6c(108)  Size: 0x38(56)                Stream Format Header - Tag: strf  Offset: 0xac(172)  Size: 0x28(40)                    DMFCHECK_WARNING 25001:  Check strn format:: No Stream Name on DMFStreamList at offset 0x58(88)                Junk Chunk - Offset: 0xdc(220) Size: 0x1018(4120)            ODML List Chunk - Tag: odml  Offset: 0x10fc(4348)  Size: 0x104(260)            DML Header- Tag: dmlh  Offset: 0x1108(4360)  Size: 0xf8(248)        Junk Chunk - Offset: 0x1208(4616) Size: 0xdf8(3576)        Movi List Chunk - Tag: movi  Offset: 0x2008(8200)  Size: 0xe287d8(14845912)        Index Chunk - FourCC:idx1  Offset: 0xe2a7e8(14854120)   Length: 0x3920(14624)DMFCheck Summary for _video_standard_MEG.aviTests run: 34,[COLOR='SeaGreen'] Passed[/COLOR]: 34, failed: 0errors: 0  warnings: 2
  • Hi,

    das Plugin gibt die Parameter einfach ungeprüft weiter. Es ist also möglich, dass man wahnsinnigen Unsinn (so dass das Ergebnis nicht mehr auf SAPs läuft) macht, ohne dass was meckert.

    Das mit den scheiternden Tests scheint ein Problem mit dem Container zu sein. Hast du das avi von encraw schreiben lassen, oder da noch hin und her gemuxt. Falls es von encraw ist, vermute ich, dass es ein Problem mit dem Crosscompilen ist. Sonst weiß ich nicht.

    Ich könnte ohne größere Probleme einbauen, dass 0 oder ein negativer Wert die Vorschläge von xvid übernimmt, und nichts ändert. Und ich könnte einen log modus einbauen, so dass er die verwendeten Paramter in eine Datei schreibt, dann könnte man so von Hand einen Feintun Multipass zusammenbasteln. Aber erst morgen.

    Edit: Das mit dem Absturz werde ich auch mal noch verfolgen. Das sollte nicht passieren glaub ich. Gibt es sonst (außer der Standalonetestprobleme) noch irgendwelche Schwierigkeiten damit?

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Thema: Container, ja das ist das Original erzeugte Video von encraw mit dem Parameter -type 2 und -avi. Bei den anderen Versionen funktioniert es ja. Ohne Remuxen oder dran fummeln.

    Thema: Besseres encraw.
    * Ich wünsche mir ja schon immer mehr als andere, weil ich mehr teste und einfach vieles nicht einfach so hinnehme. Mehr Logausgaben wären schon Cool, besonders würde ich mir wünschen, wenn man encraw Parameter übergibt und er dann anfängt, sollte er einfach mal ausgeben, mit welchen echten Paramtern er nun rechnet.

    * 0 oder -1. Ich würde zb bei 0 Xvid entscheiden lassen.

    Thema: Steuerdatei
    könnte man am Anfang den Frame nummerrieren und evt. nur die Änderungen direct machen. Also:

    Zitat

    ;Frame Frametype Quantizer VOL VOP Motion
    0 1 1 0 128 0
    1 2 0 0 128 0
    500 1 1 0 96 0
    501 2 0 0 96 0


    Dann sollte Frame 2 bis 499 genauso encodet werden wie Frame 1. Verstehste? Denn bei x0000000 Frames wirds ein bissl Sehr Komplex :)


    Frage: -altpass2 hast Du wohl rausgenaommen, weil die -vbvsize/-vbvmax/-vbvpeak so oder so nicht funktionieren? Denn das sieht man sofort beim Bittest

    Zitat

    Bitstream test:: VBV TEST FAILED max underflow was 8513352 bits (or -270% buffer fullness)
    Bitstream test:: Avg 3681 kbits/s or 1s peak bitrate 12853 kbits/s out of HOMETHEATER_PROFILE

  • Zitat

    -altpass2 hast Du wohl rausgenaommen,...


    Oder halt den entsprechenden Patch nicht reincompiliert,...
    Wobei es noch fraglich ist in wieweit die Xvid RateControl noch brauchbar arbeitet je nachdem wie man bestimmte Frametypen&Co erzwingt, dies fällt aber wohl unter 'wahnsinnigen Unsinn'. ;)

  • Lieber Selur, dann gib mir bitte ein Commandline für encraw wo ich nicht über 4000kb geh.

    Denn das funktioniert nicht:

    Zitat

    -bitrate 3800 -nochromame -notrellis -max_bframes 0 -max_key_interval 250 -overhead 0 -imin 1 -pmin 1 -vbvmax 3900000 -vbvsize 3145728 -vbvpeak 3145728 -vhqmode 4

    natürlich im 2tenPass -altpass2 und auch OHNE -imin 1 -pmin 1, stimmts NICHT!

    denn das gleiche in DivX:

    Zitat

    -bvn1 3800000 -vbv 3900000,3145728,3145728 -w -b 0 -key 250 -p -profile=3 -thread_delay=1

    und die Analyse:

  • Thema: Container, ja das ist das Original erzeugte Video von encraw mit dem Parameter -type 2 und -avi. Bei den anderen Versionen funktioniert es ja. Ohne Remuxen oder dran fummeln.

    Ich compiliere das Ding unter Linux für Windows, und da wird mit den MinGW Bibliotheken statisch gelinkt. Ich vermute, dass es an denen liegt. Aber ich hab keine anderen Werkzeuge. Ich muss mal überlegen, ob es da evtl. eine Lösung für gibt.


    Zitat


    Thema: Besseres encraw.
    * Ich wünsche mir ja schon immer mehr als andere, weil ich mehr teste und einfach vieles nicht einfach so hinnehme. Mehr Logausgaben wären schon Cool, besonders würde ich mir wünschen, wenn man encraw Parameter übergibt und er dann anfängt, sollte er einfach mal ausgeben, mit welchen echten Paramtern er nun rechnet.

    Was mir vorschwebte, war, dass man das external Plugin in einen log Modus schalten kann, in dem er die Werte von Type,Quant,VOL und VOP und Motion Flags, die er verwendet, im richtigen Format rausschreibt. Es gibt ja noch einen Haufen mehr Parameter, aber an die komm ich über die Plugin Schnittstelle nicht hin.

    Zitat

    * 0 oder -1. Ich würde zb bei 0 Xvid entscheiden lassen.

    Thema: Steuerdatei
    könnte man am Anfang den Frame nummerrieren und evt. nur die Änderungen direct machen. Also:

    Dann sollte Frame 2 bis 499 genauso encodet werden wie Frame 1. Verstehste? Denn bei x0000000 Frames wirds ein bissl Sehr Komplex :)

    Kann man machen, aber ist es nicht vielleicht sinnvoller, nur die Frames anzugeben, die man ändern (erzwingen) will, und sonst Xvid machen zu lassen?

    Zitat


    Frage: -altpass2 hast Du wohl rausgenaommen, weil die -vbvsize/-vbvmax/-vbvpeak so oder so nicht funktionieren? Denn das sieht man sofort beim Bittest

    Ja, ich hab keine anderen Patches drin.

    Es gibt eine Theorie, die besagt, dass das Universum sofort verschwinden und etwas noch Unerklärlicheres und Bizarres an seine Stelle treten wird, sobald jemand herausfindet, wofür es gut ist und warum es existiert.

    Es gibt eine andere Theorie, die besagt, dass das bereits geschehen ist.

  • Kann man machen, aber ist es nicht vielleicht sinnvoller, nur die Frames anzugeben, die man ändern (erzwingen) will, und sonst Xvid machen zu lassen?

    Ja aber da fummelt doch XviD, dann in meinem Falle doch wieder Keyframes rein und das möchte ich doch net. Aber es ist ja dann möglich:

    Code
    ;Frame Frametype Quantizer VOL VOP Motion
    0 1 1 0 128 0
    1 2 0 0 128 0
    200 0 0 0 0 0
    500 1 1 0 96 0
    501 2 0 0 96 0
    800 0 0 0 0 0


    Und ab Frame 200/800 machts dann XviD wieder selber. Verstehste?

  • Zitat

    -bitrate 3800 -nochromame -notrellis -max_bframes 0 -max_key_interval 250 -overhead 0 -imin 1 -pmin 1 -vbvmax 3 900 000 -vbvsize 3145728 -vbvpeak 3145728


    ehmm,..
    vielleicht übersehe ich ja etwas, aber:
    Bitrate: 3800kBit/s
    vbvmax: ca. 3900kBit/s, okay ist etwas knapp für meinen Geschmack, aber gut

    vbvsize: ca. 3200kBit/s, vbv Buffer kleiner als vbvmax ...
    vbvpeak: ca. 3200kBit/s, ehmm vbvpeak kleiner als vbvmax
    Erscheint mir irgendwie als ob die Wert vermutlich automatisch ignoriert werden, oder finde nur ich, dass sie so keinen Sinn machen?

    -> Sicher, dass die vbv Werte die Du da nimmst auch korrekt sind?

    Waren die Home Theater Einschränkungen nicht:
    Home Theater
    * 720 x 480 at 30 fps
    * 40500 macroblocks per second
    * 4000 kbps average bitrate
    * 8000 kbps vbvpeak
    * 384 KB vbv buffer
    * Bi-directional encoding
    * Optional interlaced video


    Cu Selur

  • Ich glaube ich habe gerade nen Bug oder besser gesagt : Unglaubliches Endeckt.
    DivX hat still und heimlich etwas an den -vbv Daten geändert und den DMFCheck nicht aktualisiert.

    Home Theatre bei verschiedenen DivX versionen :(
    -vbv 4000000,3145728,2359296
    -vbv 4854000,3145728,2359296
    -vbv 4854000,3145728,3145728 < Letzte 6.x das kann ja nicht stimmen...

    Aber trotzdem, was passiert, wenn ich jetzt im Mobile Profil encode? Wird die Bitrate begrenzt oder wie ich schon vermute: funkt in Xvid das net?

    Testen........

Jetzt mitmachen!

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