xvid - Problem, wenn kein "packed-bitstream"

  • Sofern ich bei der Anwendung von AviSynth und Xvid "packed bitstream" deaktiviere, habe ich das Problem, dass am Anfang des neu kodierten Filmaterials der Film am Anfang einen falschen Frame aufweist und das neue Video für einen kurzen Moment "springt". Bei Überprüfung der kodierten Filmausschnitte (mit/ohne PB - ich habe ein sehr kurzes Beispiel hier hochgeladen) kann man gut ersehen, dass ein Frame am Anfang unterschiedlich ist. Der neue, mit aktiviertem PB kodierte Film entspricht dem Original (dh kein Bewegung des Kopfes nach links).

    Meine Fragen nun: Was ist der Grund für diesen unterschiedlichen Frame am Anfang des Filmes ? Ich meine in Brother John's Encodingratgeber gelesen zu haben, man solle den PB abschalten. Wie behebe ich dann aber das o.g. Problem ?

    Gruss

  • Brother John schrieb folgendes:

    Zitat

    Packed Bitstream bestimmt, wie die B-Frames in der Videodatei gespeichert werden und sollte normalerweise ausgeschaltet sein. Doch keine Regel ohne Ausnahme: Wenn wir den AVI-Container verwenden und für mehrere CDs encodieren, so dass der Film zum Schluss gesplittet werden muss, vereinfacht aktivierter Packed Bitstream das Schneiden.

    Hab zwar die Theorie, dass da die B-Frame Reihenfolge irgendwie durcheinander kommt, aber gesehen hab ich den Effekt noch nie. :)

    Womit hast Du den encoded? (Tool+Einstellungen)

    Cu Selur

  • Danke, Selur, für die Aufklärung des Sachverhaltes! :)

    Benutzt habe ich VirtualDub+AviSynth-script+Xvid.
    Bei Xvid hatte ich folgende maßgebende Einstellungen vorgenommen:
    - 1 Pass quality 95
    - Motion Search 6
    - Quant.type MPEG
    - FourCC - Xvid
    - VHQ-Mode 2
    - Max./Min I-frame 300/1
    - Quarterpel AN
    - Use chroma motion AN
    - Max B-frames 2/162/0
    - Packed Bitstream OFF
    - DX50 B-VOP compat. ON
    - Quantiz. 2/31/2/31

    Im Grossen und Ganzen die Einstellungen, die Bruder John in seinem Ratgeber vorgeschlagen hat.

    Gruss

  • Würde spontan eher zu einem 1.2er Release raten, da diese flotter sind. ;)
    Und noch zur Klärung: die Bytes die man durch das aktivieren von Paket Bitstream eventuell verschwendet, sind nicht wirklich tragisch -> falls das also alles nicht hilft kannst Du Paker Bitstream durchaus an lassen ohne Dir irgendwelche Sorgen zu machen. :)

  • sidewinder711

    Wie hast du denn das "falsche" Frame festgestellt?

    Wenn man die beiden Filme per Direct Show Decoder anschaut - das sind praktisch alle Player -, sind sie absolut gleich. Diesen Unterschied kann man nur sehen, wenn der Decoder die alte VfW-Schnittstelle verwendet (z.B. direkt in Virtual Dub). Das ist aber kein wirklicher Fehler, sondern prinzipbedingt

    Mit diesem AVISynth-Script kannst du selber testen, daß alles OK ist:

    Code
    a=directshowsource("test24-no-pb.avi")
    b=directshowsource("test24pb.avi")
    
    
    stackvertical(a,b)

    Gruß

  • Beim Abspielen das Videoausschnittes mit dem WMP flackert das Bild kurz oder (bei anderen Probeläufen) hakelt das Bild kurz, was ich als recht störend empfunden habe. Danach habe ich mit VD die genauere Durchsicht gemacht.

    Gruss

    PS: Bei manchen Ausschnitten hatte ich das Gefühl, dass der letzte Frame an den Anfang "gesetzt" wurde, was noch nerviger ist. Ich habe versucht, diese Fälle zu rekonstruieren, hatte aber kein Glück ... und dann auch keine Lust mehr, weitere Testläufe durchzuführen (ich habe nach und nach alle von mir verwendeten Avisynth-Filter ausgeschaltet... bis ich schliesslich die xvid-Problematik herausfand).

  • Welchen Decoder verwendet der Player?

    Beim mplayer2 zum Beispiel kannst du das unter "Eigenschaften" => "Erweitert" sehen. (Mit dem WMP kenne ich mich nicht aus.)
    Mit ffdshow als Decoder habe ich hier keine Probleme.

    Eigentlich kenne ich das Verhalten nur von VirtualDub, wegen dem VfW-Interface. Wenn man sich vor Augen hält, daß zum decodieren eines B-Frames immer zwei Referenzbilder schon decodiert sein müssen, ist das leicht nachvollziehbar.

    Da AVI ja eigentlich linear arbeitet, mußte man mit Tricks arbeiten:

    1. Man gibt den Film immer ein Bild später wieder (kein PB). Dann hat man die beiden für ein B-Frame benötigten Referenzen nämlich schon dekodiert.

    2. Oder man packt erst einmal zwei Bilder in einen Frame zusammen (PB). Dann hat man beim nachfolgenden B-Frame die benötigten Referenzen parat. Damit die Frameanzahl trotzdem stimmt, muß für jedes "gepackte" Frame ein zusätzliches N-Frame (Bild ohne Inhalt) eingefügt werden. Mit dieser Methode hat VirtualDub bzw. das VfW-Interface keine Probleme bei der rechtzeitigen Darstellung der Bilder.


    Gruß

Jetzt mitmachen!

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