Interview with K-Gaming about the AMD Encoder Plugin (German/Deutsch)

Hey guys,

I recently answered questions from a Let’s Player that wanted to interview me about the Plugin and AMF. Fortunately for me it was in german, unfortunately for you it still is in german and I’m not going to translate it for you. Google Translate to the rescue.

Here it is, in it’s full unedited german glory.

Es folgt das Interview mit K-Gaming über das AMF Kodierer Plugin für OBS Studio:

K-Gaming: Wie arbeitet AMF? Wo setzt es ein? Welche Aufgabe übernimmt AMF? Ich habe ein Post aus dem Forum was sehr gut das zusammen fast was wohl auch für interessierte Leute unklar ist.

Michael: AMF ist der Teil des AMD Treibers der es Software erlaubt mit der AMD Hardware zu kommunizieren und somit die features auf dieser Hardware zu verwenden – derzeit wären dies also kodieren und dekodieren in den Codecs H264 (AVC, SVC) und H265 (HEVC).

Zitat: “Sofern AMD auch eine API haben sollte, die vor DirectX abgreifen kann, und sofern AMD im Gegensatz zu Nvidia diese API nicht sperrt für Drittsoftware, dann wäre es für Drittsoftware tatsächlich möglich das Hooking wegzulassen. Klar.”

Michael: So eine API gibt es nicht wirklich bei AMD da es technisch sehr wahrscheinlich unmöglich ist etwas vor DirectX abzugreifen. Es ist entweder bereits im AMD Treiber (da dieser ja überhaupt DirectX möglich macht) oder noch in der Applikation selbst. Zusätzlich dazu muss dennoch der Frame gerendert werden von der GPU, danach kann dieser dann kopiert werden – auf einer AMD GPU kostet das fast nichts sofern genügend VRAM vorhanden ist. Somit wäre der Gewinn fast gleich null und komplett sinnlos.

Zitat: “Das du – selbst wenn noch gehookt werden sollte – trotzdem weniger FPS Verlust verspürst ist aber klar. Die Codierung von OBS zieht halt recht viel, da du da ja die schnellen VfW Codecs nicht nutzen kannst und somit muss die CPU dann ja nicht mehr encodieren, sofern AMD eben so’nen Hardware Encoder haben sollte.”

Michael: Zu diesem muss ich sagen das weder VfW (Video for Windows) noch MFT (Media Foundation Transform) schnell sind, es sind lediglich zentrale Wege Kodierer zu verwenden die diese APIs unterstützen. AMD hat mal einen Angeboten und es wäre technisch gesehen möglich diesen selbst wieder zu schreiben – dies hatte sogar jemand mal getan, aber es wurde leider nicht weitergeführt bis jetzt.

K-Gaming: Ich selber habe eine 390x (VCE 2.0) und bin schnell an die Grenze von der Hardware gekommen, wie ich auf Twitter gesehen hast du eine RX 480 wie sind die Erfahrung mit den FPS bei Verlustfreienaufnahme, bei mir in Battlefield 1 klappt eine Aufnahme es deutlich unter 40 fps (bin mir nicht mehr sicher aber irgendwo zwischen 20~30fps ging es dann).

Michael: Ich habe bis jetzt nur selten Verlustfrei genutzt, aber in den Tests die ich gemacht habe (GTA 5, Overwatch, Guild Wars 2, Space Engineers, Helldivers) bin ich nur selten unter 60 fps gefallen. Sofern die Spiele gut gebaut sind und nicht permanent PCI-E bandbreite ziehen kann das Plugin für bis zu eine Sekunde dies korrigieren.

K-Gaming: Wie weit sind die Output parameter fest gesetzt von AMD? Wird es alternativen zu NV12 geben (also YUV 4:2:2 oder 4:4:4)

Michael: Sehr fest, es wird jedenfalls für einen Weile keine alternativen zur NV12/YUV 4:2:0 Progressive geben.

K-Gaming: Gibt es bei Verlustfrei eine Bitrategrenze, wenn man 1440p oder 4k aufnehmen möchte geht ja die Bitrate schnell sehr hoch?

Michael: Verlustfrei ist exakt das was es sagt, somit gibt es also keine Bitrate-grenze da es ansonsten nicht mehr Verlustfrei wäre. Für hohe Auflösungen eignet sich VBR und VBR_LAT gut, da diese die Qualität gut wiederspiegeln können. Alternativ sind auch weitere Voreinstellungen vorhanden, wie z.B. ‘Hohe Qualität’.

K-Gaming: Qualität-Voreinstellung wo liegen die Unterschiede zwischen den Preset Geschwindigkeit, Ausgleichen und Qualität ?

Michael: In der Geschwindigkeit und der Qualität. Qualität gibt die beste Qualität, Geschwindigkeit die beste Geschwindigkeit und Ausgeglichen ist zwischen beiden in Geschwindigkeit und Qualität.

K-Gaming: Wo liegen die Unterschiede bei x264, NVENC und AMF?

Michael: x264 ist ein Software Kodierer der theoretisch mithilfe von OpenCL auf der GPU laufen könnte. NVENC und AMF sind jeweils Hardware Kodierer die dedizierte Chips auf der GPU verwenden. Zwischen NVENC und AMF sind theoretisch keine Unterschiede, außer das AMD reprogrammierbare Chips verwendet und NVidia meines Wissens nach vorprogrammierte Chips – somit kann AMD die Funktion jederzeit ändern und es kostet weniger, ist allerdings dafür etwas langsamer.

K-Gaming: Wo siehst du die schwächen und stärken von AMF?

Michael: Uff, das ist eine schwere Frage. Die größten Schwächen von AMF sind das der Quellcode nicht offen ist und somit keiner von Außen Verbesserungen oder Korrekturen vornehmen kann (x264 ist offen und das merkt man an der Qualität) und das die Dokumentation oftmals nicht sehr gut ist oder gar falsch. Die Stärken sind Geschwindigkeit, das eine vollständige Rekonfiguration während der Laufzeit möglich ist (3500 kbit zu viel zum streamen? Einfach runter setzen auf 2500 kbit und weiter gehts!), die niedrig-Latenz modis welche gut geeignet sind für Beam(Tachyon) und In-Home streaming (Steam, Steam Link), Intra-Refresh Kodierung und einiges mehr.

K-Gaming: Was steht auf der Agenda, woran arbeitest du noch am Plugin?

Michael: Was noch ansteht ist HEVC unterstützung mithilfe von dem bald verfügbaren neuen Treiber, weitere Bug- und Stabilitätsfixes und das wäre erstmal dort alles. In OBS muss ich mit Jim noch daran setzen das der GPU -> RAM transfer komplett übersprungen wird und das endlich der Replay Buffer unterstützt wird.

K-Gaming: Wie sieht es mit neueren API (DX12 / Vulkan) aus?

Michael: Sofern AMF diese in Zukunft unterstützt werden diese eingebaut. Gerade DirectX 12 wäre sehr toll zu haben, da die API doch sehr ausgereift im Vergleich zu Vulkan ist.


Das ist das vollständige Interview mit K-Gaming.

Bookmark the permalink.

Comments are closed