[x264] Allgemeine Frage zur DVD Sicherung

  • Ich muss gestehen das ich eines der DXVA-SD Profile von Sharktooth ausgesucht haben und einfach anstellte des 2-Pass auf CRF geändert haben.

    Wenn du VBV nicht brauchst, dann unbedingt ausschalten! Die Qualität kann durch VBV nur schlechter werden, aber niemals besser.

    Mit "--level" legst du übrigens nur fest, welches Level x264 im den Header des Strams angibt. Das heißt noch lange nicht, dass dein Stream tatsächlich diesem Level entspricht!
    Um ein bestimmtes Level einzuhalten, musst du auch die Encoder-Einstellungen entsprechend wählen und die Auflösung bzw. die Framerate des Video müssen auch passen.

    Daher lässt du "--level" am besten ganz weg und lässt x264 das korrekte Level entscheiden ;)

  • Zitat

    Wenn du VBV nicht brauchst, dann unbedingt ausschalten!


    Wobei man da relativieren sollte, dass es doch recht selten ist, dass man gegen die vbv Beschränkungen verstößt und dann noch sichtbare Einbußen erleidet, aber vielleicht hat LoRd_MuldeR ja ein Beispiel parat wo dies auftritt, persönlich halte ich das 'kann nur schlechter' werden immer noch für einen sehr seltenen Fall.

  • Wobei man da relativieren sollte, dass es doch recht selten ist, dass man gegen die vbv Beschränkungen verstößt und dann noch sichtbare Einbußen erleidet, aber vielleicht hat LoRd_MuldeR ja ein Beispiel parat wo dies auftritt, persönlich halte ich das 'kann nur schlechter' werden immer noch für einen sehr seltenen Fall.

    Ob sich VBV negativ auswirkt hängt natürlich ganz von den gewählten VBV Werten und dem Inhalt des Videos ab. Fakt ist aber, das VBV den Encoder in seiner Wahl der Bitrate einschränkt. Ohne VBV kann der Encoder die Bitrate optimal an das Video anpassen, etwa in dem die Bitrate in "schnellen" Szenen angehoben und in "langsamen" Szenen abgesenkt wird. Mit VBV is dagegen nur eine sehr kurzfristige Abweichung von der Durschnittsdatenrate möglich, da sonst der simulierte Puffer über- bzw. unterläuft. Der Encoder wird durch VBV also potentiell dazu gezwungen eine niedrigere (oder höhere) Bitarte zu wählen, als es optimal (im Sinne des Ratecontrol Algorithmus) wäre. Das kann nicht selten zu sichtbaren Qualitätsverlusten führen. Je "strikter" die VBV Beschränkungen gewählt werden, desto größer die Gefahr. Umgekehrt kann die Qualität durch VBV aber niemals besser werden. Daher sollte man VBV nur dann nutzen, wenn man es wirklich braucht...


    About the artifacting: Its VBV, folks! Dontcha love it? [Blockierte Grafik: http://forum.doom9.org/images/smilies/devil.gif]

  • Ok da ich mir die ganze Mühe ja für meinen Popcorn Hour A-110 mache und dabei bzgl. der Codieroptionen bestimmte Richtlinien einzuhalten sind würde ich fast sagen das VBV gesetzt werden sollte. Allerdings sollten in diesem Fall (DVD-Backup) doch keine Werte >40000 vorkommen.

    Laut FFDshow pendelt die Bitrate zwischen 2000-4000. Ich versuche es demnach damit die VBV-Werte auf 0 zu setzten.

    Edit:
    Zusammengefasst ergibt das dann folgende Zeile:
    [size=10]

    Code
    program --crf 19 --ref 8 --mixed-refs --bframes 3 --b-adapt 2
    --weightb --deblock -1:-1 --subme 8 --trellis 2 --psy-rd 1.0:0.2
    --me umh --threads auto --thread-input --progress
    --no-psnr --no-ssim --output "output" "input" --sar 16:11
    Zitat von LoRd MuldeR

    Daher lässt du "--level" am besten ganz weg und lässt x264 das korrekte Level entscheiden ;)


    Laut MediaInfo spuckt x264 am Ende ein "Format profile : High@L3.1" aus.

    4 Mal editiert, zuletzt von XadoX (28. Mai 2009 um 08:15)

  • Ok da ich mir die ganze Mühe ja für meinen Popcorn Hour A-110 mache und dabei bzgl. der Codieroptionen bestimmte Richtlinien einzuhalten sind würde ich fast sagen das VBV gesetzt werden sollte. Allerdings sollten in diesem Fall (DVD-Backup) doch keine Werte >40000 vorkommen.

    Für deine Hardware-Player wirst du tatsächlich VBV brauchen. Welche VBV Parameter du setzen musst, hängt vom jeweiligen Gerät ab.
    Wie die Werte für deinen "Popcorn Hour" liegen, musst du in der Anleitung oder im Netz in Erfahrung bringen...

    Laut FFDshow pendelt die Bitrate zwischen 2000-4000.

    Klingt ziemlich normal für SD Inhalte bei CRF 19 :ja:

    Laut MediaInfo spuckt x264 am Ende ein "Format profile : High@L3.1" aus.

    Da du das Level jetzt nicht mehr manuell gesetzt hast, wird das von x264 ermittelte Level wohl stimmen ;)

  • Ich bin nun etwas verwirrt :huh:

    Wenn SD-Material bei einem CRF19 bitratentechnisch theoretisch nur maximal 5000 erreicht und mein Hardwareplayer maximale Bitraten von 50.000 erlaubt muss ich dann dennoch VBV-Werte definieren?

    </dd></dl></kbit>

  • Bei VBV geht es keinesfalls nur um die maximale Bitrate! Es wird ein Puffer simuliert, wie er in einem Hardware Player vor kommt. Dieser virtuelle Puffer wird fortwährend mit einer konstanten Datenrate gefüllt. Das entspricht der Lesegeschwindigkeit des Laufwerks (oder der Netzwerkbandbreite beim Streaming). Der Decoder entnimmt die Daten bei der Wiedergabe aus dem Puffer. Die Bitrate des Vidoes darf zwar auch mit VBV noch variable sein, es sind aber nur kurzfristige Abweichungen von der Eingabe-Datenrate, mit der der Puffer gefüllt wird, möglich! Übersteigt die Bitrate des Videos die Eingabe-Datenrate, dann läuft der Puffer langsam aber sicher leer. Umgekehrt: Ist die Bitrate des Videos unterhalb der Eingabe-Datenrate, dann läuft der Puffer langsam aber sicher voll. Aufgabe von VBV ist es daher, dafür zu sorgen, dass der Puffer niemals über oder unterläuft! Das würde auf einem Hardware Player nämlich die Wiedergabe unterbrechen. Droht der Puffer leer zu laufen, zwingt VBV den Encoder die Bitrate zu drosseln, auch auf die Gefahr hin, dass dadurch Artefakte entstehen. Droht der Puffer über zu laufen, zwingt VBV den Encoder die Bitrate anzuheben, auch wenn das Video momentan eigentlich mit einer niedrigeren Bitrate aus käme. Die maximale Datenrate für VBV ist eine weitere Begrenzung und gibt an, wie hoch die Bitrate des Videos höchstens werden darf, unabhängig vom Füllstand des Puffers. Um die Kompatibilität zu einem Hardware Player sicherzustellen, musst du beide VBV Parameter mit den korrekten Werten angeben. Das gilt auch dann, wenn dein Video scheinbar weit unterhalb der maximalen Bitrate liegt...


    [Blockierte Grafik: http://www.edv-tipp.de/gif_images/dvd/weg.gif]

    (Und um es nochmal klar zu machen: Für die Wiedergabe auf einem "Software" Player ist VBV irrelevant und sollte daher nicht benutzt werden)

  • Hmmm was mache ich denn nun? In meinem Fall empfiehlt es sich VBV zu nutzen, nach LoRd_MuldeR sollte ich dann allerdings 2Pass verwenden. 2Pass wollte ich eigentlich vermeiden da ich mich dort ja vorab auf eine Zielgröße festlegen muss.

  • Im Zweifelsfall: Ordentlich testen. 2-pass mag für vorhandene VBV-Beschränkungen empfohlen sein, das bedeutet aber nicht, dass es im 1-pass-Modus überhaupt nicht funktionieren muss ... oder doch?

    Zumindest kann man das nicht exakt klären, solange man nicht im Detail weiß, wie sich der Encoder bei Verletzung der Beschränkung verhält, ob er die bei 1-pass überhaupt bemerken kann, ob er die bei 1-pass überhaupt korrigieren kann ...

  • 1-Pass VBV funktioniert auch, aber die Qualität wird halt stärker leiden, als bei 2-Pass VBV.

    Sofern keine Warnings im Log auftauchen, werden die VBV Beschränkungen aber so oder so korrekt eingehalten!

    Übrigens kann man den ersten Durchgang eines 2-Pass Encode mit CRF ausführen und anschließend den zweiten Durchgang mit der resultierenden Bitrate des ersten.

    Dann musst du dich auch nich vorher auf ne Zielgröße festlegen ;)

  • Wie genau würde das aussehen? --pass 1 durch --crf austauschen, oder wie?

    Nein, du brauchst "--pass 1", demit er den Stats-File schreibt ;)

    1. Pass:
    x264.exe --pass 1 --crf 22 --stats c:\mylog.stat --output NUL [weitere optionen] c:\input.avs

    2. Pass:
    x264.exe --pass 2 --bitrate XXX --stats c:\mylog.stat --output c:\output.mkv [weitere optionen] c:\input.avs

  • ...kann man den ersten Durchgang eines 2-Pass Encode mit CRF ausführen ... anschließend den zweiten Durchgang mit der resultierenden Bitrate des ersten.


    Geht das Automatisch? Im 2. Pass muss man doch zwangsweise manuel eine Bitrate angeben.

  • Genau deshalb geht es nicht automatsich. x264 liefert die durchschnittliche Bitrate ja nicht an die MeGUI zurück. MeGUI müsste dafür die Konsolenausgabe weiter analysieren, oder die Statistikdatei. Das würde aber dem herkömmlichen 2-pass-Verfahren völlig widersprechen.

  • Glücklicherweise scheinen die VBV-Optionen für meinen Popcorn Hour A-110 nicht nötig zu sein. Somit lasse ich diese nun einfach weg.

    Somit sieht meine Kommandozeilen-Vorlage wie folgt aus:

    Code
    program --crf 19 --ref 8 --mixed-refs --bframes 3 --b-adapt 2--b-pyramid --weightb --deblock -1:-1 --subme 8 --trellis 2--psy-rd 1.0:0.2 --me umh --threads auto --thread-input--progress --no-psnr --no-ssim --output "output" "input" --sar 16:11

Jetzt mitmachen!

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