Fragen zum Videoencoding mit NVenc

Ihr wolltet ein Hardwareforum. Und wir so: "Neeee, braucht es nicht". Und ihr so: "Dooooooch". Und wir so: "Ach, komm!". Und ihr so: "Hier sind 12 Threads! Und jetzt?". Und wir so: "Ist ja gut..."
Forumsregeln
Datenschutzerklärung: https://www.gamespodcast.de/datenschutzerklaerung/
Impressum: https://www.gamespodcast.de/impressum/

Forenregeln und zukünftige Weltverfassung
ART 1: Behandle andere Nutzer mit Respekt.
ART 2: Do NOT piss off the Podcasters

Lies bitte weitere Hinweise hier: viewtopic.php?f=4&t=2789
Antworten
Variola
Beiträge: 81
Registriert: 20. Dez 2020, 12:22

Fragen zum Videoencoding mit NVenc

Beitrag von Variola »

Einen wunderschönen guten Tag!

Da ich aktuell vor der Mammutaufgabe stehe ca. 3000h Videomaterial (Ausgangsformat Video-DVD) zu transcodieren hätte ich ein paar Fragen zu NVenc.

Zum vorhandenen System und verfügbarer Zusatzhardware:
- AMD Ryzen 9 5950X
- 32 GB RAM (DDR4 3200 CL16)
- NVidia GeForce RTX 3080; zusätzlich stehen zur Verfügung eine 2080 Super und eine 1060 6GB.
- Quelllaufwerk ist eine Corsair MP500 (ca. 3500MB/s Sequential Read); Ziellaufwerk ist ein RAID0 aus 3 1TB SATA SSDs (Sequential Write ca. 1200 MB/s)
- Als Programm soll Handbrake zum Einsatz kommen, ggfs. in mehreren virtuellen Systemen.

Jetzt zu den Fragen:
- Welchen Codec würdet ihr verwenden und warum? AV1 oder HEVC/h.265?
- Würdet ihr NVenc überhaupt dafür verwenden oder ist Encoding auf der CPU die bessere Wahl?
- Lohnt es sich, eine zweite GPU in den Rechner zu packen um zwei Streams parallel encodieren zu können? Falls ja: die 2080 oder macht es keinen Unterschied zur 1060?
- Lohnt sich ein RAM-Upgrade auf 64 GB?
- Kann ich ohne Virtualisierung überhaupt zwei verschiedene GPUs für zwei parallele Streams nutzen oder muss ich dazu virtualisieren?

Vielen Dank im Voraus!
Benutzeravatar
DickHorner
Beiträge: 958
Registriert: 30. Aug 2018, 10:26

Re: Fragen zum Videoencoding mit NVenc

Beitrag von DickHorner »

Willst Du das nicht lieber einen Service machen lassen? Stichwort Cloud Video Encoding
Variola
Beiträge: 81
Registriert: 20. Dez 2020, 12:22

Re: Fragen zum Videoencoding mit NVenc

Beitrag von Variola »

Das Material durch die Internetleitung zu quetschen (nur 50MBit Upload) dürfte insgesamt länger dauern, als es auf dem Gerät zu encodieren fürchte ich.
Zumal ich ja trotzdem die Arbeitszeit habe die DVDs einzulesen, das kann ja parallel mit dem Encoding laufen. Und den Preis für einen Komplettservice sehe ich nicht ganz ein, wenn ich Hardware zuhause habe die das durchaus kann. Die Frage für mich ist hauptsächlich ob es möglich ist und sich lohnt die 2080/1060 und die 3080 parallel arbeiten zu lassen.

Edit: Ich hab grad mal geschaut was die dafür verlangen, bei der Menge an Video ist mir da selbst das Cloud Encoding zu teuer.
Benutzeravatar
Boris
Beiträge: 406
Registriert: 30. Jan 2017, 20:54

Re: Fragen zum Videoencoding mit NVenc

Beitrag von Boris »

Ob das mit den Karten geht kann ich dir nicht sagen. Und auch generell nur ohne Gewährleistung. Aber nvenc scheint auch mit mehreren Karten zu gehen, gleiches sollte fuer CUDA-basierte Encoder gelten. Man kann wohl auswaehlen welche GPU verwendet werden soll.

https://stackoverflow.com/questions/419 ... mpeg-3-2-0

Habe Handbrake seit vielen Jahren nicht mehr genutzt, aber es scheint ja unter der Haube ffmpeg zu nutzen.
Guck mal ob du was zu den Parametern aus dem Link und Handbrake findest.

Was CPU vs. Grafikkarte angeht wuerde ich an deiner Stelle einfach testen wie das auf deinem System ist. Genug Material hast du ja :) Theoretisch kannst du ja auch beides machen wenn du nicht in irgendwelche andere Engpaesse laeufst.

Viel Erfolg.
Variola
Beiträge: 81
Registriert: 20. Dez 2020, 12:22

Re: Fragen zum Videoencoding mit NVenc

Beitrag von Variola »

Danke!
CPU vs. Grafikkarte ist für mich halt insofern eine schwierige Entscheidung, als es immer heißt, die GPU Encoder würden schlechtere Qualität liefern (auch wenn ich davon offen gestanden seit Turing nichts mehr gesehen habe). Die Rechenzeitersparnis über GPU Beschleunigung ist andererseits schon substanziell. Erfahrungsgemäß lastet Handbrake allerdings die CPU auch beim GPU basierten Encoding stark aus, weil der Decoder dort nur auf der CPU läuft, insofern ist paralleles Encoding glaube ich nur sinnvoll, wenn es mit 2 GPUs geht. Weißt du zufällig, ob sich die Videoengine in Ampere nochmal großartig geändert hat in Bezug auf die Qualität verglichen mit Turing?
Es muss auch nicht unbedingt Handbrake sein, kannst du stattdessen einen anderen guten Hardwarebeschleunigten Encoder empfehlen (gerne auch unter Nutzung von CUDA). Wichtig wäre mir eigentlich nur, dass er Stapelverwaltung kann. Handbrake ist halt das Programm mit dem ich mich bisher am besten auskenne, aber ich habs zugegeben noch nie mit Dual-GPU probiert. Wenn es andere Programme gibt die vergleichbar gut arbeiten nutze ich gerne auch die.
Benutzeravatar
Boris
Beiträge: 406
Registriert: 30. Jan 2017, 20:54

Re: Fragen zum Videoencoding mit NVenc

Beitrag von Boris »

Zur Qualitaet kann ich leider nichts sagen. Hatte gar nicht dran gedacht dass da der Unterschied sein koennte. Tue mich auch immer schwer Qualitaets-Vergleiche zB bei spielen nachzuvollziehen, wenn es nicht gerade drastisch ist.

Nutze persoenlich (aber meistens eher fuer audio) immer direkt ffmpeg. Das kann man natuerlich auch skripten, wenn man denn skripte schreiben kann. Wenn nicht dann ist Handbrake sicher die einfachere Loesung.
Voigt
Beiträge: 5650
Registriert: 14. Jun 2016, 14:43
Wohnort: Jena

Re: Fragen zum Videoencoding mit NVenc

Beitrag von Voigt »

Mit Nvenc hast du halt feste Encodersettings, die halt ok aber nicht perfekt sind.
Daher wenn du BluRay Qualität haben möchtest, sollte es schon Software sein, sollen es Heimvideos sein, kannst du auch locker Nvenc nehmen.
Der neue Nvenc Encoder ab den RTX Karten ist auch nochmal um einiges besser als der Frühere.
Mit Nvenc hast du halt potentiell etwas größere Datein bei gleicher Qualität als mit Softwareencode.
Variola
Beiträge: 81
Registriert: 20. Dez 2020, 12:22

Re: Fragen zum Videoencoding mit NVenc

Beitrag von Variola »

@Voigt BluRay Qualität muss es nicht sein, das Ausgangsmaterial sind nur DVDs (alte Familienfilme, größtenteils ehemals von VHS und vor 10 Jahren mal DVDs draus gemacht). Dateigröße ist auch sekundär im Vergleich zu Qualität und Rechenzeit, ich denke da macht sowieso der H.265 den größten Unterschied, AV1 lässt sich ja leider soweit ich das verstanden habe noch nicht sinnvoll hardwarebeschleunigen am PC.

@Boris Hat es irgendwelche Vorteile ffmpeg direkt zu nutzen? Das Scripten wäre nicht das Problem, ich bevorzuge nur generell das verwenden von GUIs.
Benutzeravatar
Boris
Beiträge: 406
Registriert: 30. Jan 2017, 20:54

Re: Fragen zum Videoencoding mit NVenc

Beitrag von Boris »

Variola hat geschrieben: 20. Dez 2020, 20:20 @Boris Hat es irgendwelche Vorteile ffmpeg direkt zu nutzen? Das Scripten wäre nicht das Problem, ich bevorzuge nur generell das verwenden von GUIs.
Wenn handbrake wirklich noch ffmpeg nutzt (hab das jetzt nicht tief recherchiert) dann meiner Meinung nach nur wenn du Parameter setzen willst die in Handbrake nicht gehen. Falls man da nicht eh irgendwo Parameter ergaenzen kann, daran erinner Ich mich nicht mehr.
Variola
Beiträge: 81
Registriert: 20. Dez 2020, 12:22

Re: Fragen zum Videoencoding mit NVenc

Beitrag von Variola »

Handbrake scheint noch ffmpeg zu nutzen erlaubt auch das zusätzliche Setzen manueller Parameter via Shellcommand, auch wenn ich das ehrlich gesagt noch nie verwendet habe.
Benutzeravatar
lipt00n
Beiträge: 1008
Registriert: 11. Dez 2015, 10:01
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: Fragen zum Videoencoding mit NVenc

Beitrag von lipt00n »

Mach doch eine Probe mit NVenc und eine mit CPU und vergleiche die Ergebnisse nach subjektiver Qualität, Dateigröße, Zeit (und wasauchimmer dir noch ein wichtige Kriterium ist) und entscheide dann.
Bild
lnhh
Beiträge: 2133
Registriert: 11. Jul 2016, 11:11
Wohnort: Frankfurt am Main

Re: Fragen zum Videoencoding mit NVenc

Beitrag von lnhh »

Wuerde dafuer bei /r/datahoarder fragen.
Fuck Tapatalk
Variola
Beiträge: 81
Registriert: 20. Dez 2020, 12:22

Re: Fragen zum Videoencoding mit NVenc

Beitrag von Variola »

Für die die es auch interessiert:

Ich habe jetzt mal die Probe aufs Exempel gemacht:
- Bildqualität x.h265 medium vs. NVenc slow sind subjektiv gleich, die Dateigrößen unterscheiden sich nur wenige MB bei einem zehnminütigen Sample; Verarbeitet werden ca. 250 - 300 Bilder/s (WQHD h264 zu FHD 265), limitierend ist das CPU-Decoding
- Bildqualität x.h265 slow vs NVenc slow ist minimal besser (etwas weniger Blockartefakte in annähernd gleichfarbigen Bereichen) aber nur im Standbild wirklich unterscheidbar, die Dateigröße ist bei gleichem Qualitätsfaktor ca. 5% kleiner; Verarbeitet werden ca. 50-100 Bilder pro Sekunde, limitierend ist das CPU-Encoding
- Bildqualität x.h265 slower vs. NVenc slow ist nochmal besser als bei slow (ebenfalls Reduktion der Blockartefakte) aber auch hier nur im Standbild auffällig; Dateigröße sinkt nicht mehr signifikant im Vergleich zu slow; Verarbeitet werden hier allerdings nur noch 20-30 Bilder/s teilweise sogar nur 10, limitierend auch hier das CPU-Encoding

Eine Sache die mir aufgefallen ist: keines der zum Test verwendeten Programme (Handbrake/WinxHD/Adobe Media Encoder) scheint das Decoding/Encoding gleichzeitig auf der GPU ausführen zu können. Wenn die CPU encodiert läuft das Decoding allerdings grundsätzlich über die GPU.
Ist das eine Limitierung der Software oder liegt das an der GeForce Video-Engine?
Antworten