Hohe Prozessorlast beim Youtube-Streaming

Fixy Hartmann

Cadet 3rd Year
Registriert
Sep. 2020
Beiträge
55
Hallo Ihr Lieben,

ich habe in der Familie einen kleinen schnuckeligen Lenovo-Laptop, ist ein Lenovo X250. Ist ein älteres Model mit Intel-Processor von 2015 (core-i5, 4 Kerne beziehungsweise 2x2) und Onboard-Grafik. Eigentlich reicht es für alles. Wird unter Debian Testing betrieben.

Was hier seit einigen Monaten auffällt ist der Stromverbrauch beziehungsweise Lautstärke beim Abspielen von Youtube-Videos. Früher war das kein Problem, egal welche Auflösung, heute nicht mehr so. Also die Videos ruckeln nicht, oder noch nicht, oder manchmal schon, wenn man im Hintergrund etwas größeres startet. Und wenn ich mir die CPU Info anschaue, dann sind da ein paar Prozesse sehr aktiv, z.B. beim Firefox eins mit ca. 140% CPU-Load namens "Isolate www...." und dazu noch eins mit "x-www-browser" (der immer da ist). Und das sind zusammen um die 180%, manchmal geht es noch höher, auf 190%-195%. Also wenn man die virtuellen Kerne nicht betrachtet, dann ist das Gerät mit einem Video schon fast ausgelastet. Und das kann doch nicht wahr sein.

Ich hab es mit Chromium probiert. Da ist es ein bisschen besser, aber nicht signifikant. Auch da sind zwei Prozesse sehr aktiv, und ergeben zusammen ca. 150% CPU-Load.

Dann dachte ich mir, okay, vielleicht ist die native Grafikkartenbeschleunigung kaputt. Das Problem gab es schon mal in der Vergangenheit. Also habe ich das mit einem Player-Programm probiert. Also mit
smplayer https://www.youtube.com/watch?v=...

Und was sehen wir da? Nur ca. 22% Load, niemals über 25%. So soll es doch aussehen.

Dann habe ich etwas recherchiert und mehr zur Video-Beschleunigung gefunden. Da wurde wohl der Grafiktreiber letztes Jahr auf eine neue Generation umgebaut. Aber wenn ich das richtig interpretiere, dann ist doch alles verfügbar, und sollte von den Browsern auch so benutzt werden. Oder übersehe ich noch was? Die HW-Beschleunigung ist natürlich angeklickt, gemäss https://support.mozilla.org/de/kb/firefox-leistungseinstellungen?as=u&utm_source=inproduct .

# vainfo
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.12.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 ()
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointVLD
Hat noch jemand eine Idee? Ich will nicht alle Video-Links in nativen Player schicken, nur damit mir der Laptop nicht die Schenkel verbrennt.
 
keine CPU kann mehr wie 100% leisten. Da scheint das Auslesetool nicht ganz korrekt zu funkionieren.
 
  • Gefällt mir
Reaktionen: FR3DI
Starte den firefox doch bitte einmal mit folgender Debug Variable:
Code:
MOZ_LOG="FFmpegVideo:5"
Spiele dann bitte ein Video ab, wenn vaapi aktiv ist, sollte man das dann sehen.
 
  • Gefällt mir
Reaktionen: coxon
h264ify als erweiterung im firefox nutzen, dann bekommst du die videos im h264-format statt als vp9/av1, was deine gpu nicht in hardware kann.
 
  • Gefällt mir
Reaktionen: gymfan, h2f und Tenferenzu
F1database schrieb:
keine CPU kann mehr wie 100% leisten. Da scheint das Auslesetool nicht ganz korrekt zu funkionieren.
Doch, jede CPU mit mehr als einem Kern kann das ;)

Die meistens Tools unter Linux funktionieren hier anders als unter Windows. 100% bedeutet hier, dass ein Thread zu 100% ausgelastet ist. 200% dann zwei Threads und so weiter.

Das vereinfacht das vergleichen der Last unterschiedlicher Systeme. Denn 250% bei einem 4 und 8 Kerner sind hier die selbe Last, wenn man 100% wirklich als obere grenze nimmt, müsste man hier rumrechnen.
 
  • Gefällt mir
Reaktionen: FR3DI, NerdmitHerz, SpartanerTom und eine weitere Person
0x8100 schrieb:
Das hier sollte die Lösung sein sofern du mit der Einschränkung auf 1080p leben kannst. (Ev. auch auf 720p.. je nachdem bis zu welcher Auflösung YT aktuell h264 ausliefert..)
 
Fixy Hartmann schrieb:
Und was sehen wir da? Nur ca. 22% Load, niemals über 25%. So soll es doch aussehen.
Wenn Du exakt das selbe Video mit dem selben CoDec und der selben Auflösung getestet hast (und man die u.U. vorhandenen Besonderheiten des Browsers und vom YT-Player außer Acht lässt.

Also das erwähnte h264ify nutzen und Dich mit 1080p zufrieden geben.

Fixy Hartmann schrieb:
Früher war das kein Problem, egal welche Auflösung, heute nicht mehr so.
Auch da gilt wieder: war das früher exakt das selbe, oder doch nur irgendein YT-Video? YT bevorzugt sei längerm VP9 (die wollen halt Geld sparen, Qualität ist oft Irrelevant). Das zeigen Dir die "Statistiken für Interessierte" im YT-Player auch an. Es gibt auch genügend neue Uploads, die nur in h.264 verfügbar sind, genauso wie jede, die nur in 240p verfügbar sind.
 
h264ify plugin im browser (firefox, drum hab ich den h264 firefox link reingetan) installieren, das überredet yt dazu, den stream in h264 zu liefern.
funktioniert bussifein.
ich hab am nachtkasterl ein T440, wiedergabe fast ohne cpu last.
 
Vielen Dank an alle, die h264ify empfohlen haben. Ja, das scheint es zu lösen. Die Auslastung ist auf ca. einen Drittel bis Hälfte von vorher gesunken. Damit kann ich leben.

@duAffentier Früher mit Stecker-Messgerät. Aber die Hitze und Lautstärke reichen mir schon als Indikator.

Y-Chromosome schrieb:
Spiele dann bitte ein Video ab, wenn vaapi aktiv ist, sollte man das dann sehen.
Das ist interessant. Die angezeigte CPU-Last sinkt dann noch einen Ticken weiter, meistens unter 50%. Aber .xsession-errors explodiert, das ist voll von Fehlermeldungen der Art:

[Child 129212: MediaPDecoder #2]: D/FFmpegVideo FFMPEG: Got one frame output with pts=922838583 dts=922838583 duration=41708 opaque=-9223372036854775808
[Child 129212: MediaPDecoder #2]: V/FFmpegVideo Create a video data from a shmem image=7fe79aacea20
 
  • Gefällt mir
Reaktionen: Y-Chromosome
und was zeigt das Log von Firefox? (aber da die Last wohl gesunken ist, wie Du vorher geschrieben hast, sollte vaapi ja aktiv sein)
 
Das hat was mit Youtube zutun, bzw wenn du einen Adblocker nutzt. Das Problem ist, dass Youtube User, die einen Adblocker nutzen, bewusst ausbremst.
So haben zumindest mehrere Medien darüber berichtet. Und bei mir kommt es auch dazu. Wenn ich den Adblocker deaktiviere, läuft alles wieder schnell und flüssig.
 
Y-Chromosome schrieb:
und was zeigt das Log von Firefox? (aber da die Last wohl gesunken ist, wie Du vorher geschrieben hast, sollte vaapi ja aktiv sein)
Bitte langsam, bis vor gestern wusste ich nicht mal etwas von der Existenz von MOZ_LOG und erst recht nicht wie man das benutzt. Also scheint es ein Filter für Log-Meldungen zu sein?

Jetzt fand ich https://stackoverflow.com/questions/68803266/how-do-i-find-the-logs-of-firefox , das hilft ein bisschen. Aber wenn ich das aber so aufrufe, dann habe ich einen Dutzend Dateien mit Namen all.log.child... und alle davon sind leer.

Kombiniere ich das aber mit deinem Vorschlag, kommt doch eine Datei mit Inhalt heraus.
Und da finde ich das folgende, und dann viele ähnliche Meldungen über Bild-Kontext oder so ähnlich.
Also: $ firefox -MOZ_LOG=FFmpegVideo:5 -MOZ_LOG_FILE=all.log

Scheint jetzt also okay zu sein.

Code:
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: FFmpegVideoDecoder::FFmpegVideoDecoder MIME video/avc Codec ID 27
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: VA-API works in RDD process only
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: Initialising FFmpeg decoder
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG:   codec h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: Set get_buffer2 for customized buffer allocation
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG:   FFmpeg decoder init successful.
[Child 191546: MediaPDecoder #2]: D/FFmpegVideo FFMPEG: FFmpegDataDecoder: shutdown
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: FFmpegVideoDecoder::FFmpegVideoDecoder MIME video/avc Codec ID 27
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: VA-API works in RDD process only
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: Initialising FFmpeg decoder
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG:   codec h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: Set get_buffer2 for customized buffer allocation
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG:   FFmpeg decoder init successful.
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG: FFmpegDataDecoder: shutdown
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG: FFmpegVideoDecoder::FFmpegVideoDecoder MIME video/avc Codec ID 27
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG: VA-API works in RDD process only
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG: Initialising FFmpeg decoder
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG:   codec h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG: Set get_buffer2 for customized buffer allocation
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG:   FFmpeg decoder init successful.
[Child 191546: MediaPDecoder #2]: D/FFmpegVideo FFMPEG: FFmpegDataDecoder: shutdown
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG: FFmpegVideoDecoder::FFmpegVideoDecoder MIME video/avc Codec ID 27
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG: VA-API works in RDD process only
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: Initialising FFmpeg decoder
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG:   codec h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: Set get_buffer2 for customized buffer allocation
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG:   FFmpeg decoder init successful.
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: FFmpegDataDecoder: shutdown
[Child 191546: MediaSupervisor #3]: D/FFmpegVideo FFMPEG: FFmpegVideoDecoder::FFmpegVideoDecoder MIME video/avc Codec ID 27
[Child 191546: MediaSupervisor #3]: D/FFmpegVideo FFMPEG: VA-API works in RDD process only
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: Initialising FFmpeg decoder
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG:   codec h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: Set get_buffer2 for customized buffer allocation
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG:   FFmpeg decoder init successful.
[Child 191546: Unnamed thread 7f445e2f75e0]: D/FFmpegVideo FFMPEG: Choosing FFmpeg pixel format for video decoding.
[Child 191546: Unnamed thread 7f445e2f75e0]: D/FFmpegVideo FFMPEG: Requesting pixel format YUV420P.
[Child 191546: Unnamed thread 7f445e2f75e0]: V/FFmpegVideo GetVideoBuffer: aCodecContext=7f446e5a3400 aFrame=7f445e8c2600
[Child 191546: Unnamed thread 7f445e2f75e0]: V/FFmpegVideo Created plane data, YSize=(896, 482), CbCrSize=(512, 258), CroppedYSize=(854, 480), CroppedCbCrSize=(427, 240), ColorDepth=0
[Child 191546: Unnamed thread 7f445e2f75e0]: D/FFmpegVideo FFMPEG: Created av buffer, buf=7f44723fa580, data=7f445d2d5000, image=7f4474b590c0, sz=622080
[Child 191546: Unnamed thread 7f445e2f7700]: V/FFmpegVideo GetVideoBuffer: aCodecContext=7f446e5a3800 aFrame=7f445e9f4a00
[Child 191546: Unnamed thread 7f445e2f7700]: V/FFmpegVideo Created plane data, YSize=(896, 482), CbCrSize=(512, 258), CroppedYSize=(854, 480), CroppedCbCrSize=(427, 240), ColorDepth=0
[Child 191546: Unnamed thread 7f445e2f7700]: D/FFmpegVideo FFMPEG: Created av buffer, buf=7f446e2d4500, data=7f445d22b000, image=7f4474b59620, sz=622080
[Child 191546: MediaPDecoder #2]: D/FFmpegVideo FFMPEG: Frame decode takes 0.08 ms average decode time 0.08 ms frame duration 33.33 average frame duration 33.33 decoded 1 frames
[Child 191546: MediaPDecoder #2]: D/FFmpegVideo FFMPEG: Got one frame output with pts=0 dts=0 duration=33333 opaque=-9223372036854775808
[Child 191546: MediaPDecoder #2]: V/FFmpegVideo Create a video data from a shmem image=7f4474b590c0
[Child 191546: Unnamed thread 7f445e2f75e0]: V/FFmpegVideo GetVideoBuffer: aCodecContext=7f446e5a3400 aFrame=7f445e8c5200
[Child 191546: Unnamed thread 7f445e2f75e0]: V/FFmpegVideo Created plane data, YSize=(896, 482), CbCrSize=(512, 258), CroppedYSize=(854, 480), CroppedCbCrSize=(427, 240), ColorDepth=0
[Child 191546: Unnamed thread 7f445e2f75e0]: D/FFmpegVideo FFMPEG: Created av buffer, buf=7f447529b6c0, data=7f445d181000, image=7f4474b59fc0, sz=622080
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG: ProcessFlush()
[Child 191546: MediaPDecoder #3]: D/FFmpegVideo FFMPEG: FFmpegDataDecoder: flushing buffers
[Child 191546: MediaPDecoder #3]: V/FFmpegVideo ReleaseVideoBufferWrapper: PlanarYCbCrImage=7f4474b59fc0
[Child 191546: MediaPDecoder #3]: V/FFmpegVideo ReleaseVideoBufferWrapper: PlanarYCbCrImage=7f4474b590c0
[Child 191546: MediaPDecoder #3]: V/FFmpegVideo ReleaseVideoBufferWrapper: PlanarYCbCrImage=7f4474b59620
[Child 191546: MediaPDecoder #1]: D/FFmpegVideo FFMPEG: FFmpegDataDecoder: shutdown
[Child 191546: MediaSupervisor #1]: D/FFmpegVideo FFMPEG: FFmpegVideoDecoder::FFmpegVideoDecoder MIME video/avc Codec ID 27
[Child 191546: MediaSupervisor #1]: D/FFmpegVideo FFMPEG: VA-API works in RDD process only
[Child 191546: MediaPDecoder #2]: D/FFmpegVideo FFMPEG: Initialising FFmpeg decoder
[Child 191546: MediaPDecoder #2]: D/FFmpegVideo FFMPEG:   codec h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[Child 191546: MediaPDecoder #2]: D/FFmpegVideo FFMPEG: Set get_buffer2 for customized buffer allocation
[Child 191546: MediaPDecoder #2]: D/FFmpegVideo FFMPEG:   FFmpeg decoder init successful.
 
  • Gefällt mir
Reaktionen: Y-Chromosome
Chrissssss schrieb:
die einen Adblocker nutzen, bewusst ausbremst.
Na das weiß ich jetzt nicht und ich weiß nicht, ob das sich auf die Prozessorlast auswirkt.

Ich könnte mir aber vorstellen, das Youtube träger erscheint, wenn man adblockt. Ganz einfach, weil am Anfang vieler Youtube-Videos ja die Werbung kommt und wenn die geblockt wird und der Youtube-Player erst mal ein Timeout abwartet usw. das dauert natürlich ein bisschen, bevor überhaupt etwas abgespielt wird. Ohne Blocker legt er halt gleich los, wenn auch mit Werbung.
 
Zurück
Oben