x264 von Avidemux auf Speicherplatz optimieren

  • Wie schaffst du es bloß immer, alles doppelt und dreifach einzufügen?! Muss ich erst mal säubern...


    Das, was ich eingefügt habe, ist 1:1 das, was Media-Info in die Textdatei kippt.


    Zitat

    Wie man in Avidemux den x264-Encoder auf Interlaced-Encodierung einstellt:
    [Configure] - Frame (Frame Encoding) [X] Interlaced: Bottom Field First / Top Field First / Fake Interlaced


    Die Option ist bei mir ausgegraut. Vermutlich erkennt Avidemux, dass es kein interlaced Video ist und bietet das Deinterlacing absichtlich nicht an.




    Hier ist ein Testschnipsel.


    Mit Avidemux 4576 wird es mit crf23 2.103 kb groß.
    Avidemux 2.6.1 erzeugt mit crf23 eine 4.239 kb große Datei.


    Den Ton habe ich mit aac/Dolby Prologic II encodet.

  • Das ist kein "Deinterlacen", das ist "interlaced (halbbildweise) encodieren".


    Die Auswahl der Variante ist in der Tat deaktiviert, bis man links daneben die Checkbox anhakt.


    Zumindest ist das Video anscheinend progressiv. Aber unheimlich verblockt und verrauscht.


    x264.exe r2245 (aktuell in MeGUI) erzeugt mit CRF 23 eine 4.441 KB große AVC-Datei bei ~60 fps.
    x264.exe r1913 (x264-HD-Benchmark v4.0) erzeugt mit CRF 23 eine 4.726 KB große AVC-Datei bei ~52 fps.
    x264.exe r1342 (x264-HD-Benchmark v3.0) erzeugt mit CRF 23 eine 5.159 KB große AVC-Datei bei ~47 fps.
    x264.exe r663 (x264-Benchmark v2.0) erzeugt mit CRF 23 eine 3.944 KB große AVC-Datei bei ~20 fps.


    Keine Ahnung, was dein Avidemux macht. Vielleicht rauschfiltern.

  • Nun, wenn es nicht interlaced ist, sollte man auch die Interlaced-Encodierung nicht aktivieren.


    Aber ich bin mir ziemlich sicher, dass die beiden Avidemux-Versionen nicht unter gleichen Bedingungen arbeiten. Ohne Block- und Rauschfilter kann ich mir keine halbe Dateigröße erklären.

  • mit:

    Code
    1. x264 --profile high --level 4.1 --min-keyint 25 --bframes 4 --b-pyramid none --b-adapt 2 --subme 6 --vbv-maxrate 62500 --vbv-bufsize 78125 --non-deterministic --colormatrix bt470bg --fps 30000/1000 --input-res 848x480 --opencl --opencl-clbin x264_lookahead.clbin --output "H:\Temp\crf_x264_default.264" -


    erhalte ich:


    und eine Dateigröße von 3.360.489 bytes :D (im mkv container) was von 2.103 kb aber noch einiges entfernt ist.
    (wenn ich DeHalo_Alpha noch aktiviere habe ich 2.656.670 bytes, wenn ich DeHalo_Alpha und RemoveGrain(2) verwende sind es noch 2.265.386 bytes)


    -> Vermute auch das da in Avidemux noch irgendein Dehalo/Rauschfilter oder dergleichen aktiv ist.

  • Die Checkbox vor "Interlaced" kann ich hier nicht anhaken. Das bleibt grau.



    Filter habe ich in Avidemux 4576 nicht aktiviert.
    Ich habe mal alle Menüoptionen von X264 gecaptured und angehängt.



    Einen Rauschfilter sehe ich da nicht.



    EDIT:
    Wenn ich in Avidemux 2.6.1 crf 24 oder höher einstelle, dann wird es "schlagartig" an manchen Stellen im Bild matschig und es entstehen Blockartefakte. Nicht immer, aber wenn man bildweise mit dem Editor durch geht, dann tauchen sie ziemlich oft auf.

  • Glaub ich hab's:

    Code
    1. x264 --profile high --level 4.1 --min-keyint 25 --bframes 4 --b-pyramid none --b-adapt 2 --sync-lookahead 0 --no-mbtree --subme 6 --trellis 0 --psy-rd 0:0.0 --vbv-maxrate 62500 --vbv-bufsize 78125 --non-deterministic --colormatrix bt470bg --fps 30000/1000 --input-res 848x480 --output "H:\Temp\test.264" -


    sollte etwa dem entsprechen was Du eingestellt hast
    -> ohne Audio 2.077.665 bytes (im mkv container)


    Woran wir nicht gedacht hatten vorher, war dass sich die Defaultwerte geändert haben. ;)


    Weil es so schön ist:
    mit Trellis an:

    Code
    1. x264 --profile high --level 4.1 --min-keyint 25 --bframes 4 --b-pyramid none --b-adapt 2 --sync-lookahead 0 --no-mbtree --subme 6 --psy-rd 0:0 --vbv-maxrate 62500 --vbv-bufsize 78125 --non-deterministic --colormatrix bt470bg --fps 30000/1000 --input-res 848x480 --output "H:\Temp\mitTrellis.264" -


    -> 2.564.729 bytes


    mit Trellis und PsyRD (--psy-rd 1.01:0)

    Code
    1. x264 --profile high --level 4.1 --min-keyint 25 --bframes 4 --b-pyramid none --b-adapt 2 --sync-lookahead 0 --no-mbtree --subme 6 --vbv-maxrate 62500 --vbv-bufsize 78125 --non-deterministic --colormatrix bt470bg --fps 30000/1000 --input-res 848x480 --output "H:\Temp\mitTrellis.264" -


    -> 2.640.479 bytes


    mit Trellis, Psy, mbtree&lookaheads:

    Code
    1. x264 --crf 23 --profile high --level 4.1 --min-keyint 25 --bframes 4 --b-pyramid none --b-adapt 2 --subme 6 --vbv-maxrate 62500 --vbv-bufsize 78125 --non-deterministic --colormatrix undef --fps 30000/1000 --input-res 848x480 --output "H:\Temp\mitTrellis.264"


    -> 3.351.906 bytes


    mit openCl an:

    Code
    1. x264 --profile high --level 4.1 --min-keyint 25 --bframes 4 --b-pyramid none --b-adapt 2 --subme 6 --vbv-maxrate 62500 --vbv-bufsize 78125 --non-deterministic --colormatrix bt470bg --fps 30000/1000 --input-res 848x480 --opencl --opencl-clbin x264_lookahead.clbin --output "H:\Temp\mjpeg_pcm_Title_1.264" -


    -> 3.353.624 bytes


    => Merke: mbtree&trellis haben einen enormen Einfluss auf crf :) und crf und konstante Qualität sind einfach unterschiedliche Sachen. :D



    Cu Selur


    Ps.: k.A. ob Avidemux dir erlaubt mbtree&co zu deaktivieren.


    PPs.: vielleicht sollte man sich noch mal Gedanken machen in welchen Szenarien Trellis&MBTree wirklich etwas bringen,...

  • Ich glaube, dass du mit Trellis und mbtree die entscheidenden Schalter gefunden hast.
    Ich habe ausgehend vom Standard bei Avidemux 2.6.1 folgende Sachen eingestellt:
    crf=23 , trellis aus, macroblock ein (aber keine Parameter verändert)


    Bei letzterem meldet Avidemux, dass es für das Einschalten notwendig wäre "Adaptive Quantization" zu aktivieren. Das habe ich dann bestätigt.


    Das hochgeladene Testvideo kommt damit auf 2.575 kb.
    Ohne die Veränderungen bei trellis und macroblock sind es 4.239 kb.
    Avidemux 4576 macht daraus 2.103 kb.


    Das ist also schon verdächtig nahe an dem, was das alte Avidemux "schafft".
    Ich müsste jetzt noch mal die anderen Optionen vergleichen und versuchen diese an die alten Einstellungen anzupassen. Vielleicht erreiche ich dann sogar die Effektivität, die ich mit Avidemux 4576 erreiche.



    In MeWiki steht geschrieben, dass Trellis die Effektivität erhöhen würde, aber für mich sieht es eher so aus, als würde es genau das Gegenteil machen. Die Dateigröße steigt dadurch dramatisch an. Das kann man nur mit einem Hochsetzen des crf-Wertes ausgleichen, wodurch dann sichtbare Bildverschlechterungen entstehen.


    Ich habe daher weiterhin den Verdacht, dass X264, bzw. die Standardwerte in Avidemux und die Angaben in den Tutorials nicht für meine relativ miesen Quell-Videos optimiert und gedacht sind.



    Die Erörterung der genauen Vorteile von trellis und mbtree würde mich auch interessieren. :)




    Danke erst mal und schönes Wochenende

  • Zitat

    crf=23 , trellis aus, macroblock ein (aber keine Parameter verändert)


    Macroblock? Kenne die Option nicht.


    Hab mal die aktuelle r8649 runtergeladen:
    deaktiviere: 'Macroblock-tree Rate Control' und 'Trellis Quantization'
    setze 'Psychovisual Rate Distortion Optimisation' und Frametype Lookahead auf 0
    + persönlich würde ich noch 'Noise Reduction' auf 1000 oder mehr stellen


    Cu Selur

  • Ich persönlich würde eher das Video filtern, bevor ich es erneut komprimiere. Das ist dermaßen verrauscht und mit DCT-Artefakten belastet, dass man da unbedingt mehr Ruhe reinkriegen sollte, und schon sinkt die Bitrate wahrscheinlich gleich wesentlich.


    Die "noise reduction" in x264 ist eher eine Art "noise modelling"; wenn der Amateuraufnahme-Charakter erhalten bleiben soll, könnte es durchaus helfen, aber etwas aufwändigere und v.a. temporal wirksame Rauschfilter dürften hier eher Auswirkungen haben.

  • Macroblock? Kenne die Option nicht.


    Das markierte meine ich:


    Das ist standardmäßig ausgeschaltet. Wenn ich es anhake, dann wird die Datei deutlich kleiner.


    Ich vermute, dass das dem Parameter --no-mbtree entspricht.


    Mir fällt allerdings auf, dass sich zumindest von der Bezeichnung her avidemux anders verhält.
    Wenn du "--no-mbtree" aktivierst, dann hast du kleine Dateien.
    Wenn ich in Avidemux Macroblock Tree Rate Control aktiviere, also genau das Gegenteil, dann erhalte ich kleinere Dateien.



    Zitat

    Hab mal die aktuelle r8649 runtergeladen:
    deaktiviere: 'Macroblock-tree Rate Control' und 'Trellis Quantization'
    setze 'Psychovisual Rate Distortion Optimisation' und Frametype Lookahead auf 0
    + persönlich würde ich noch 'Noise Reduction' auf 1000 oder mehr stellen


    Oh Mann, das ist unübersichtlich.
    Ich habe hier immer Avidemux 2.6.1 benutzt, weil die 2.6.3 (soweit ich weiß, das aktuellste Release) mind. zwei Fehler hat. Ich dachte, mit der Version 2.6.1 wäre ich besser aufgehoben.


    Als ich gerade deine Einstellungen in 2.6.1 vornehmen wollte, sehe ich, dass
    1. "Macroblock Tree Rate Control" in 2.6.1 standardmäßig deaktiviert ist, während es in 2.6.3 standardmäßig aktiviert ist.
    2. Psychovisual Visual Rate Distortion Opti. steht in 2.6.1 auf 0,0 und in 2.6.3 auf 1,0
    3. Frame Type Lookahead steh in 2.6.1 auf 0 und in 2.6.3 auf 40
    4. Noise Reduction ist in 2.6.1 ausgegraut und nicht anwählbar.


    Das sind ja völlig andere Standardwerte.


    Ist die Version r8649 besonders empfehlenswert, oder warum hast du gerade diese genommen?



    BTW: Noise Reduction habe ich bei der Version 4576 nicht aktiviert. Das werde ich aber mal ausprobieren.
    BTW2: Im Testvideo hat es geregnet. Das Rauschen ist aber auch bei schönem Wetter ziemlich ausgeprägt.

  • Zitat

    Ist die Version r8649 besonders empfehlenswert, oder warum hast du gerade diese genommen?


    hab die genommen weil es die aktuellste war die ich gesehen habe. :)


    Kann nichts dazu sagen ob irgendwelche Avidemux Versionen sich anders verhalten als die r8649, da ich Avidemux so gut wie nie nutze.
    Prinzipiell tendiere ich eher zu neueren als älteren Versionen. :D


    Mit der r8649 und den genannten Einstellungen wird der Reencode bei mir 2MB mit noise reduction auf 1000 sogar etwas kleiner.



    Cu Selur

  • Jo, vom Lord habe ich das sonst immer geladen. Jetzt habe ich es mir von obigem Link gezogen.


    Morgen werde ich mal die empfohlenen Einstellungen testen und gucken, wie das im Vergleich zur r4576 ist. Ich hoffe, dass sich dann die Verwirrung legt, den die völlig unterschiedlichen Standardwerte der verschiedenen Versionen bei mir hinterlassen haben.

  • Hab mal die aktuelle r8649 runtergeladen:
    deaktiviere: 'Macroblock-tree Rate Control' und 'Trellis Quantization'
    setze 'Psychovisual Rate Distortion Optimisation' und Frametype Lookahead auf 0
    + persönlich würde ich noch 'Noise Reduction' auf 1000 oder mehr stellen


    Ich bin jetzt mal deinen Empfehlungen gefolgt und habe es mit der r8649 und den obigen Einstellungen ausprobiert.
    Das Testvideo ist dann 2.451 kb groß.
    Zum Vergleich: mit der r4576 wird es 2.103 kb groß.



    Es blieb also noch Noise Reduction. Die "1000" hatte ich übersehen und fragte mich dann, welche Werte sinnvoll sind. Da ich auch sehen wollte, in welche Richtung es sich auswirkt, habe ich das Maximum eingestellt, was "9999" entspricht.
    Die Datei ist damit nur noch 928 kb groß.
    Mit NR=1000 sind es dann 1.923 kb.


    NR scheint ein wichtiger Hebel zu sein. Kann es sein, dass das X264 von Avidemux r4576 ein fest eingestellte NR eingebaut hatte?



    Naja, die Dateigröße ist nicht das Einzige. Die Bildqualität muss ja auch brauchbar sein. In dem Testvideo sehe ich nun keine großen Unterschiede. Ich würde sagen, es wird mit NR 9999 etwas matschiger - so in die Richtung, wie früher Video-CDs ausgesehen haben.
    Ob das entscheidend ist, muss ich mal mit besseren Testvideos ausprobieren. So etwas kann ich am Besten an Gesichtern erkennen. Letztlich geht es mir auch fast nur darum. Wenn ich kleine Videos drehe, dann meistens von den beiden kleinen Scheißern, die mir hier zwischen den Beinen herum rennen :-)




    Als Rauschfilter scheint ihr euch ja einig zu sein, dass es mit externen Filtern besser funktionieren sollte.
    Ich habe nichts dagegen, solange es sich mit Avidemux lösen lässt. Welche(n) Filter und welche Einstellungen würdet ihr mir empfehlen?


    Avidemux bietet mir 8 Rauschfilter an.


    Als vollkommen Ahnungsloser würde ich nun MPlayer Denoise 3D HQ oder den FluxSmooth ausprobieren.




    LigH
    Der Amateurfilmcharakter ist mir nicht wichtig. Wie könnte man denn einen professionelleren Look erreichen, ohne dem Video entscheidende Details zu rauben.
    Das Rauschen kann meinetwegen komplett weg, aber ich möchte gerne Gesichter, bzw. Menschen soweit wie möglich erhalten und keine Simpson-Videos produzieren :)



    BTW: Auf dem Testvideo regnet es, aber die Cam liefert auch ohne Regen so viel Rauschen, dass es nach Regen aussieht :)