The following warnings occurred:
Warning [2] Undefined property: MyLanguage::$archive_pages - Line: 2 - File: printthread.php(287) : eval()'d code PHP 8.3.12-nmm1 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/printthread.php(287) : eval()'d code 2 errorHandler->error_callback
/printthread.php 287 eval
/printthread.php 117 printthread_multipage



Selur's Little Message Board
[BUG] NVEnc Features werden trotz gpu support nicht unterstützt - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html)
+--- Forum: Probleme und Fragen (https://forum.selur.net/forum-4.html)
+--- Thread: [BUG] NVEnc Features werden trotz gpu support nicht unterstützt (/thread-2986.html)

Pages: 1 2 3 4 5


RE: NVEnc Features werden trotz gpu support nicht unterstützt - Selur - 18.12.2022

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=1979905#post1979905

Cu Selur


RE: NVEnc Features werden trotz gpu support nicht unterstützt - mogobime - 18.12.2022

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.


RE: NVEnc Features werden trotz gpu support nicht unterstützt - Selur - 18.12.2022

Ne MultiRefs wurde einfach die GUI nicht angepasst.

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


RE: NVEnc Features werden trotz gpu support nicht unterstützt - Selur - 18.12.2022

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)


RE: NVEnc Features werden trotz gpu support nicht unterstützt - mogobime - 18.12.2022

(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...


RE: NVEnc Features werden trotz gpu support nicht unterstützt - Selur - 18.12.2022

Hab Dir nen Link zu ner neuen Dev Version zum Testen geschickt.

Cu Selur


RE: NVEnc Features werden trotz gpu support nicht unterstützt - mogobime - 20.12.2022

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?hash=item54c4c9ff70:g:DQgAAOSwcgxje5EN&amdata=enc%3AAQAHAAAAoCrnAdhJs34%2FH8PvmYgIfzky7iu%2F6Fp9PbmTFA%2BiocdaQQWeJYA4qG70KoMAHlJjL5Kdzjg8In2EWvFzVNJbUtAYN8fQxdjAwVjtATYz5%2BxVgXwDCgunTvXxTeUFDgU0C2fTSBfvbe%2BgS%2BxgaIhvsoCQzRZ9V%2FEFDAFcywMOXUF0ZAK7pS0CFGqjg6yxNUU9W8THq4Ean%2BB2bDLaqRufZ7U%3D%7Ctkp%3ABk9SR5jCncelYQ


RE: NVEnc Features werden trotz gpu support nicht unterstützt - Selur - 20.12.2022

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


RE: NVEnc Features werden trotz gpu support nicht unterstützt - mogobime - 31.12.2022

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-technologies/video-codec-sdk/nvenc-video-encoder-api-prog-guide/#recommended-nvenc-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


RE: NVEnc Features werden trotz gpu support nicht unterstützt - Selur - 31.12.2022

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