This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

[BUG] NVEnc Features werden trotz gpu support nicht unterstützt
#21
Okay, das Problem ist:
MediaInfo berichtet:
Mastering display color primaries        : BT.709
Aber Hybrid (und ich) hat keine Ahnung wie dies interpretiert werden soll.

Normalerweise steht da sowas wie:
Mastering display color primaries        : R: x=0.680000 y=0.320000, G: x=0.265000 y=0.690000, B: x=0.150000 y=0.060000, White point: x=0.312700 y=0.329000
oder "Display P3"/"DCI P3"/"BT.2020"
if (line == QString("Display P3")) {
    line = QString("R(x=0.680, y=0.320), G(x=0.265, y=0.690), B(x=0.150, y=0.060), White point(x=0.3127, y=0.3290)"); // DCI-P3 D65
  } else if (line == QString("DCI P3")) {
    line = QString("R(x=0.680, y=0.320), G(x=0.265, y=0.690), B(x=0.150, y=0.060), White point(x=0.314, y=0.3510)"); // DCI-P3 Theater
  } else if (line == QString("BT.2020")) {
    line = QString("R(x=0.708, y=0.292), G(x=0.170, y=0.797), B(x=0.131, y=0.046), White point(x=0.3127, y=0.3290)"); // Rec. ITU-R BT.2020-2
  }
Keine Ahnung, was BT.709 bei HDR Material interpretiert werden soll.

Hab mal bei Doom9 gepostet: https://forum.doom9.org/showthread.php?p...ost1979905

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#22
Klingt logisch Blush 
Hatte das nur auf cq umgestellt um mit Staxrip vergleichen zu können, da das kein vbrhq modus unterstützt, was imho ja das Äquivalent zum CRF bei h.264 ist.
Eigentlich will ich vbrhq nutzen, da geht's ja dann.
multiple refs werden wie erwähnt auch eigeblendet, obwohl die Karte sie anscheinend nicht unterstützt.
Reply
#23
Ne MultiRefs wurde einfach die GUI nicht angepasst.

xxxhq modes gibt nicht mehr in NVEncC, was Du willst ist 'constant quality', nicht 'constant quantizer'.
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#24
habs
Rec.709: --master-display G(15000,30000)B(7500,3000)R(32000,16500)WP(15635,16450)L(10000000,1) --max-cll 1000,1
RGB: G(x=0.30, y=0.60), B(x=0.150, y=0.060), R(x=0.640, y=0.330), WP(x=0.3127,y=0.329), L(max=1000, min=0.0000)
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#25
(18.12.2022, 21:13). Selur Wrote: Ne MultiRefs wurde einfach die GUI nicht angepasst.

xxxhq modes gibt nicht mehr in NVEncC, was Du willst ist 'constant quality', nicht 'constant quantizer'.

ja, das meine ich, constant quality. Heist tatsächlich einfach --vbr 0 und nicht --vbrhq. Weiß auch nicht mehr, wo ich das gelesen hab.
Staxrip unterstützt das jedenfalls nicht. Keine Ahnung warum da nur cq angeboten wird. Ziemlicher Blödsinn, wer braucht das schon. Constant quality ist imho der sinnvollste Modus und der fehlt.
Und u.U. auf Kosten der Qualität auf eine bestimmte Bitrate hin zu encoden finde ich heutzutage ebenfalls unsinnig. Wird ja nicht mehr auf CD/DVD gebrannt...
Reply
#26
Hab Dir nen Link zu ner neuen Dev Version zum Testen geschickt.

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#27
Sieht so aus als ob jetzt alle Unstimmigkeiten bei NVEnc beseitigt sind. Aucht die BT 709 Fehlermeldung taucht nicht mehr auf.

HEVC Encoding ohne b-frames ist allerdings einigermaßen witzlos. Da kommt man bei der Kompression voll in die Regionen von GPU basiertem AVC encoding mit b-frames. Einziger Vorteil ist dann, dass man 10 bit nutzen kann. Dafür ist HEVC encoding aber auch langsamer.
Der Volta Chip ist und bleibt in der Hinsicht imho eine ziemliche Mogelpackung... HEVC war ja schon 5 Jahre aufm Markt, als der entwickelt wurde. Warum man da so halbe Sachen gemacht hat erklärt sich mir irgendwie naheliegenderweise mit dem Wunsch nach Umsatzsteigerung in den Folgejahren.

Wird wohl über kurz oder lang auf eine GTX 1660 Ti oder so rauslaufen, auch wenn die mit 120W eine deutlich höhere TDP als geplant haben.
Oder ein gebrauchtes RTX A2000 Stromsparwunder mit 70W - kostet aktuell ca. 70€ mehr, das wären also bei der absehbaren Kostenentwicklung etwa 140 KWh - oder 2800 h bzw. 117 Tage Encoding mit 50W weniger Verbrauch Rolleyes Wird wohl betriebswirtschaftlich nicht ganz aufgehen, aber es geht ja auch bisschen ums Prinzip Angel
Meine Sorge ist da nur ob die überhaupt noch 117 Tage Encoding schafft, weil sie möglicherweise wegen dieses ganzen Mining Hypes zernudelt wurde.

Du hattest ja glaube ich schon jede Menge Karten in Nutzung. Weißt du wie es um die Lautstärke dieses Nvidia Standard Lüfter Designs bestellt ist? Ist das unter Last ne Turbine, die fürs Rechenzentrum designed ist?
https://www.ebay.de/itm/364078825328?has...R5jCncelYQ
Reply
#28
Sorry, keine Ahnung, hab immer nur Karten mit mehr Lüftern, die ich teilweise durch einen Wasserkühler ersetzt habe. Smile
Mit einem Lüfter hatte ich keine Karten. Smile

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#29
So, neue (gebrauchte) RTX A2000 70W Stromsparwunder Karte ist da Smile
Hab mich gleich nochmal über NVEncC gebückt, und drei Dinge sind mir aufgefallen, "clear all cached tool infos" habe ich zuvor durchgeführt:

1.)  --ref ist bei mir bei h265 auf 7 begrenzt (im Gegensatz zu h264, da sind max 16 möglich), ich kann aber keine Einschränkung bei --check-features feststellen. "Max LTR Frames" (laut --check-features auf 7 begrenz) ist jedenfalls ein anderer Wert. Long Term Reference Frames sind wohl nur für Streaming relevant und stellen Referenzen dar, wenn im Stream Frames ausfallen.
Ausgabe --check-features:
#0: NVIDIA RTX A2000 (3328 cores, 1200 MHz)[PCIe2x16][527.27]
NVEnc features
Codec: H.264/AVC
Encoder Engines           1
Max Bframes               4
B Ref Mode                3 (each + only middle)
RC Modes                  63 (CQP, CBR, CBRHQ, VBR, VBRHQ)
Field Encoding            0 (no)
MonoChrome                no
FMO                       no
Quater-Pel MV             yes
B Direct Mode             yes
CABAC                     yes
Adaptive Transform        yes
Max Temporal Layers       4
Hierarchial P Frames      yes
Hierarchial B Frames      yes
Max Level                 62 (6.2)
Min Level                 10 (1)
4:4:4                     yes
Min Width                 145
Max Width                 4096
Min Height                49
Max Height                4096
Multiple Refs             yes
Max LTR Frames            8
Dynamic Resolution Change yes
Dynamic Bitrate Change    yes
Forced constant QP        yes
Dynamic RC Mode Change    no
Subframe Readback         yes
Constrained Encoding      yes
Intra Refresh             yes
Custom VBV Bufsize        yes
Dynamic Slice Mode        yes
Ref Pic Invalidiation     yes
PreProcess                no
Async Encoding            yes
Max MBs                   65536
Lossless                  yes
SAO                       no
Me Only Mode              1 (I,P frames)
Lookahead                 yes
AQ (temporal)             yes
Weighted Prediction       yes
10bit depth               no

Codec: H.265/HEVC
Encoder Engines           1
Max Bframes               5
B Ref Mode                3 (each + only middle)
RC Modes                  63 (CQP, CBR, CBRHQ, VBR, VBRHQ)
Field Encoding            0 (no)
MonoChrome                no
Quater-Pel MV             yes
B Direct Mode             no
Max Temporal Layers       0
Hierarchial P Frames      no
Hierarchial B Frames      no
Max Level                 186 (6.2)
Min Level                 30 (1)
4:4:4                     yes
Min Width                 129
Max Width                 8192
Min Height                33
Max Height                8192
Multiple Refs             yes
Max LTR Frames            7
Dynamic Resolution Change yes
Dynamic Bitrate Change    yes
Forced constant QP        yes
Dynamic RC Mode Change    no
Subframe Readback         yes
Constrained Encoding      yes
Intra Refresh             yes
Custom VBV Bufsize        yes
Dynamic Slice Mode        yes
Ref Pic Invalidiation     yes
PreProcess                no
Async Encoding            yes
Max MBs                   262144
Lossless                  yes
SAO                       yes
Me Only Mode              1 (I,P frames)
Lookahead                 yes
AQ (temporal)             yes
Weighted Prediction       yes
10bit depth               yes


NVDec features
  H.264/AVC:  nv12, yv12
  H.265/HEVC: nv12, yv12, yv12(10bit), yv12(12bit), yuv444, yuv444(10bit), yuv444(12bit)
  MPEG1:      nv12, yv12
  MPEG2:      nv12, yv12
  MPEG4:      nv12, yv12
  VP8:        nv12, yv12
  VP9:        nv12, yv12, yv12(10bit), yv12(12bit)
  VC-1:       nv12, yv12
  AV1:        nv12, yv12, yv12(10bit)

2.) In der Nvidia Video codec SDK documentation wird im letzten Punkt erwähnt, dass beim use case Recording/Archiving empfohlen wird --vbv-bufsize auf einen sehr hohen Wert von 4 Sekunden einzustellen (ich verstehe das so, dass das dann bei einem ~10Mbit/s encode ein Wert von 40000 wäre). Hybrid verwendet aber immer "auto" bzw. definiert den Wert nicht, wodurch laut report file auto gesetzt wird. Wäre also gut, wenn man diesen Wert individuell einstellen könnte. Ein Tooltip Hinweis wäre ebenfalls eine gute Sache, damit der user begreift, dass das anscheinend ein relevanter Wert ist, und wie man diesen einstellen sollte.
https://docs.nvidia.com/video-technologi...c-settings

3.)  Kein Fehler, aber wäre vielleicht eine gute Ergänzung: --nonrefp ist anscheinend ebenfalls nur ein Streaming "low latency" feature, was möglicherweise bei normaler Verwendung nur sinnlos die Bitrate erhöht bzw. die Qualität mindert, da bestimmte P-Frames nicht als Referenzen dienen. Da wäre ein entsprechender Tooltip Hinweis ebenfalls eine gute Sache. Denke es gibt bis jetzt nur wenige User die großartig Ahnung von NVEncC haben und dankbar für entsprechende Hinweise sind. Ein Hauptverwendungszweck davon ist nunmal auch Streaming, aber für normale Zwecke scheinen bestimmte Features besser nicht verwendet zu werden. Oft verfährt man ja nach dem Motto "alles an, kost ja nix", wenn man sich nicht groß auskennt Wink

cu, mogobime
Reply
#30
Quote:1.)  --ref ist bei mir bei h265 auf 7 begrenzt (im Gegensatz zu h264, da sind max 16 möglich), ich kann aber keine Einschränkung bei --check-features feststellen
H.265 erlaubt nicht mehr Referenzen. Smile

Quote:... Wäre also gut, wenn man diesen Wert individuell einstellen könnte. Ein Tooltip Hinweis wäre ebenfalls eine gute Sache, damit der user begreift, dass das anscheinend ein relevanter Wert ist, und wie man diesen einstellen sollte.
Die max. VBV Werte müssen dann durch die Level, Profile&Co Auswahl beschränkt werden.
Ist also etwas umständlicher.
Zu klären wäre auch:
  • Das letzte Mal als ich die Dokumentation gelesen hatte stand da auch öfters mal, dass sie nicht sicher VBV konform sind, was VBV etwas unsinnig macht. Ist dies immer noch der Fall?
  • Wenn Profile, Level (Tier) gesetzt sind, schränkt der Encoder die VBV Werte korrekt ein?
  • Quote:Hybrid verwendet aber immer "auto" bzw. definiert den Wert nicht, wodurch laut report file auto gesetzt wird
    Wie sind die vbv Werte bei 'auto' eingeschränkt? (sollten sie nicht auf die Profile/Level/Tier Maxima gestellt sein?)
    Bzgl. der 4 Sekunden Empfehlung: Macht es nicht mehr Sinn da den maximal erlaubten Wert zu nehmen?
  • Wie reagiert der Encoder, wenn man nicht legale Werte verwendet?
Da ich damals keine brauchbare Dokumentation gefunden hatte, hab ich keine Konfigurationsmöglichkeiten dafür gesetzt.

Wenn rigaya, eine Möglichkeit findet, die genutzten VBV Grenzen beim Starten mit auszugeben, könnte man testen.
Aktuell müsste man im SDK und im NVEncC Sourcecode suchen, was ich nicht machen werde.
-> Wenn Du mehr Details zu wie NVEnc VBV handelt geben kannst, kann ich schauen wie man das sinnig in Hybrid implementiert. Blind da Optionen einfügen, die eventuell den Encoder zum Absturz bringen oder nicht legales Material erstellen, erscheint mir nicht sinnig.

Quote:3.) Kein Fehler, aber wäre vielleicht eine gute Ergänzung: --nonrefp ist anscheinend
Non-reference P frames sind ja in erster Linie dafür da, um bei Fehlern im Stream/File möglichst schnell wieder erholen zu können.
Was für mich auch bei der Archivierung Sinn machen würde.
-> Werde Folgendes als Tool-Tip dran packen:
Quote:Automatically add non-reference P-frames:

Non-reference P frame coding is used to enhance coding efficiency in low-delay encoding configuration of Internet Video Coding (IVC).
Non-reference P frame coding applies a non-reference P frame with a fixed coding structure based on the magnitude of motion vectors (MVs), however, which unexpectedly degrades the coding efficiency for some sequences. These features are useful for error recovery during transmission across noisy mediums. 
So unless you plan to stream the output, you probably don't want to enable this.

Quote:So, neue (gebrauchte) RTX A2000 70W Stromsparwunder Karte ist da
B-Frames. Hurra!

Quote:Oft verfährt man ja nach dem Motto "alles an, kost ja nix", wenn man sich nicht groß auskennt
Rolleyes

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)