XMedia Recode, meine Erfahrungen, Tests und einige ungeklärte Fragen!?

plato333

Lieutenant
Registriert
Mai 2016
Beiträge
1.010
Zunächst meine Fragen (kurze Antworten reichen völlig aus), dann meine Erfahrungen und Tests:

1. Wo liegt genau der Unterschied zwischen Konstante Qualität, Konstante Quantisierung, ABR (durchschnittliche Bitrate)?
2. Gibt es was zu beachten bezüglich der Kompatibilität mit anderen TVs, Blu-ray-Playern usw. bezüglich Profil, Level und den verschiedenen oben genannten Bitratenmodi (kann ja nur meine Geräte testen, nachher läuft es bei mir und später finde ich heraus, das eine bestimmte Einstellung viele Geräte nicht abkönnen)?
3. Habe über Jahre immer ABR (durchschnittliche Bitrate) benutzt, da bei mir bei MPEG-4 AVC / H.264 und Benutzerdefiniert .avi und Konstante Qualität oder Konstante Quantisierung ständig im Windowsexplorer extrem niedrige Bitraten angezeigt wurden z.B. Daterate 128 kbit/s und Gesamtbitrate 256 kBit/s bei Faktor 20 egal ob bei Konstanter Quantisierung oder Qualität!? Erst jetzt rausgefunden, dass dies bei .mp4 als Dateiendung nicht der Fall ist, dort je nachdem z.B. im 4000 oder 10000 Bereich, woran liegt das? .avi als Dateiendung für MPEG-4 AVC / H.264 und Konstante Quantisierung oder Qualität nicht optimal?
4. Dachte mit .avi erziele ich eine höhere Kompatibilität? Falsch! .mp4 als Dateiendung besser? Wählte zunächst auch .avi, da ein Player von mir mit .mp4 etwas Probleme hatte beim spulen.
5. Eure Ehrfahrungen bezüglich Preset?

Meine Ehrfahrungen Tests:

Lange mit ABR (durchschnittliche Bitrate) meine Dateien encodiert (.avi und MPEG-4 AVC / H.264, Profil: High und Level 3.1 für HD 1280x720 und Level 4.1 für Full HD 1920x1080, Preset: Medium), und vermutlich häufig eine zu hohe Bitrate eingestellt je nach Ausgangsqualität und persönlicher Wichtigkeit der Datei zwischen 1500 und 9000 lol.
Dann rieten mir viele zu 2 Pass ABR (durchschnittliche Bitrate), angeblich nur damit brauchbare Ergebnisse, dann wieder getestet und konnte keinen Unterschied zu ABR (durchschnittliche Bitrate) feststellen, also dabei geblieben.
Da ich jetzt noch so einiges umwandeln musste, nochmals getestet und da ich erst jetzt sah, dass der oben unter 3. genannte Bitratenfehler (???) nur bei .avi auftrat und nicht bei .mp4, überlege ich nun auf .mp4 umzusteigen und Konstante Qualität einzustellen (Konstante Quantisierung ist nahezu identisch jedoch ist die Datei am Ende größer als bei Konstante Qualität, bei 14 fast 3x so groß und bei 20 etwa ein Drittel größer! Habe lange getestet und konnte zwischen 14, 16, 18, 20 keine Unterschiede erkennen, also 20 richtig?
Habe meine Testvideos nicht nur am PC ausgewertet, sondern auch auf nen 43 Zoll 4K TV gestreamt von nicht HD Material bis hin zu Full HD. Unten noch ein Screenshot (falls es jemanden interessiert) Vergleich von Konstanter Qualität 20 und 14 (1920x1080) und 20 (1280x720). Extrem vergrößerter kleiner Bildausschnitt. Entfernung zur Kamera ca. 60 Meter. Auf der Mitte des jeweiligen Pics befindet sich eine ältere Frau, kaum noch zu erkennen. Ausgangsmaterial Lumix GH2 1920x1080 ca. 22000 kbit/s. Kaum Unterschiede, außer das 1920x1080 natürlich etwas besser ist als 1280x720.

Also meine Einstellungen sind jetzt:
Dateiendung: .mp4
Codec: MPEG-4 AVC / H.264
Profil: High
Level 3.1 für HD 1280x720 und Level 4.1 für Full HD 1920x1080
Preset: Medium
Tune: Aus (bisher) vielleicht doch Film???
Bitratenmodus: Konstante Qualität
Qualität: 20
Audio Codec: AAC (Faac)

alles andere so gelassen, Youtube Einstellungen.

Evtl. Verbesserungsvorschläge?
 

Anhänge

  • zzz.JPG
    zzz.JPG
    108,8 KB · Aufrufe: 1.385
Zuletzt bearbeitet:
plato333 schrieb:
1. Wo liegt genau der Unterschied zwischen Konstante Qualität, Konstante Quantisierung, ABR (durchschnittliche Bitrate)?
-Wenn ich mich richtig errinnere versucht er bei Konstanter Qualität die Qualität einer ähnlichen Quantizierung (z.b. 20) zu erhalten. (egal wie hoch oder auch niedrig die Bitrate am Ende ist. Bei schlechtem Ausgangsmaterial reichen evt. einige hundert kbps.)
-konstante Quantisierung ist eigentlich sehr einfach gestrickt, fast wie konstante bitrate. Das gabs schon vor DivX.
-abr ist halt durchschnittliche bitrate. (nach einigen frames mit viel Action muss bei zu mageren Settings evt. die Rate gesenkt werden und es gibt artefakte)
https://encodingwissen.de/codecs/encodingmethoden/
CQ-konstante Qualität wäre meine Wahl, weil es einfach ist und mir die Dateigröße (dafür dann 2-pass) egal ist.

avi, mp4, mkv, usw. sind alles nur Container-Formate. Da kann alles mögliche drin sein.
Wenn dir Kompatibilität wichtig ist rendere in fertige Presets wie z.b. "Iphone / X-box / Youtube".
Die Encoder-Einstellungen von z.b. x264 -Slow / -Fast verändern die Anzahl Referenz-Bilder oder die Genauigkeit / den Aufwand bei der Komprimierung, die Kompatibilität zu Stand-Alone-Playern aber eher indirekt.
 
Zuletzt bearbeitet:
Das Containerformat AVI ist schon seit Xvid/Divx obsolet, da man es nur mit Einschränkungen nutzen konnte (Anzahl B-Frames = 1, Framereihenfolge).

Ab AVC ist die Nutzung von AVI extrem schlechter Stil (AVC sortiert die Reihenfolge der Frames um, es gibt mehr Verweise auf spätere Frames etc.).
Standards sind MP4-Container oder MKV.

Irgendwas stimmt aber mit Deinen Bildschirmfotos nicht:
Wenn zwei davon FullHD sind und eins nur HDready, dann müsste bei gleichen Ausschnitt und gleicher Vergrößerung die Pixelgröße des HDready von der Fläche her viermal so groß sein.
ist sie aber nicht, die Größe scheint identisch, die Farbverteilung der Pixel ist nur verwaschener.
 
Zuletzt bearbeitet:
"Konstante Quantisierung": Objektiv durchgängig gleiche Bildqualität, da die gleiche Quantifisierung als Ziel gesetzt wird --> Mehr Bewegung erfordert mehr Bildrate.
"Konstante Qualität": Subjektiv besser als die konstante Quantisierung, da der Ansatz ein anderer ist: Da der Mensch schnelle Bewegungen im Detail nicht erkennt, SINKT bei schnellen Bewegungen die Bildrate, während sie bei langsamen Bewegungen ansteigt.
 
Danke an alle!:daumen:

@Wishbringer
OK, dann hat .avi wohl ausgedient.
Zum Thema Vergrößerung der Bilder. Habe aus den jeweiligen Videos immer die gleiche Stelle ausgeschnitten ca. 1cmx1cm per Snipping-Tool, dann alle Pics nebeneinander und vergrößert (Rad der Maus) glaube 10 Stufen. Die Bilder waren dann alle fast gleich groß. Mag ja sein, dass das nicht der richtige Weg war, bin kein Experte. Ergebnis ist aber wohl trotzdem richtig. Ist ja logisch das 1920x1080 besser aussieht als 1280x720 bei Full HD 1920x1080 Bitrate 22000kBit/s Ausgangsmaterial (Lumix GH2), wäre ja auch schlimm, wenn da gar kein Unterschied zu sehen wäre, oder?
Auf jeden Fall sehe ich keine Unterschiede zwischen Konstante Qualität und Quantisierung 14 - 20, außer die größen Unterschiede der Dateien. Habe auch die lustige Bildschirmlupe versucht, da sieht man auch nichts egal ob auf Monitor oder 4K TV.

Also halte mal fest, Konstante Qualität 20 und MP4-Container oder MKV. Bei MKV muss ich noch testen, ob dass alle TVs, Blu ray Player können. Spulen ist leider immer dass Nr. 1 Problem, spult zwar, aber mal schneller mal langsamer.
Ergänzung ()

Muss noch mal etwas berichtigen! Der Bitratenfehler bei .avi ist wohl nur ein Anzeigefehler, keine Ahnung warum so niedrige Bitraten angezeigt werden! Die Datei ist völlig in Ordnung! Gleiches Video mit .avi Bitraten unter 300 und mit .mp4 um die 2500!? Merkwürdig!
Siehe Foto 3!
Es gibt doch Unterschiede zwischen den verschiedenen Einstellungen wie z.B. Konstante Qualität 20, 18, 16 usw. - was ja eigentlich auch klar ist! Wie man auf dem Foto 2 sehen kann ist Konstante Qualität 16 doch besser als 20! Sieht man an der schwarzen Linie rechts, viel gerader, klarer!
Dann ist mir noch aufgefallen, dass es besser ist "Benutzerdefiniert" und "mp4" einzustellen als "Youtube 1280x720 HD (mp4)", also die Datei so zulassen und nicht von z.B. 1016x570 in 1280x720 umzuwandeln. Zumindest kommt es dann bei mir zu Pixelfehlern (hoffe es ist die richtige bezeichnen dafür), wie man auf Bild 1 sehen kann. Ein Punkt links oberhalb des roten Balkens und ein dunklerer Punkt/Fleck 2cm weiter links und 2cm nach oben. Und noch weitere! Dazu kommen noch Farbveränderungen siehe roter Balken. Dachte erst die Qualität wird vielleicht etwas besser bei 1280x720 statt 1016x570, dem ist aber nicht so! Werde also die Viedos so lassen wie sie sind und "Benutzerdefiniert" und "mp4" einstellen. Die vorgegebenen Einstellungen sind auch etwas anders z.B. B-Frames-Anzahl usw.
 

Anhänge

  • 2Pixelfehler;andere Farben.jpg
    2Pixelfehler;andere Farben.jpg
    56,9 KB · Aufrufe: 1.074
  • 16 doch besser als 20.JPG
    16 doch besser als 20.JPG
    23,9 KB · Aufrufe: 1.140
  • zz1.jpg
    zz1.jpg
    88,1 KB · Aufrufe: 1.224
Zuletzt bearbeitet:
Resizen ist immer schlecht , egal ob bei Bildern oder Videos.
Genauso wie die meisten Filter. (außer du brauchst z.b. Deinterlacer, Sharpening, Rauschfilter)
Wenn's nicht durch 16 teilbar ist evt. ein paar Pixel croppen/abschneiden.
Mach dir am besten "dein eigenes Preset". Je stärker du komprimierst um so länger dauert des encoden, aber umso kleiner werden die Dateien. (bei konstanter Qualität)
 
Zuletzt bearbeitet:
OK, danke!
Wenn es nicht durch 16 teilbar ist sollte man croppen? Man bekommt dann bessere Ergebnisse?
Also bei meinem Beispielvideo von 1017x570 sollte ich croppen, dass es durch 16 teilbar ist?
Oder meinst du damit mehr Bilder? Da kenne ich es z.B. bei IrfanView, da macht es das Programm selber
beim Verlustfreien croppen!
Ansonsten muss ich das jetzt auch noch bei Videos testen, verdammt!;)
Dachte ich könnte z.B. 1017x570 so lassen, Ergebnis sah sehr gut aus, besser als beim reseizen auf 1280x720.

PS: Mittlerweile tendiere doch zu Konstante Qualität 16 statt 20.
 
wenn es nicht durch 16 teilbar ist, hat man eig. keine "normale" Auflösung.
"Die digitale Codierung eines Bildes nach jedem MPEG-Standard (MPEG-1, MPEG-2 und MPEG-4) basiert auf Makroblöcken. Das sind Bildeinheiten von 16x16 Pixeln, in die das Bild zerlegt werden muss, bevor es codiert wird. Sind die Kantenlängen nicht durch 16 teilbar, so wird das Bild beim Encoden entsprechend vergrößert und später beim Decoden vor der Darstellung wieder abgeschnitten. Die angezeigte Bildfläche verändert sich dadurch also nicht. Allerdings geht durch dieses Verfahren Bitrate ungenutzt verloren. Optimal sind also immer Kantenlängen, die durch 16 teilbar sind."
http://videobasics.de/grundlagen/aufloesungen.php
Außerdem hatte ich mal teilweise fehlerhafte Codierungen/Artefakte bei sehr komischen Auflösungen
Warum ist dein Format denn nicht 1024x576 Pixel? Wurde da schon was abgeschnitten?
Für z.b. Youtube oder allgemeine Kompatiblilität wäre (Aufnahme und encoden direkt in) 720p,1080p oder 480p am besten.
 
Zuletzt bearbeitet:
Sorry, vergessen zu antworten - etwas spät!;)
Mein Video war 1017x570 da ich es so vom Bildschirm abgefilmt habe mit Recording Software.
Habe also selber den "Rahmen" bzw. "Ausschnitt" ums Video gezogen.

WICHTIG: für alle die es interessiert bei der Einstellung konstanter Qualität mit XVideo Recode kommt es doch manchmal zu merkwürdigen Ergebnissen, so das ich jetzt nur noch 2-pass nehme, außerdem kann man da wenigstens die gewünschte Bitrate einstellen. Die merkwürdigen Ergebnisse sind z.B. das manchmal bei gleicher Einstellung z.B. konstante Qualität 14 sehr sehr sehr niedrige Bitraten raus kommen und die Qualität wirklich extrem schlecht ist. Also wenn man diese Einstellung wählt muss man immer das Ergebnis gründlich prüfen!!!
Manchmal bekam ich Videos mit unter 400 Bitrate raus lol, obwohl das Ausgangsmaterial HD 1080p 50000 Bitrate war. Also Vorsicht bei dieser Einstellung!
 
Ich finde Xmedia Recode nicht schlecht, weil es Zugriff per GUI auf die Command Line Optionen bietet.
Normal ergeben die Presets und Tune, also z.B. crf 20 - 23, Preset Medium, Slow oder Slower und Tune Film für nahezu alles, abgesehen von 2D Animation und stark verrauschtem Material, gute oder auch sehr gute Resultate.

Aber man muß aufpassen. Ich weiß nicht woran es liegt, aber XR haut schon mal komische Einstellungen ins Setting, selbst wenn man in der Videosektion "Zurücksetzen" anklickt.

Bruder Johns Encodingwissen wurde zuvor schon verlinkt. Ich kann nur jedem empfehlen sich dort einen Überblick zu holen. Dann kann man sinnvoll mit XR (sowie jedem anderen Programm arbeiten) und kurz die Einstellungen in den Untermenüs der Videosektion überfliegen.
Mir ist es schon passiert, daß ich mit crf 20 encodet habe und dann war unter Bitratensteuerung bei "VBV Maximum Bitrate" 2000 eingetragen. Das Gute am Schlechten; von solchen Versehen kann man viel übers Encoding lernen, aber nur wenn es auffällt. Denn je nach Material kann es selbst bei einer so niedrigen Bitrate sein, daß es kaum einen sichtbaren Unterschied zum Quellmaterial gibt.

Kennt man die Bedeutung der wichtigsten Parameter, kennt man auch die wichtigsten Standardeinstellungen.
Die wichtigen findet man hier rechts entsprechend gekennzeichnet: encodingwissen.de/codecs/x264/referenz/

2-Pass ist eigentlich heute nur noch interessant, wenn man eine feste Zielgröße benötigt. Ansonsten ist man mit crf immer besser bedient.
Persönlich würde ich sagen, daß sowieso alles kleiner als crf 20 für kleine Diagonalen unnötig ist. Selbst crf 20 ist schon so gut, daß ich auf meinem 46" TV meistens kaum noch einen Unterschied zum Ausgangsmaterial wahrnehme. Dazu bedarf es dann schon Still Pictures aus hektischen Szenen. Ansonsten ist die Komprimierung des Codecs so gut, daß auch bei feinen Strukturen kaum noch ein Qualitätsverlust wahrnehmbar ist.
Solche Pauschalaussagen sind natürlich immer mit Vorsicht zu genießen, denn es kommt sehr auf das Material an!

Zur Player Kompatibilität:
Eigentlich benötigt man keine Profile wie die in XR oder Handbrake & co.
Heraus zu finden welche Container unterstützt werden ist der erste Schritt. Wird mkv unterstützt, gibt es kaum einen guten Grund es nicht einzusetzen.
Welche Optionen des Codecs von den Playern unterstützt werden, ist hingegen eine andere Sache. Das muß man recherchieren oder austesten.
 
Zuletzt bearbeitet:
Schalk666 schrieb:
wenn es nicht durch 16 teilbar ist, hat man eig. keine "normale" Auflösung.

Das ist heute aber kaum noch relevant. In den meisten Fällen reicht Modulo 2.
Der Player in meinem TV aus dem Jahre 2010 spielt problemlos Auflösungen wie 1024 x 436, 1280 x 532 oder 1920 x 808.

Ob Audio oder Video, meistens ist es so, daß die Daten MSB übertragen werden. Also die höherwertigen Bits zuerst. Wenn dann die Bit- (Wort-) Länge nicht paßt, wird einfach mit Nullen aufgefüllt.

Hat man tatsächlich einen empfindlichen Player, dann sollte man überlegen ob man den nicht gegen einen Pi3, einen Odroid C2 oder einen kleinen Intel NUC austauscht.
 
@Sparkraft
Erstmal danke für die ausführliche Antwort! Habe es gerade kurz überflogen & werde es mir die nächsten Tage noch genauer anschauen! Gerade total im Stress hier!;) Muss dann erstmal googeln, z.B. Modulo 2 sagt mir nichts. Werde dann evtl. noch was dazu schreiben. Thx.
 
Modulo 2 bedeutet einfach nur, daß es heute ausreichen sollte, wenn die Auflösung durch 2 teilbar ist.

Eile mit Weile. Das Encodingwissen läuft nicht weg ;-)

Grob kann man zusammenfassen:
- crf entspricht unterschiedlichen Qualitätsniveaus und ist der beste Kompromiß aus Kompression und Qualität. Der Codec bestimmt je nach Material die Bitrate und paßt diese fortwährend an.

- 2-pass hat den Vorteil der vorgegebenen Bitrate und damit Dateigröße. Der Codec kann hier die Bitrate aber nur auf das Video verteilen, nicht selbst festlegen. Meistens kommen so bei gleicher Qualität größere bis deutlich größere Dateien heraus. Oder gleiche Dateigrößen bei schlechterer Qualität.

- ABR/CBR ist eigentlich nur für Sonderfälle wie Streaming interessant, ansonsten zu meiden. Suboptimal für Archivierung.

x264 hat als Defaultwerte crf23 und Preset Medium. Ein guter Ausgangspunkt um mit einem kurzen Video zu testen. crf in 2er-Schritten von 16 bis 28 variieren, um auch mal in die Bereiche zu kommen, die keinen oder kaum noch Sinn machen. Sichten am besten auf dem TV.
Dann bei crf20 und/oder 23 die Presets variieren. Hier sollte man sich auch einmal die Extreme antun. Später wird sich das Encoding meist zwischen fast bis slower und crf 18 - 24 bewegen.
Tune ist schnell abgehandelt. Standard ist Film, Animation nur für klassische 2D Animation und Grain für verrauschtes Material.

Damit weiß man schon genug um mit Programmen wie Handbrake fast immer zu guten Ergebnissen zu kommen, ohne zu viel Zeit oder unnötig Speicherplatz zu vergeuden. Mehr muß man eigentlich nicht wissen.

Die resultierende Bitrate hängt von Material, Ratefaktor, Preset und den einzelnen Optionen ab.
Langsamere Presets erlauben nicht nur Techniken zur besseren Kompression, sondern auch zur besseren Analyse. Durch letzteres kann die Bitrate auch mal steigen. Langsamere Presets müssen nicht zwingend kleinere Dateien ergeben. Gerade solche Fälle bieten sich dann an um den Ratefaktor rauf zu setzen. Statt crf20/fast, vielleicht crf21-22/slow. Es gehen auch krumme Werte.

Will man noch genauer steuern, kommt man zu den einzelnen Optionen. Referenzframes und Lookahead sollte man sich früh ansehen, da hier kleinere/größere Werte einen signifikanten Einfluß auf die Dauer des Encodings haben. Ebenso me, subme und trellis...

VBV kann man z.B. für die Playerkompatabilität einsetzen. Der Pi kann entgegen landläufiger Meinung auch x265, obwohl ohne codec in Hardware. Allerdings nur bis 1080p und auch nur begrenzte Bitraten. 1080p/x265/crf23 ergibt häufig Bitraten zwischen 2,5 und 3,5 mbps und läuft meistens sogar auf dem Pi2.
crf20 läuft meist auf dem Pi3 ohne Ruckler. Will man sicher gehen, setzt man
vbv_maxrate=4500 (nur ungefähre Hausnummer). Für den Pi2 vielleicht 3500-4000.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: plato333
Zurück
Oben