Es weiß ja niemand, wie viel Bitrate man damit sparen kann. glaubt mir ja auch keiner.
Wieso sollte irgendjemand etwas wollen, von dem er gar nichts weiß.
Es weiß ja niemand, wie viel Bitrate man damit sparen kann. glaubt mir ja auch keiner.
Wieso sollte irgendjemand etwas wollen, von dem er gar nichts weiß.
Sorry, macht für mich halt wenig Sinn einige tausende Zeilen Code nur für einen Mann und nur für ein OS zu warten usw.
warum denn warten? mir reicht es, wenn die einmal geschrieben sind. danach müssen sie doch nie mehr geändert werden.
Dass sich niemand drüber freuen würde, dass man ca. 30 % weniger Bitrate für dieselbe Qualität benötigt, wage ich ernsthaft zu bezweifeln.
Es weiß nur aller Wahrscheinlichkeit kaum jemand von der möglichen Einsparung an Bitrate, da die 16-bit Präzision zu keiner Zeitpunkt in irgendwelchen mir bekannten kostenlosen und kommerziellen Programmen angeboten wurde und seit inzwischen 7 Jahren überhaupt nicht mehr unterstützt wird.
Wie gesagt: für den einmaligen Zeitaufwand, den Code aus der vorhin genannten 2015er Version unter einem anderen Namen in die neue Hybrid Version zu implementieren, zahle ich sehr gerne. daran soll es nicht scheitern.
Hi Selur,
ich wäre auch sehr stark daran interessiert das du das doch bitte mal integrierst, ich würde da auch einen kleinen Obolus dazu geben, es gibt halt einfach keine Programme die alles in einem so gut können wie deins, no way.
Man könnte noch mit FFMPEG rumspielen, aber das ist viiiieeel zu umständlich und teilweise unübersichtlich für Windows User.
Am besten ein Drop down Menu mit dem alten x265 mit 16 Bit Präzision zum auswählen, in dem dann die alte registerkarte aus dem 2015er Hybrid angezeigt wird anstatt dem des neuen x265 zbs.
Das wäre schon toll.
Grüße
Karthauzi
QuoteMan könnte noch mit FFMPEG rumspielen, aber das ist viiiieeel zu umständlich und teilweise unübersichtlich für Windows User.
Wie ist das den zu verstehen? Was hat den FFMpeg mit x265 zu tun? (finde ffmpeg an sich super nur leider nicht brauchbar dokumentiert und der Support treibt einen in den Wahnsinn.
irrelevant. Auch dieses tool nutzt meines Wissens nach die aktuelle x265 version und bietet damit keine 16 bit Präzision.
Es gibt also aktuell leider keine Alternative zu Hybrid Version 2015.04.25.1, wenn man mit maximaler Effizienz komprimieren möchte.
Nochmal zu meiner Frage:
Ist es mit moderatem Aufwand möglich, den Code aus der Hybrid Version 2015.04.25.1 unter einem anderen Namen in die neue Hybrid Version zu implementieren? Eine Wartung dieses Codes ist meines Verständnisses nach nicht notwendig. Ich bin seit 7 Jahren extrem zufrieden und daran wird sich bis X266 auch nichts mehr ändern.
Den dafür nötigen Arbeitsaufwand zahle ich sehr gerne in Form eine Paypal Spende oder auf andere von dir bevorzugte Weise.
Sicherlich werden sich auch einige weitere Nutzer über die Option, den alten Encoder mit 16 bit Präzision verwenden zu können, freuen, sollten sie auf irgendeine Weise den damit verbunden Vorteil erfahren.
Was meinst du?
Welche Bedenken gibt es und von wieviel Arbeitsaufwand reden wir hier?
Hab mal auf den Code geschaut, größtest Problem wäre das da total viel angepasst werden muss, da sich der komplette Code in den letzten 6 Jahren enorm geändert hat.
Sprich ein einfaches einsetzen des alten Codes ist nicht möglich.
Zeitabschätzung aus dem Bauch: vermute ca 40 Stunden.
Cu Selur
vielen Dank fürs Nachsehen. Eine volle Woche Arbeit klingt ja schon heftig. Damit verstehe ich jetzt deine Zurückhaltung
Ich verstehe nur nicht ganz, warum da etwas angepasst werden muss.
Verzeih bitte die naive Frage, aber ich hatte mir das so vorgestellt, dass einfach in Hybrid eine kleine Codeerweiterung zum Laden der x265-16bit.exe von damals eingefügt wird und das Ding dann einfach genauso aussieht und funktioniert wie in der alten Hybrid Version.
Klappt das so nicht, weil sich die Fenster/Oberflächen in Hybrid verändert haben oder warum musst du daran derart viel ändern?
Bedeutet das dann, dass du diesen Code auch jedes Mal, wenn du Änderungen an der Hybrid Oberfläche vornimmst, anpassen müsstest?
Vielen Grüße
Augur89
Der eigentliche Oberflächen Code kann von Früher (mit kleinen Anpassungen) einfach kopiert werden.
Das Problem ist, dass sich:
a. in den letzten 6 Jahren einiges geändert hat wie Modelle intern gespeichert und verarbeitet werden.
b. das Framework (Qt) sich um einiges geändert hat.
c. ein Großtel des Aufwands ist zu schauen wo überall Effekte des Codecs berücksichtig werden. (Ändert sich der output color space muss auch Avisynth, Vapoursynth, etc. Code aktualisiert werden) Die Jobgenerierung sieht auch indern ziemlich anders aus, da kann man sich teilweise an dem orientieren wie x265 aktuell gehandelt wird, aber dann doch nicht wirklich weil sich da doch einiges geändert hat.
Man bedenke, dass Hybrid aktuell aus einer 1/4 Millionen Zeilen geschriebenen Code bestehen.
Das ist ohne UI Darstellungscode oder generiertem Code und der Code ist über 10+ Jahre gewachsen und hat zig Stellen die man Refactoren (= sauberer, strukturierter schreiben) könnte, wenn man die Zeit hätte.
Geschrieben hab ich für Hybrid natürlich wesentlich mehr Code, aber wenn ich Zeit&Nerv finde zum Refactoren, dann fliegen auch mal ein paar 1000 Zeilencode raus. Das Problem bei wachsendem Code ist immer, dass man am Anfang einfach nicht an alles denken kann, besonders wenn immer mal wieder Sachen hinzukommen.
---
Die Änderungen die ich i.d.R. mache sind recht überschaubar und nicht so groß, das Problem ist nur das sich über die Jahre halt einiges ansammelt.
Cu Selur
Ps.: Wäre hilfreich wenn Du die 16bit x265.exe irgendwo hochladen und mir nen Link schicken kannst.
vielen Dank für die ausführliche Beschreibung und die damit verbundenen Einblicke.
Die x265-16bit.exe habe ich dir in einer pm verlinkt.
Ich mache mir auch nochmal ein paar Gedanken dazu und wünsche erstmal eine gute Nacht.
Hab die .exe, Installer brauch ich nicht.
Danke
Entschuldigt das ich herein platze. Aber wäre ein Lösungsansatz nicht der, es möglich zu machen gleichzeitig 2 verschiedene Hybrid Versionen installieren zu können, die man parallel nutzen kann? Aus meiner naiven Sicht wäre Augur89 ja damit schon geholfen.... Bin wieder weg
QuoteEntschuldigt das ich herein platze. Aber wäre ein Lösungsansatz nicht der, es möglich zu machen gleichzeitig 2 verschiedene Hybrid Versionen installieren zu können, die man parallel nutzen kann? Aus meiner naiven Sicht wäre Augur89 ja damit schon geholfen.... Bin wieder weg
Hatte es eigentlich so verstanden, dass Augur89 schon mehrere Hybrid Versionen verwendet,..
Man kann ohne Probleme mehrere Hybrid Versionen haben man muss nur damit sie nicht kollidieren über die misc.ini die settings Pfade so setzen, dass sie sich nicht überschneiden, oder halt portable Versionen erstellen und nutzen.
@Augur89:
Wenn ich:
erst:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "G:\TestClips&Co\test.avi" -map 0:0 -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p16le -strict -1 -vsync 0 -f yuv4mpegpipe - | 16bit-x265 --pmode --pme --input - --input-depth 16 --y4m --no-high-tier --no-open-gop --pass 1 --bitrate 1500 --psy-rd 1.00 --no-rdoq-level --no-psy-rdoq --aq-strength 1.00 --cu-lossless --range full --colormatrix bt470bg --stats "C:\Users\Selur\AppData\Local\Temp\test_2021-07-24@14_01_49_2610_01.stats" --output NUL
läuft das ohne Probleme durch:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "G:\TestClips&Co\test.avi" -map 0:0 -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p16le -strict -1 -vsync 0 -f yuv4mpegpipe - | 16bit-x265 --pmode --pme --input - --input-depth 16 --y4m --no-high-tier --no-open-gop --pass 1 --bitrate 1500 --psy-rd 1.00 --no-rdoq-level --no-psy-rdoq --aq-strength 1.00 --cu-lossless --range full --colormatrix bt470bg --stats "C:\Users\Selur\AppData\Local\Temp\test_2021-07-24@14_01_49_2610_01.stats" --output NUL
y4m [info]: 640x352 fps 25/1 i420p16 sar 1:1 unknown frame count
raw [info]: output file: NUL
x265 [info]: HEVC encoder version 1.6+360-bca33880585a
x265 [info]: build info [Windows][GCC 4.9.2][64 bit] 16bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
x265 [warning]: --cu-lossless disabled, requires --rdlevel 3 or higher
x265 [info]: Main 10 profile, Level-2.1 (Main tier)
x265 [info]: Thread pool created using 32 threads
x265 [info]: frame threads / pool features : 6 / wpp(6 rows)+pmode+pme
x265 [info]: Internal bit depth : 10
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge : dia / 57 / 2 / 1
x265 [info]: Keyframe min / max / scenecut : 25 / 250 / 40
x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb / refs: 1 / 1 / 0 / 1
x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 64 / 1
x265 [info]: Rate Control : ABR-1500 kbps
x265 [info]: tools: rd=2 psy-rd=1.00 early-skip signhide tmvp fast-intra
x265 [info]: tools: strong-intra-smoothing deblock sao stats-write
x265 [info]: frame I: 3, Avg QP:12.39 kb/s: 4015.60
x265 [info]: frame P: 119, Avg QP:9.35 kb/s: 3211.79
x265 [info]: frame B: 307, Avg QP:14.31 kb/s: 723.47
x265 [info]: global : 429, Avg QP:12.92 kb/s: 1436.72
x265 [info]: Weighted P-Frames: Y:0.8% UV:0.8%
x265 [info]: consecutive B-frames: 3.3% 0.0% 56.6% 22.1% 18.0%
encoded 429 frames in 4.69s (91.55 fps), 1436.72 kb/s
Display More
wenn ich dann:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "G:\TestClips&Co\test.avi" -map 0:0 -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p16le -strict -1 -vsync 0 -f yuv4mpegpipe - | 16bit-x265 --pmode --pme --input - --input-depth 16 --y4m --no-high-tier --no-open-gop --pass 2 --bitrate 1500 --psy-rd 1.00 --no-rdoq-level --no-psy-rdoq --aq-strength 1.00 --cu-lossless --range full --colormatrix bt470bg --stats "C:\Users\Selur\AppData\Local\Temp\test_2021-07-24@14_01_49_2610_01.stats" --output "C:\Users\Selur\AppData\Local\Temp\2021-07-24@14_01_49_2610_02.265"
aufrufe kriege ich abe rimmer:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "G:\TestClips&Co\test.avi" -map 0:0 -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p16le -strict -1 -vsync 0 -f yuv4mpegpipe - | 16bit-x265 --pmode --pme --input - --input-depth 16 --y4m --no-high-tier --no-open-gop --pass 2 --bitrate 1500 --psy-rd 1.00 --no-rdoq-level --no-psy-rdoq --aq-strength 1.00 --cu-lossless --range full --colormatrix bt470bg --stats "C:\Users\Selur\AppData\Local\Temp\test_2021-07-24@14_01_49_2610_01.stats" --output "C:\Users\Selur\AppData\Local\Temp\2021-07-24@14_01_49_2610_02.265
y4m [info]: 640x352 fps 25/1 i420p16 sar 1:1 unknown frame count
raw [info]: output file: C:\Users\Selur\AppData\Local\Temp\2021-07-24@14_01_49_2610_02.265
x265 [info]: HEVC encoder version 1.6+360-bca33880585a
x265 [info]: build info [Windows][GCC 4.9.2][64 bit] 16bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
x265 [info]: Main 10 profile, Level-2.1 (Main tier)
x265 [info]: Thread pool created using 32 threads
x265 [info]: frame threads / pool features : 6 / wpp(6 rows)+pmode+pme
x265 [error]: statistics are damaged at line 424, parser out=1
x265 [error]: failed to open encoder
Display More
1pass encoding scheint ohne Probleme zu gehen.
Hast Du zufällig ne Idee wo das Problem sein könnte?
Dachte erst es liegt eventuell am Temp-Pfad aber den ändern bringt auch nix.
hilft alles nicht.
Okay, scheint zu gehen wenn ich frame threads explizit auf 1 setze. (--frame-threads 1)
Okay, --frame-threads 2&3 geht auch --frame-threads 4 geht nicht.
"--frame-threads 2 --pools 16,16" geht auch.
-> merkwürdig
Cu Selur
Sauber, da hast du dir für nächste Woche eine Belohnung für verdient, sehr schön gemacht Selur, vielen Dank! Das ist echt super praktisch nun.
Nur mal so am Rande: Wie große ist den eurer Ansicht der Unterschied zwischen "Main 4:2:2 12bit" oder "Main 4:4:4 12bit" das letzte Mal (schon einiges her) als ich getestet hatte war der Unterschied < 1% bei meinen Tests und da hat man zumindest bei neueren GPUs decoding support.
Cu Selur
würde ich ähnlich einschätzen
Main 444 finde ich extrem schlecht, Farben, Nebel, Wasser etc. sind farblich deutlich verfälscht in Serien und Filmen und nicht mehr natürlich.
Es gibt bestimmt Szenarien wo das verwendet wird, diese erkenne ich aber nicht. Dazu kenne ich mich nicht gut genau aus, was das angeht.
Main 422 habe ich nicht getestet, aber ich vermute mal, das es ein ähnliches Ergebnis produziert.
Hört sich an als ob:
a. da was mit dem Encoding nicht simmt
oder
b. es Probleme beim Dekodieren
gibt. Farbunterschiede sollte da keine sein, eventuell luma range (pc vs tv) oder color matrix Problem.
Quote from SelurHört sich an als ob:
a. da was mit dem Encoding nicht simmt
oder
b. es Probleme beim Dekodieren
gibt. Farbunterschiede sollte da keine sein, eventuell luma range (pc vs tv) oder color matrix Problem.
War aber im Hybrid 2015, ich kann es ja später nochmal im neuen probieren, hab momentan aber noch viele Jobs, vielleicht zum Wochenende, ja war ja bei 2015 so das es diesen Color Range Bug gab, den ich des öfteren mal beobachtet habe, wohlmöglich liegt es daran. Ich teste das bei Gelegenheit nochmal.
Don’t have an account yet? Register yourself now and be a part of our community!