Grafikkarten und Konvertierung?
Noch ne Frage - da steh ich im Moment auf dem Schlauch:
Ausgangs-Situation: auf dem Rechner liegen irgendwelche älteren Video-Dateien aus diversen Quellen, aber in alten Formaten.
Ziel: alles einheitlich z.B. in MP4 umzuwandeln, weil: aktueller, platzsparender usw.. Im neuen Format kommt alles auf das NAS.
Frage:
Wird bei der Konvertierung die eingebaute Grafikkarte (mit deren Prozessoren) verwendet (wäre evtl. sinnvoll, weil die das wahrscheinlich besser / schneller können) oder wird da alles über den / die CPU / Prozessoren abgewickelt?
Frage weil: würde mich interessieren, außerdem könnte man evtl. durch veränderte Grafik-Hardware die Umwandlungs-Geschwindigkeit erhöhen.
Da geht es ja auch drum, ob man das effizient in VMs mit virtuellen Grafikkarten machen kann (bzw. ob das sinnvoll ist).
Weiß das jemand?
3 Antworten
Grafikkarten und Video-Konvertierung: CPU vs. GPU
Bei der Video-Konvertierung (Transkodierung) kann entweder die CPU (Prozessor) oder die GPU (Grafikkarte) verwendet werden, je nachdem, welche Software und welche Einstellungen du verwendest. Hier ist der Unterschied:
1. CPU-basierte Video-Konvertierung:
- Vorteil: Bessere Bildqualität, da die CPU komplexere Codec-Einstellungen verarbeiten kann (z. B. bessere B-Frame-Unterstützung, komplexe Filter).
- Nachteil: Deutlich langsamer, vor allem bei großen Dateien oder 4K-Videos.
- Geeignet für: Qualitativ hochwertige Videos, bei denen die Dateigröße und Qualität wichtiger sind als die Geschwindigkeit.
- Beispiele: Software wie HandBrake (ohne Hardwarebeschleunigung), Adobe Media Encoder (mit CPU-Render).
2. GPU-basierte Video-Konvertierung (Hardwarebeschleunigung):
- Vorteil: Deutlich schneller, da spezialisierte Hardware-Einheiten auf der Grafikkarte (NVENC bei NVIDIA, VCE bei AMD, Quick Sync bei Intel) genutzt werden.
- Nachteil: Leicht schlechtere Bildqualität als die CPU (je nach Codec-Einstellungen).
- Geeignet für: Schnelle Umwandlung großer Videobibliotheken, Streaming-Videos oder Szenarien, bei denen die Geschwindigkeit wichtiger ist als die absolute Qualität.
- Beispiele: Software wie HandBrake (mit NVENC, QSV), FFmpeg (mit Hardwarebeschleunigung), Adobe Media Encoder (mit GPU-Render).
3. Welches Format für die GPU-Konvertierung?
- MP4 (H.264 oder H.265 / HEVC): Am besten für Hardwarebeschleunigung geeignet.
- AV1 (neuer Codec): Unterstützt auf modernen NVIDIA RTX 40xx, AMD RX 6000/7000 und Intel ARC Grafikkarten.
4. Wie du die GPU für Video-Konvertierung aktivierst:
- HandBrake:
- Gehe zu „Video“ und wähle als Encoder „H.264 (NVIDIA NVENC)“ oder „H.265 (NVIDIA NVENC)“.
- Bei Intel-CPUs mit integrierter GPU: „H.264 (Intel QSV)“ oder „H.265 (Intel QSV)“.
- FFmpeg:
- Verwende den Befehl:
ffmpeg -hwaccel nvdec -i input.mp4 -c:v h264_nvenc output.mp4
- Für AMD: -c:v h264_amf oder -c:v hevc_amf.
- Adobe Media Encoder:
- Gehe zu „Einstellungen“ → „Hardware-Beschleunigung“ und aktiviere „GPU-Beschleunigung (CUDA, Metal, OpenCL)“.
5. VMs und virtuelle Grafikkarten:
- In einer virtuellen Maschine (VM) ist die GPU-Nutzung eingeschränkt, es sei denn, du verwendest eine GPU-Passthrough-Lösung (z. B. mit Proxmox, VMware oder Hyper-V).
- Bei GPU-Passthrough erhält die VM direkten Zugriff auf die GPU, was zu nahezu nativer Leistung führt.
- Virtuelle Grafikkarten (vGPU) sind weniger leistungsfähig und unterstützen oft keine Hardware-Beschleunigung für Video-Konvertierung.
6. Optimierungsvorschläge:
- Wenn du große Mengen an Videos konvertieren möchtest, investiere in eine leistungsstarke GPU (z. B. NVIDIA RTX 30xx oder 40xx mit NVENC).
- Verwende Software wie HandBrake oder FFmpeg, die Hardwarebeschleunigung unterstützen.
- Für VMs: Setze auf GPU-Passthrough für beste Performance.
Wird bei der Konvertierung die eingebaute Grafikkarte (mit deren Prozessoren) verwendet
Wenn sie Grafikkarte einen entsprechenden Hardware Encoder besitzt und dein gewünschtes Programm das unterstützt, dann wird der Encoder dafür verwendet.
Ansonsten geht das ganze über den Software Encoder, also die CPU muss rechnen.
Frage weil: würde mich interessieren, außerdem könnte man evtl. durch veränderte Grafik-Hardware die Umwandlungs-Geschwindigkeit erhöhen.
Nö, sofern die Grafikkarte einen entsprechenden Hardware Encoder hat, spielt es keine Rolle wie viel Leistung die Karte hat.
Hardware Encoder sind kleine Zusatzprozessoren die nur dafür da sind Video zu codieren. Das können die wahnsinnig schnell und unabhängig vom Rest der Grafikkarte.
mit virtuellen Grafikkarten
Die haben keine Hardware Encoder.
An physischen Grafikkarten ist zb die Intel Arc A310 zu empfehlen.
Die ist billig und kann AV1 Codieren.
AV1 ist ein sehr effizienter Codec der gute Qualität mit winzigen Dateigrößen ermöglicht.
Als erstes brauchst du natürlich ein entsprechendes Programm.
Im Programm selbst kannst du eine Menge einstellen, auch was die Quali des Videos angeht.
Sofern du eine AMD Karte hast, wird die Berechnung von der CPU gesteuert und dauert daher sehr lange.
Nvidia nimmt dazu seine Rechenkerne und ist dadurch VIEL Schneller.
Sofern du eine AMD Karte hast, wird die Berechnung von der CPU gesteuert
Bullshit!