Welche Grafikkarte?


Zvoni

Erfahrenes Mitglied
Hallo zusammen.

Situation:
Dell Optiplex 390 mit i3-2120 - 4GB RAM
OS: Manjaro Cinnamon current - Linux 5.8.1 - alle codecs installiert (x264, x265, OpenH265 und was ich sonst noch finden konnte)
Wird nur zum Abspielen von Videos benutzt (kein Gaming, kein Videoschnitt, kein gar nix sonst, höchstens mal ein raw cut mit HandBrake bzw. QWinFF, aber da ist die Dauer dann egal, da ich das im Batch laufen lasse)
Derzeit läuft das Teil über die integrierte GraKa. Zum Abspielen wird VLC bzw. der Gnome-Mediaplayer benutzt.
Im VLC benutze ich den XCB-Ausgang

Ist-Zustand: FullHD (1920x1080/30fps) spielt sowohl VLC als auch GMP problemlos.
Sobald aber FPS in Richtung 60 geht wirds ruckelig

Jetzt aber sehe ich mich mit folgendem Problem konfrontiert:
Die meisten bei uns haben eine GoPro 8 black (bzw. min. eine GoPro7 black) wegen dem Stabilisierungs-Dingens (ich übrigens auch - geile Funktion)
Jedoch haben die neuen GoPros nicht mehr den kombinierten Foto und Video-Modus (Während Video filmt schiesst die Cam Fotos mit 12MPx alle 5 sekunden --> ist auf meiner GoPro4 so).
Da wir aber Kunden haben, welche nur Fotos haben wollen, sind wir jetzt dazu übergangen in 2,7K/60FPS zu filmen, und dann im VLC einfach Snapshots zu ziehen (bzw. in KDENLive einfach export auf jpg-Serie).

VLC: spielt 2,7K überhaupt nicht ab bzw. seit ich auf XCB umgestellt habe, spielt VLC es ab, aber ruckelt und/oder bleibt hängen.
GMP: spielt 2,7K in Zeitlupe ab (?!?!??!).

Deswegen bin ich gerade am überlegen, den Rechner aufzurüsten.
Hatte zuerst daran gedacht in den Dell nen i7-2600 einzubauen, aber da es ja um Video geht, ist das wohl der falsche Ansatz (zumal der i7-2600 so um die 60 € kostet)
Deshalb schaue ich mich gerade nach GraKas um.

Vorne weg: Darf natürlich nix kosten.
Es bringt nix, ne GraKa für 80€ einzubauen, wenn ich nen PI4 für 100 € bekomme.

Habt ihr da Empfehlungen/Vorschläge?
Preisklasse sollte nicht über 50-60 € sein

Und ich brauch das ganze zwei mal, da ich zwei von den Rechnern habe.
 

Technipion

Erfahrenes Mitglied
Hallo Zvoni,
Hatte zuerst daran gedacht in den Dell nen i7-2600 einzubauen, aber da es ja um Video geht, ist das wohl der falsche Ansatz (zumal der i7-2600 so um die 60 € kostet)
soetwas musst du immer nachprüfen. Wir Menschen sind einfach schrecklich darin, mögliche Flaschenhälse abzuschätzen. Ich schlage vor du machst mal folgendes:

Spiel eines der Videos ab und schaue dir dabei die CPU-Auslastung an. Falls die Auslastung permanent an den 100% kitzelt, deutet das doch eher auf ein CPU-Problem hin.

Ziehe das Wiedergabefenster mal sehr sehr klein (z.B. 100 x 100 px). Damit entlastest du die Grafikkarte sehr (weil sie nur noch wenige Pixel zeichnen muss). Wird die Wiedergabe dann flüssiger, oder ruckelt es immer noch?

Ebenfalls wichtig: Welche Codecs werden von den Videoclips verwendet? Es kann gut sein, dass der Prozessor schlicht noch keine Hardware-Unterstützung hatte...

Da wir aber Kunden haben, welche nur Fotos haben wollen, sind wir jetzt dazu übergangen in 2,7K/60FPS zu filmen, und dann im VLC einfach Snapshots zu ziehen (bzw. in KDENLive einfach export auf jpg-Serie).
Also wenn ich dich richtig verstanden habe geht es jetzt hier nur um das Abspielen der Videos, nicht um das Konvertieren, richtig? Weil Videos in Bildsequenzen umzuwandeln schreit für mich ja geradezu nach ffmpeg, zumal du ohnehin auf einem Linux-System bist :D

Es bietet sich ohnehin an, dass du dir mal ffmpeg installierst. Denn über den Befehl
$ ffmpeg -i meine_Videodatei.mp4
kannst du dir allerhand Informationen über Video-/Audiodateien anzeigen lassen. Würde sich ja anbieten den Output hier im Forum zu posten :ROFLMAO:

Der Vollständigkeit halber hier noch ein Wiki-Eintrag, wie man dieses Verhalten der GoPro mit ffmpeg nachbauen könnte: Guckst du hier.

Gruß Technipion
 

Zvoni

Erfahrenes Mitglied
Hiho Technipion,

@ffmpeg --> siehe "QWinFF" --> ist ne GUI für ffmpeg. Ist eh drauf.

Ja, Es geht jetzt nur um Videos anschauen!
Was die codecs betrifft: Ich hab immer wieder bei den fraglichen 2,7K Videos im VLC auf die Codec-Informationen geschaut, und überall den H264 gesehen (Die GoPro entscheidet anscheinend selbst, ob 264 oder 265, je nachdem welchen Modus man nimmt).

Wie gesagt: Das Konvertieren ist nebensächlich, da ich das in HandBrake oder QWinFF (ffmpeg) dann eh im Batch über Nacht laufen lasse.

CPU-Auslastung: Hmm, ist ne Idee... Hab auf den Rechnern eh Conky laufen (und ja, ich weiss: Conky braucht seinen eigenen Anteil an CPU).

Und das mit dem Wiedergabe-Fenster ist ne Idee. Bin heute Nachmittag eh bei uns am Platz (Theorie-Unterricht halten für unsere aktuellen Schüler), da kann ich das gleich mal testen.

Danke
 

Zvoni

Erfahrenes Mitglied
Rückmeldung:
Es ist nicht die Auflösung, es sind die FPS welche den Rechner in die Knie zwingen.
2,7K/30FPS spielen alle Player ohne Probleme (siehe Auslastung)

CPU-Auslastung:
VLC --> ca. 80-90% (alle 4 Kerne)
GMP --> ca. 50-60% (pendelnd durch die Kerne)

Verkleinerung des Fensters hat nix gebracht. 60FPS im GMP in Zeitlupe, VLC stottert komplett

Also eher GraKa? Oder?
 

Technipion

Erfahrenes Mitglied
CPU-Auslastung:
VLC --> ca. 80-90% (alle 4 Kerne)
GMP --> ca. 50-60% (pendelnd durch die Kerne)
Das ist interessant. Haben wir hier vielleicht ein Software-Bottleneck?

Also ich könnte mir mehrere Dinge vorstellen.
1) Deine CPU ist noch zu alt für x265, weshalb x265-kodierte Videos ruckeln. H.264 läuft dagegen ganz gut?
2) Die Bitrate der Videos ist für dein System zu hoch. Kannst du mal die Ausgabe von
$ ffmpeg -i Videodatei.mp4 posten?
3) GMP fehlen entweder irgendwelche Treiber, oder der Software-Decoder von VLC ist einfach um Welten besser.

Also eher GraKa? Oder?
Unabhängig davon, ob das Stottern im Moment von der GraKa oder der CPU kommt, wäre ein Grafikkartenupgrade natürlich eine Lösung. Hier ist ein ganz netter Wiki-Eintrag über VA-API und VDPAU, beides Schnittstellen für die Hardware-Dekodierung auf der GPU in Linux. Da kannst du dich selbst ein bisschen einlesen.
Grundsätzlich hätte ich ja empfohlen das System mit einer Radeon Pro GPU nachzurüsten. Zusammen mit amdgpu oder amdgpu-pro hätte das sicherlich was gebracht. Aber eine vernünftige GraKa kriegst du never für unter 100€, selbst gebraucht ...:cautious:

Es bringt nix, ne GraKa für 80€ einzubauen, wenn ich nen PI4 für 100 € bekomme.
Laufen die Videos denn auf dem PI4?

Gruß Technipion
 

Zvoni

Erfahrenes Mitglied
Kannst du mal die Ausgabe von
$ ffmpeg -i Videodatei.mp4 posten?
Code:
[sbfvideo@SBFVideo02 Cam Kopf]$ ffmpeg -i  GH010089.MP4
ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.1.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'GH010089.MP4':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2020-08-27T17:28:38.000000Z
    firmware        : HD8.01.01.60.00
  Duration: 00:05:28.23, start: 0.000000, bitrate: 60270 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709), 2704x1520 [SAR 1:1 DAR 169:95], 60007 kb/s, 59.94 fps, 59.94 tbr, 60k tbn, 119.88 tbc (default)
    Metadata:
      creation_time   : 2020-08-27T17:28:38.000000Z
      handler_name    : GoPro AVC  
      encoder         : GoPro AVC encoder
      timecode        : 17:27:35:54
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
    Metadata:
      creation_time   : 2020-08-27T17:28:38.000000Z
      handler_name    : GoPro AAC  
      timecode        : 17:27:35:54
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74) (default)
    Metadata:
      creation_time   : 2020-08-27T17:28:38.000000Z
      handler_name    : GoPro TCD  
      timecode        : 17:27:35:54
    Stream #0:3(eng): Data: bin_data (gpmd / 0x646D7067), 45 kb/s (default)
    Metadata:
      creation_time   : 2020-08-27T17:28:38.000000Z
      handler_name    : GoPro MET  
    Stream #0:4(eng): Data: none (fdsc / 0x63736466), 13 kb/s (default)
    Metadata:
      creation_time   : 2020-08-27T17:28:38.000000Z
      handler_name    : GoPro SOS
Den PI habe ich noch nicht gekauft, weil wir die Saison jetzt so arbeiten mit was wir haben (Invest-Stop)
 

Technipion

Erfahrenes Mitglied
Eine Bitrate von 60.270 kb/s für die Videospur? Uff, das ist ganz schön viel.

Du könntest mal versuchen die Videos umzukodieren, damit sie eine niedrigere Bitrate haben. Versuch doch testweise mal das hier:
$ ffmpeg -i "GH010089.MP4" -preset slower -profile:v high "GH010089_LBR.MP4"

Achtung, das wird einen Moment dauern! Sollte aber hoffentlich die Bitrate etwas senken, womöglich entlastet das dein System etwas.
(Den Parameter für High Profile kannst du auch weglassen, habe das nur drin weil dein System ja schon betagt ist und ich das Profil mit der GoPro konsistent halten wollte)

Danach kannst du ja nochmal die Infos des neukodierten Videos posten :)

Gruß Technipion
 

Zvoni

Erfahrenes Mitglied
Ok, werd ich machen.
wird aber bis nächstes Wochenende warten müssen, da Wetter uns gerade nen Strich durch die Rechnung macht
 

Technipion

Erfahrenes Mitglied
Kein Problem. Meldest dich einfach wenn du es testen konntest.

Eigentlich müssen wir ja froh sein, dass es ein bisschen Niederschlag gibt :confused:
In der Zwischenzeit kannst du dich ja mal ein wenig auf Ebay umsehen, ob dir dort zufällig eine gebrauchte (vorzugsweise AMD) GraKa in den Schoß fällt. Musst nur gucken, dass du guten Softwaresupport hast (bei AMD heißt das GCN oder später).
 

Martin Schaefer

Administrator
Die Ursache des Problems sind die GoP (Group of Pictures), die von hochkomprimierenden Codecs verwendet werden, um die Dateigröße (Bitrate) zu reduzieren. Wenn ein Videocodec z.B. nur alle 10 Sekunden ein komplettes Bild (I-Frame) speichert und dann dazwischen nur "Differenz" (B-Frames) speichert, dann wird der Decoding-Prozess sehr aufwändig und rechenintensiv.
Hat man nun keinen Helfer mit Hardware-Decoding (GPU), dann kommt eine mittelprächtige CPU bei der Aufgabe schonmal ins Schwitzen ... bei 2.7K mit 60fps natürlich erst recht.
Wenn man andererseits Videos in einem "All-Intra" Format speichert, dann wird zwar jedes einzelne Bild gespeichert und damit das Decoding wesentlich vereinfacht ... dafür wächst aber die Dateigröße (Bitrate) enorm an.

Der Versuch die Bitrate zu reduzieren wird aus o.g. Gründen eher nicht helfen. Leider wird es vermutlich auch schwierig werden, auf einem eher mager bestückten PC eine zuverlässig funktionierende "Balance" zwischen Dateigröße und Software-Decoding von GoP zu finden. Die von dir genannte Auflösung und Bildrate (2.7K @ 60fps) erfordert schon ein wenig "Dampf unter der Haube", idealerweise via GPU und Videoplayer, der auch die GPU zum Decoding nutzt.

Im Fall von All-Intra Codecs ist dann die GPU weniger wichtig sondern mehr der Datendurchsatz. Ein unkomprimiertes 2.7K Frame entspricht 12MB ... bei 60fps sind das dann schon 720MB/s, die gerne den Weg von der CPU zur Grafikkarte zwecks Darstellung gepumpt werden möchten.
 
Zuletzt bearbeitet:

Technipion

Erfahrenes Mitglied
Wenn ein Videocodec z.B. nur alle 10 Sekunden ein komplettes Bild (I-Frame) speichert und dann dazwischen nur "Differenz" (B-Frames) speichert, dann wird der Decoding-Prozess sehr aufwändig und rechenintensiv.
Das kann in der Tat das Problem hier sein. Der Player würde dann sozusagen von einem I-Frame zum nächsten I-Frame springen, also heftigst stottern, weil die P-/B-Frames nicht rechtzeitig dekodiert werden können.

An den Datendurchsatz habe ich auch schon gedacht, gerade bei einem so alten System. Außerdem kann es ja nicht schaden die Videos etwas effizienter zu komprimieren, die GoPro hat eben relativ hohe Bitraten, weil die das unterwegs auf Akku machen muss. Hier ist ein ganz netter Blogeintrag dazu @Zvoni , falls du das später mal austesten möchtest.

Auch wenn es als Lösung wenig Sinn macht, du könntest mit
$ ffmpeg -i "GH010089.MP4" -c:v libx264 -intra "GH010089_ALL_INTRA.MP4"
das Video testweise in eine all-intra Spur umwandeln und testen ob das etwas bringt.

Gruß Technipion
 

Zvoni

Erfahrenes Mitglied
Bin ab morgen Nachmittag wieder am Platz, und werde vorgeschlagene Tests durchführen.

Mir ist natürlich klar, dass falls es beide Komponenten betrifft (CPU und GraKa) ich dann eh auf die PI4 umsteigen werde.

Irgendjemand Erfahrung mit Video's genannter "Qualität" auf dem PI4?
bzw. PI3 (Wenn es auf dem 3er lauft, dann auf dem 4er doch sicher auch, oder?)
 

Technipion

Erfahrenes Mitglied
Mir ist natürlich klar, dass falls es beide Komponenten betrifft (CPU und GraKa) ich dann eh auf die PI4 umsteigen werde.
Es muss natürlich nicht zwangsweise ein PI4 sein. Man findet auf dem Gebrauchtmarkt durchaus gute Angebote für relativ moderne Systeme. Nur scheuen viele Leute (leider) davor zurück, gebraucht zu kaufen. Eigentlich wirklich schade, denn man spart nicht nur Geld, sondern tut auch noch etwas gegen den vielen Elektroschrott.
Hier bietet z.B. jemand einen PC für aktuell gut 30€ an:

Das scheint ein relativ junges Exemplar vom Aldi zu sein:

Und ein Ryzen 3200G kann dann schon ziemlich viele Codecs in Hardware dekodieren.

Das soll jetzt nicht heißen, dass du unbedingt dieses Angebot kaufen sollst. Ich will vielmehr nur darauf hinweisen, dass einem solche Angebote manchmal über den Weg laufen. Und wenn es soweit ist, sollte man zuschlagen ;)
Ich persönlich benutze eigentlich fast gar keine neu gekaufte Hardware mehr. Nur wenn ich wirklich mal cutting edge will. Ansonsten gibt es genug andere Menschen die sich ver-kaufen und quasi-neue Produkte dann sehr günstig anbieten. Man muss nur etwas abwarten können :cool:

Gruß Technipion
 

Martin Schaefer

Administrator
Nochmal kurz zum Thema GoP und All-Intra:
Auch wenn es "interessant" sein mag, zu schauen, wie sich ein Video mit All-I Encoding verhält, so ist es doch so, dass die Dateigröße massiv größer ist. Ein typisches All-I encodiertes Video hat eine Datenrate von 400Mbps, also 50MB/s oder 3GB/min. Das ist zwar auch bessere Bildqualität und auch performanter beim Videoschnitt, aber als Format zur "Auslieferung" doch deutlich zu "fett". ;)
 

Zvoni

Erfahrenes Mitglied
Rückmeldung:
Alle o.g. Tests durchgeführt (2,7K/60FPS mit HEVC, bitrate runter, All-Intra) alle das gleiche: Im MPlayer (ffmpeg) Zeitlupe, im VLC stottern.

Hab parallel mit meiner GoPro4 Silver ein Video mit 2,7K/25fps mitlaufen lassen: Läuft einwandfrei (mit ca. 80% CPU-Auslastung im Schnitt).

Sind also die FPS, welche die Rechner in die Knie zwingen.

Nun die Frage: CPU oder GraKa (Falls wir jetzt doch auf den alten Eimern bleiben wollen)?

Müsste mal schauen, ob ich vielleicht zwei minisforums von Windows auf Linux umgebaut bekomme.
Müsste ich aber mit dem Cheffe reden.

Ansonsten PI4, und alle GoPro8er auf HEVC, dann müssten die 2,7K/60 FPS laufen.
 

Technipion

Erfahrenes Mitglied
Also gut, letzter Vorschlag meinerseits, dann bin ich nämlich mit meinem Latein am Ende.

Damit wenigstens das Playback auf deiner lokalen Maschine funktioniert, könntest du dir händisch Proxy-Clips anlegen:
$ ffmpeg -i "GH010089.MP4" -vf scale=-1:720 "GH010089_PROXY.MP4"

Das Video wird dabei auf 720p herunterskaliert.
Wenn es dann immer noch nicht läuft → sorry keine Ahnung was man da noch tun kann. Wirst dann wohl einfach ne neue Maschine brauchen :(

Gruß Technipion
 

Zvoni

Erfahrenes Mitglied
Finale Rückmeldung:
Ich habe jetzt auf "Risiko" den beiden Stations neue CPU's verpasst (i7-2600 --> der "höchste" auf SandyBridge)

Ich hatte mich bei den Preisen anscheinend böse verguckt, als auf Amazon ein Stückpreis von ca. 250 € gezeigt wurde.
Ich hab mich dann an einen Menschen erinnert, bei welchem ich vor ca. 20 Jahren meinen damaligen PC gekauft hatte. Der hat mittlerweile ein Geschäft in respektabler Grösse (was ich sehen konnte so ca. 10-15 Mitarbeiter).
Ich da hin, "ich möchte mal gern den Cheffe sprechen" -- "komischeBlicke"
Cheffe sieht mich ..... "dich kenn ich irgendwo her"...."Erinner dich mal 20 Jahre zurück. Ich hab bei dir nen Rechner gekauft, da warst du noch im Keller deiner Eltern"...."Ach herrje.....*lach*"

Resultat: ich habe zwei i7-2600 (inkl. Wärmeleitpaste) für 200 € zusammen bekommen (natürlich ohne Rechnung *gg*).
Eingebaut, gestartet, Video mit 2,7K/60fps in VLC gestartet. LÄUFT!!!

Seltsame Randnotiz: Starte ich den Gnome-MPlayer, läuft es immer noch in Zeitlupe, und Conky zeigt mir eine CPU (von 8) auf 100%, während VLC das auf alle 8 verteilt (auf ca. 30% im Schnitt auf jedem).
Das seltsame: (Gnome)-MPlayer ist bekanntlich nur eine GUI für ffplay. Rufe ich ffplay direkt auf der CLI auf (ffplay video.mp4) läuft es flüssig mit entsprechender Thread/Core-Verteilung.