Frage: Einstellungen Videokodierung H.264 NVENC auf GTX 970

Cool Speed

Lt. Junior Grade
Registriert
Sep. 2013
Beiträge
256
Hallo Zusammen,

ich würde gern ein 4K Video in FullHD umwandeln (weitere Daten zu Ausgangsmaterial und Ziel weiter unten).

Dies würde ich gern über meine Grafikkarte tun. Ich habe aber das Gefühl, dass die Kodierung durch irgendetwas ausgebremst wird und möchte Euch um Rat fragen.
Vielleicht habe ich falsche Einstellungen gemacht oder Ihr habt andere Tipps für mich.

Die Performance liegt bei ca. 7 bis 8 FPS über meine Grafikkarte.
Wenn ich über meine CPU konvertiere (H.264) ist die Performance ungefähr gleich.
Daher vermute ich, dass hier etwas "bremst" bzw. über die CPU berechnet wird und nicht vollständig über die GPU.
Meine Grafikkarte ist während der Konvertierung (NVENC) zu ca. 20% ausgelastet und taktet nicht auf Maximaltakt.

In einem anderen Forum habe ich bereits gelesen, dass es am Filter (Deinterlace) liegt. Diesen solle man deaktivieren. Das hatte ich von Beginn an so eingestellt. Diese Einstellung ist auszuschliessen.

Ausgangsmaterial:
Format : Matroska
Dateigröße : 21,0 GiB
Gesamte Bitrate : 25,8 Mb/s
Format : HEVC
Format-Profil : Main 10@L5@High
Bitrate : 21,1 Mb/s
Breite : 3 840 Pixel
Höhe : 1 608 Pixel
Modus der Bildwiederholungsrate : konstant
Bildwiederholungsrate : 23,976 (23976/1000) FPS
ColorSpace : YUV
ChromaSubsampling/String : 4:2:0 (Type 2)
BitDepth/String : 10 bits

Ziel:
Programm: XMedia Recode 3.3.5.8
Video
Codec: H.264 NVENC
Farbmodus YUV 4:2:0, 12 bpp
Bitratenmodus: 2-Pass VBR
Bitrate: 10000 kbps
Maximale Bitrate: 12000 kbps
Profil: High
Level: 4.1
Preset: BD (Bluray Disk)
Darstellungsmodus: Progressive
CABAC aktiviert
Audio
kopieren
Untertitel
kopieren
Filter
alle deaktiviert
Skalierung: Lanczos

Ich bin für jeden Hinweis oder eine Idee dankbar (habe schon den ganzen Nachmittag mit der Fehlersuche zugebracht).

Vielen Dank und Gruss
Cool Speed
 
dein rechner muss 4k h265 in software dekodieren bevor die graka es enkodieren kann, was ziemlich aufwändig ist. d.h. dein rechner kommt mit dem dekodieren nicht hinterher und nvenc langweilt sich.
 
Würde die oben beschriebene Konstellation mit einem Kaby Lake Prozessor schneller laufen?
Die sollen ja "hardwaremäßig" HEVC (H.265) und VP9 dekodieren/enkodieren können.
 
Ich hatte eher daran gedacht die Konvertierung über NVENC laufen zu lassen, aber auf einer Kaby Lake Plattform.
Somit sollte die Rechenleistung der Grafikkarte ja voll ausgenutzt werden, da der Prozessor das Video hardwaremäßig dekodieren und somit zur Verfügung stellen kann.
 
ich verstehe schon was du vorhast :) die frage ist, ob das programm h265 auch über die igpu dekodiert oder das immer in software macht. laut der webseite unterstützt es zwar das dekodieren in hardware mittels quicksync, aber h265 wird nicht explizit aufgezählt.
 
Wie 0x8100 sagte, dass decodieren braucht einiges wenn das nicht über die GPU funktioniert (Die 970 sollte nur einen encoder für hevc haben aber keinen decoder). Auch stellt sich die Frage wo dein XMedia die Bildskalierung und Pixelformatkonvertierung durchführt.

Und die 12 Bit pro Pixel kannst du sein lassen, das wird vermutlich ein Problem sein.

Farbmodus YUV 4:2:0, 12 bpp

Stelle das mal auf 8bit damit du wieder im BD Bereich bleibst. Wenn ich im übrigen nvenc (h264) mit 10bit füttern möchte, bricht er das mit einem Fehler ab.

Aber über was für FPS Raten sprechen wir eigentlich?

EDIT: Hast du schon mal geschaut ob ffmpeg mit quicksync hevc decoden kann? Und am Rande, Nvidia kann auch hevc decoden, zumindest die 950, 960 und die 10xx Karten.
 
Zuletzt bearbeitet:
Den Farbmodus kann ich leider nicht umstellen. Es gibt nur diese Option im Dropdown Menü. Vielleicht hängt es mit einer anderen Einstellung zusammen.

Wir reden über 7 bis 8 FPS.
 
Was hast du denn für eine CPU? Bei mir läuft das mit etwa 25 FPS auf einer 960 und einem i5-4570.

Code:
ffmpeg -y -c:v hevc_cuvid -i "jellyfish-120-mbps-4k-uhd-hevc-10bit.mkv" -c copy -pix_fmt yuv420p -c:v h264_nvenc -2pass 1 -preset:v slow -b:v 10000k -vf scale=1920:-1 "jellyfish-10-mbps-hd-h264-gpu-encode.mkv"

Ohne cuvid (Also Decoding auf der CPU) läuft es etwa halb so schnell (12-15) und die CPU ist am Limit zum decoden. Mit cuvid und ohne das scalieren auf full hd läuft es mit etwa 43 fps (Bedauerlich ist, dass ich das Pixelformat ändern muss, denn das läuft auch über die CPU und bremst alles unnötig aus).
 
Zuletzt bearbeitet:
@nille02: Meine komplette Konfiguration steht in der Signatur.

Ich habe jetzt aufgrund des Austauschs mit 0x8100 mal weiter geforscht und bin zu folgendem Ergebnis gekommen:

Es scheint tatsächlich so zu sein, dass meine Grafikkarte HEVC nicht dekodieren kann.
Siehe hierzu:
https://en.wikipedia.org/wiki/Nvidia_PureVideo

Die GTX 960 besitzt die 7. Generation PureVideo HD und kann daher H.265 in Hardware dekodieren.
Meine GTX 970 besitzt die 6. Generation PureVideo HD und kann dies nicht. Da mein Prozessor dies ebenfalls nicht unterstützt komme ich auf so geringe Werte beim enkodieren. Da zuvor über Software (CPU+GPU) dekodiert werden muss.
(Jetzt verstehe ich auch warum ich zunächst beim Abspielen von 4K HEVC Videos solche Probleme hatte und alle möglichen Player durchforsten musste.)

Ich fühle mich nun etwas verschaukelt. Man besitzt eine größere Grafikkarte einer Generation, welche mehr kostet (zugegeben, auch mehr Spieleleistung) aber nicht alle Features besitzt, wie eine kleinere Grafikkarte der selben Generation.

Für mich ist dieses Thema somit geklärt.
Vielen Dank an alle, die sich beteiligt haben.
 
Zurück
Oben