Einen ganz herzlichen Dank an alle, die hier ihre Gedanken und Vorschläge eingebracht haben, das hilft mir doch schon sehr weiter, bei der Einordnung. Mit der alten Radeon HD 4600 war das alles uninteressant, alleine schon Treiberseitig, von der Leistung mal ganz zu schweigen, weshalb ich mich damit noch nie beschäftigt habe. Die beiden Aussagen zum Hardware-Encoding auf der AMD-Seite hatten mich vermuten lassen, dass es relativ einfach wäre, und man nur einen Schalter in einer Config setzen muss, eine API braucht oder Ähnliches.
Aber zuerstmal das einfache, die Hardware-Dekodierung. Auch damit habe ich mich noch nie beschäftigt, es lief einfach so...
kurz und knapp: In vlc lief es schon, in mpv nicht, auch mit neuerer Version nicht, es hat eine Zeile in der config gefehlt. Jetzt gehts.
basti@Kriesl:~$ vlc Test_264.mp4
VLC media player 2.2.2 [...]
avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding.
basti@Kriesl:~$ top
PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL
14920 basti 20 0 2176896 150540 82528 S 13,2 1,5 0:04.68 vlc
sieht gut aus...
basti@Kriesl:~$ mpv Test_264.mp4
(+) Video --vid=1 (*) (h264 1920x1080 29.970fps)
VO: [gpu] 1920x1080 yuv420p
basti@Kriesl:~$ top
PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL
15138 basti 20 0 1908856 150144 61792 S 71,4 1,5 0:15.14 mpv
unerwartet...
basti@Kriesl:~$ dpkg -l mpv
ii mpv 0.14.0-1build1
okay, erneuern wir mal, ist ja doch schon 2-3 Jahre alt...ppa ausm wiki mit sehr langer Beschreibung beim Aufruf von add-apt-repository...nur überflogen...
basti@Kriesl:~$ dpkg -l mpv
ii mpv 2:0.28.0~xenial
schon besser, ändert aber nix an der hohen CPU-Last beim Abspielen...aber da stand doch etwas in der PPA-Beschreibung...
*Hardware decoding can be auto enabled & used when supported by adding to mpv.conf this line -
hwdec=yes
Ich hätte vermutet, dass das auto-enabled ist, aber gut, kein Problem...
basti@Kriesl:~$ echo hwdec=yes > ~/.config/mpv/mpv.conf
basti@Kriesl:~$ top
PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL
15209 basti 20 0 1547044 103836 62728 S 11,0 1,0 0:03.43 mpv
passt! :-)
Zu avidemux kann ich nicht viel sagen. Ich nutze es seit Jahren, und es läuft. Mit Xenial ist es ja leider aus den Quellen geflogen, ich meine ich habs mit über GetDeb geholt. Dass GTK nicht mehr unterstützt wird hat nicht grad Begeisterungsstürme ausgelöst, aber da muss man durch...Ich habe ursprünlich immer h264 im avi-Container gehabt, da meckerte jetzt die "neue" Version immer, dass es keine gute Idee ist. Mag sein... Mit dem vorgeschlagenen MKV-Container krieg ich aber viele Artefakte, weshalb ich jetzt MP4v2 nehme. Wer jetzt die Hände überm Kopf zusammenschlägt: ich hab davon recht wenig Ahnung, aber es läuft, für mich zumindest ohne Kompromisse. Für Verbesserungsvorschläge bin ich aber immer offen!
So, jetzt aber zu meinem ursprünglichen Thema, dem Hardware-Encoding. Ich hab den gestrigen Nachmittag damit zugebracht mir ein neues ffmpeg zu organisieren. Ich hab erstmal grundsätzlich nix gegen das Kompilieren, scheue aber meistens den Aufwand, den mir ./configure bereitet, wenn ich ewig rätseln muss, in welchem Paket jetzt die lib versteckt ist, die noch fehlt. Da muss ich aber wirklich ein ganz dickes Kompliment an das ffmpeg-Team aussprechen. Mein Englisch ist nicht das beste, aber die Anleitung zum Kompilieren für Debian&Ubuntu ist so idiotensicher, das war ein kleines Freudenfest, und wesentlich einfacher, als der Weg, den ich zuerst eingeschlagen hatte. Ich dachte, ich machs mir einfach und versuch es mit den Stable-Deb's für Debian Stretch, wo ffmpeg immerhin in 3.3.6 vorliegt. libmp3lame0 hatte schon bisschen Probleme gemacht, das hätte ich aber aber mit dpkg --force-depends(-version) probeweise gelöst. Wo es dann aber echt haarig wurde, waren libgcrypt20 und libgnutls30, da hab ich nun wirklich gar keinen Plan, was ich mir bezüglich Krypto alles zerschieße...also Plan beerdigt.
Jetzt steht ein aktuelles ffmpeg und ich werd mich hier durch die Kommentare arbeiten, bezüglich der VCE über VAAPI.
Wenn jemand noch einen Tipp hätte, wie ich die GPU-Auslastung anschauen kann, wäre das auch eine nette Sache. lm sensors gibt mir über amdgpu nur Temp und Lüfterdrehzahl aus. Okay, ist schonmal ein Indiz, aber wenn man die tatsächliche Auslastung noch auslesen könnte, wäre das auch hilfreich.
Falls sich in den heutigen Kommentaren schon Dinge erledigt haben: bitte nicht böse sein, ich arbeite mich durch, muss aber zum Verständnis viel nachlesen, das braucht ein bisschen Zeit. Dass ich mich da bei einigen Dingen nicht ganz so geschickt anstelle tut sein übriges...
Danke euch!
Sebastian