10-bit AV1 videos stottern

Sound, Digitalkameras, TV+Video und Spiele.
dufty2
Beiträge: 1650
Registriert: 22.12.2013 16:41:16

Re: 10-bit AV1 videos stottern

Beitrag von dufty2 » 16.05.2021 19:41:23

Danke wanne für die Tipps.

Wenn ich aber meinen output richtig interpretiere, wird aber vom mpv libdav1d vor libaom bevorzugt:

Code: Alles auswählen

$ mpv --msg-level=vo=v,vd=v,ffmpeg=v Bulgaria\ 8K\ HDR\ 60P\ \(FUHD\)-N1-Jmq7BLFE.mp4 
 (+) Video --vid=1 (*) (av1 1920x1080 59.940fps)
 <snip>
[vo/gpu] No advanced processing required. Enabling dumb mode.
[vo/gpu/wayland] Registered output BOE 0x0812 (0x4):
[vo/gpu/wayland] 	x: 0px, y: 0px
[vo/gpu/wayland] 	w: 1920px (340mm), h: 1080px (190mm)
[vo/gpu/wayland] 	scale: 1
[vo/gpu/wayland] 	Hz: 59.997000
[vo/gpu] Resize: 0x0
[vd] Container reported FPS: 59.940060
[vd] Codec list:
[vd]     libdav1d (av1) - dav1d AV1 decoder by VideoLAN
[vd]     libaom-av1 (av1) - libaom AV1
[vd] Opening decoder libdav1d
[vd] No hardware decoding requested.
[vd] Using software decoding.
[vd] Detected 8 logical cores.
[vd] Requesting 9 threads for decoding.
[ffmpeg/video] libdav1d: libdav1d 0.7.1
[vd] Selected codec: libdav1d (dav1d AV1 decoder by VideoLAN)
[vd] Decoder format: 1920x1080 yuv420p10 bt.2020-ncl/bt.2020/pq/limited/auto CL=unknown
VO: [gpu] 1920x1080 yuv420p10
<snp>
V: 00:00:25 / 00:05:39 (7%) Dropped: 929


Exiting... (Quit)

Benutzeravatar
habakug
Moderator
Beiträge: 4309
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: 10-bit AV1 videos stottern

Beitrag von habakug » 16.05.2021 19:54:01

Hallo,

hier ist es so, dass Debianmpv default keine HW-Beschleunigung verwendet. So steht es auch im Handbuch [1]:
mpv.io hat geschrieben:Hardware decoding is not enabled by default, because it is typically an additional source of errors. It is worth using only if your CPU is too slow to decode a specific video.
Hier default (av1 habe ich jetzt nicht direkt im Blick):

Code: Alles auswählen

$ mpv Japan\ in\ 8K\ -\ YouTube.webm 
 (+) Video --vid=1 (*) (vp9 3840x2160 23.976fps)
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
AO: [pulse] 48000Hz stereo 2ch float
VO: [gpu] 3840x2160 yuv420p
AV: 00:00:07 / 00:02:21 (6%) A-V:  0.000
Alle Kerne (hier acht) sind zu ca. 10-45% ausgelastet.
Hier mit "hwdec=auto":

Code: Alles auswählen

$ mpv --hwdec=auto Japan\ in\ 8K\ -\ YouTube.webm 
 (+) Video --vid=1 (*) (vp9 3840x2160 23.976fps)
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
Using hardware decoding (nvdec).
AO: [pulse] 48000Hz stereo 2ch float
VO: [gpu] 3840x2160 cuda[nv12]
AV: 00:00:30 / 00:02:21 (21%) A-V:  0.000
Die CPU-Aktivität sinkt auf ca. 2-5% pro Kern.
Hier wrkelt eine Nvidia-CPU.

Gruss, habakug

edit:
[1] https://mpv.io/manual/stable/#options-hwdec
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

dufty2
Beiträge: 1650
Registriert: 22.12.2013 16:41:16

Re: 10-bit AV1 videos stottern

Beitrag von dufty2 » 16.05.2021 20:06:51

Danke habakug für den Hinweis.
Meine iGPU hat aber, wie die Vorredner aufgelistet haben, leider keine Hardwarebeschleunigung für AV 1 :(

Code: Alles auswählen

$ mpv --hwdec=auto --msg-level=vo=v,vd=v,ffmpeg=v Bulgaria\ 8K\ HDR\ 60P\ \(FUHD\)-N1-Jmq7BLFE.mp4
<snip>
[vd] Not trying to use hardware decoding: codec av1 is not on whitelist.
[vd] Using software decoding.
<snip>
V: 00:00:01 / 00:05:39 (0%) Dropped: 55


Exiting... (Quit)

Benutzeravatar
willy4711
Beiträge: 5277
Registriert: 08.09.2018 16:51:16

Re: 10-bit AV1 videos stottern

Beitrag von willy4711 » 16.05.2021 20:16:06

Bei mir sieht das so aus (die IGPU kann auch kein av1) CPU ca 30 - 40 %

Code: Alles auswählen

~$ mpv --msg-level=vo=v,vd=v,ffmpeg=v /home/willy/Downloads/N1-Jmq7BLFE.mp4
 (+) Video --vid=1 (*) (av1 1920x1080 59.940fps)
[vo/gpu] Probing for best GPU context.
[vo/gpu/opengl] Initializing GPU context 'wayland'
[vo/gpu/opengl] Initializing GPU context 'x11egl'
[vo/gpu/x11] X11 opening display: :0.0
[vo/gpu/x11] Display 0 (DP-1): [0, 0, 3840, 2160] @ 60.000000 FPS
[vo/gpu/x11] Current display FPS: 60.000000
[vo/gpu/opengl] EGL_VERSION=1.5
[vo/gpu/opengl] EGL_VENDOR=Mesa Project
[vo/gpu/opengl] EGL_CLIENT_APIS=OpenGL OpenGL_ES 
[vo/gpu/opengl] Trying to create Desktop OpenGL context.
[vo/gpu/opengl] Choosing visual EGL config 0x15, visual ID 0x21
[vo/gpu/opengl] GL_VERSION='4.6 (Core Profile) Mesa 20.3.4'
[vo/gpu/opengl] Detected desktop OpenGL 4.6.
[vo/gpu/opengl] GL_VENDOR='Intel'
[vo/gpu/opengl] GL_RENDERER='Mesa Intel(R) UHD Graphics 630 (CFL GT2)'
[vo/gpu/opengl] GL_SHADING_LANGUAGE_VERSION='4.60'
[vo/gpu] Testing FBO format rgba16f
[vo/gpu] Using FBO format rgba16f.
[vo/gpu] No advanced processing required. Enabling dumb mode.
[vo/gpu] Assuming 60.000000 FPS for display sync.
[vd] Container reported FPS: 59.940060
[vd] Codec list:
[vd]     libdav1d (av1) - dav1d AV1 decoder by VideoLAN
[vd]     libaom-av1 (av1) - libaom AV1
[vd] Opening decoder libdav1d
[vd] No hardware decoding requested.
[vd] Using software decoding.
[vd] Detected 16 logical cores.
[vd] Requesting 16 threads for decoding.
[ffmpeg/video] libdav1d: libdav1d 0.8.2
[vd] Selected codec: libdav1d (dav1d AV1 decoder by VideoLAN)
[vd] Using software decoding.
[vd] Decoder format: 1920x1080 yuv420p10 bt.2020-ncl/bt.2020/pq/limited/auto CL=unknown
VO: [gpu] 1920x1080 yuv420p10
[vo/gpu] reconfig to 1920x1080 yuv420p10 bt.2020-ncl/bt.2020/pq/limited/display SP=49.261086 CL=mpeg2/4/h264
[vo/gpu] Resize: 1920x1080
[vo/gpu] Window size: 1920x1080 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 1920x1080 (1:1)
[vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1920x1080
[vo/gpu] Video scale: 1.000000/1.000000
[vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[vo/gpu] Video borders: l=0 t=0 r=0 b=0
[vo/gpu] Reported display depth: 8
[vo/gpu] Texture for plane 0: 1920x1080
[vo/gpu] Texture for plane 1: 960x540
[vo/gpu] Texture for plane 2: 960x540
[vo/gpu] Testing FBO format rgba16f
[vo/gpu] Using FBO format rgba16f.
[vo/gpu] No advanced processing required. Enabling dumb mode.
[vo/gpu/x11] Disabling screensaver.
V: 00:00:25 / 00:05:39 (8%) Dropped: 24
[vo/gpu] Reallocating OSD texture to 2048x256.
V: 00:00:47 / 00:05:39 (14%) Dropped: 37
[vo/gpu/x11] Enabling screensaver.

Exiting... (Quit)

dufty2
Beiträge: 1650
Registriert: 22.12.2013 16:41:16

Re: 10-bit AV1 videos stottern

Beitrag von dufty2 » 16.05.2021 20:59:32

Dank habakug hab ich jetzt
hwdec=auto
gleich in die mpv.conf eingebaut.

Schon erstaunlich, dass selbst bei den 16 cores von willy4711 es noch 40% Auslastung sind.

Falls es die Version 0.90 mit dem ASM von dav1d keine CPU-Wunder verbringt, werd ich wohl beim VP9 bleiben.

Benutzeravatar
willy4711
Beiträge: 5277
Registriert: 08.09.2018 16:51:16

Re: 10-bit AV1 videos stottern

Beitrag von willy4711 » 16.05.2021 21:50:39

meine ~/.config/mpv/mpv.conf auf die Intel IGPU bezogen:

Code: Alles auswählen

[HEVC]  
#--keep-open=yes
hwdec=vaapi
--window-scale=0.7
--autofit-larger=70%x60%
Blos leider mit dem av1 -Codec nicht

Benutzeravatar
hikaru
Moderator
Beiträge: 11517
Registriert: 09.04.2008 12:48:59

Re: 10-bit AV1 videos stottern

Beitrag von hikaru » 16.05.2021 22:23:26

dufty2 hat geschrieben: ↑ zum Beitrag ↑
16.05.2021 20:59:32
Schon erstaunlich, dass selbst bei den 16 cores von willy4711 es noch 40% Auslastung sind.
willy hat eine Intel-CPU mit Hyperthreading, was zumindest beim Decodieren von h264 und h265 nicht hilft. Ich vermute, bei av1 ist es genauso. Von den 16 "Kernen" bleiben also vielleicht nur die 8 echten Kerne übrig die zählen. Historisch (vor Zen) war es so, dass AMDs HT-Implementierung etwas näher an "echten" Zusatzkernen war. Ob das immer noch gilt und ob es ausreicht um bei der Videodecodierung einen Vorteil zu bringen weiß ich nicht.

Mich erstaunt eher, dass die CPU "nur" zu 40% ausgelastet ist. Als ich meinen ersten Beitrag hier schrieb hatte ich es auf einem AMD Ryzen 5 2600 probiert. Ich erinnere mich nicht mehr an die Details, aber der schaffte es nicht, das Video sauber in Echtzeit abzuspielen. Ich glaube es fehlte nicht viel, aber es waren noch zu viele Framedrops um von flüssiger Wiedergabe zu sprechen.
Andererseits sehe ich in willys Output, dass er zwar ein 2160p-Video abspielt, das Bild aber offenbar nur mit 1080p ausgibt. Ich hatte es auf einem 4k-Fernseher mit 2160p ausgegeben.

Benutzeravatar
willy4711
Beiträge: 5277
Registriert: 08.09.2018 16:51:16

Re: 10-bit AV1 videos stottern

Beitrag von willy4711 » 16.05.2021 23:01:44

hikaru hat geschrieben: ↑ zum Beitrag ↑
16.05.2021 22:23:26
willy hat eine Intel-CPU mit Hyperthreading, was zumindest beim Decodieren von h264 und h265 nicht hilft. Ich vermute, bei av1 ist es genauso. Von den 16 "Kernen" bleiben also vielleicht nur die 8 echten Kerne übrig die zählen.
Das ist nicht Richtig. H.265 wird sowohl encodiert als auch decodiert (https://ark.intel.com/content/www/de/de ... 0-ghz.html)
IGP Spezifikationen von Intel für UHD 630:
https://software.intel.com/content/www/ ... newer.html
So ist das Heutzutage. Der Rechner ist gerade mal 1,5 Jahre alt. Hab extra darauf geachtet. dass die (damals) aktuellen Codecs
verarbeitet werden können. Von AV1 war damals noch nicht die Rede, kann die GPU auch nicht :(
Und schon wieder Alteisen (bzw. Silizium)

Edit:

Mal im Vollbild- Modus: Da gibt es schon reichlich Drops

Code: Alles auswählen

 mpv --fs=yes --msg-level=vo=v,vd=v,ffmpeg=v ~/Downloads/N1-Jmq7BLFE.mp4
 (+) Video --vid=1 (*) (av1 1920x1080 59.940fps)
[vo/gpu] Probing for best GPU context.
[vo/gpu/opengl] Initializing GPU context 'wayland'
[vo/gpu/opengl] Initializing GPU context 'x11egl'
[vo/gpu/x11] X11 opening display: :0.0
[vo/gpu/x11] Display 0 (DP-1): [0, 0, 3840, 2160] @ 60.000000 FPS
[vo/gpu/x11] Current display FPS: 60.000000
[vo/gpu/opengl] EGL_VERSION=1.5
[vo/gpu/opengl] EGL_VENDOR=Mesa Project
[vo/gpu/opengl] EGL_CLIENT_APIS=OpenGL OpenGL_ES 
[vo/gpu/opengl] Trying to create Desktop OpenGL context.
[vo/gpu/opengl] Choosing visual EGL config 0x15, visual ID 0x21
[vo/gpu/opengl] GL_VERSION='4.6 (Core Profile) Mesa 20.3.4'
[vo/gpu/opengl] Detected desktop OpenGL 4.6.
[vo/gpu/opengl] GL_VENDOR='Intel'
[vo/gpu/opengl] GL_RENDERER='Mesa Intel(R) UHD Graphics 630 (CFL GT2)'
[vo/gpu/opengl] GL_SHADING_LANGUAGE_VERSION='4.60'
[vo/gpu] Testing FBO format rgba16f
[vo/gpu] Using FBO format rgba16f.
[vo/gpu] No advanced processing required. Enabling dumb mode.
[vo/gpu] Assuming 60.000000 FPS for display sync.
[vd] Container reported FPS: 59.940060
[vd] Codec list:
[vd]     libdav1d (av1) - dav1d AV1 decoder by VideoLAN
[vd]     libaom-av1 (av1) - libaom AV1
[vd] Opening decoder libdav1d
[vd] No hardware decoding requested.
[vd] Using software decoding.
[vd] Detected 16 logical cores.
[vd] Requesting 16 threads for decoding.
[ffmpeg/video] libdav1d: libdav1d 0.8.2
[vd] Selected codec: libdav1d (dav1d AV1 decoder by VideoLAN)
[vd] Using software decoding.
[vd] Decoder format: 1920x1080 yuv420p10 bt.2020-ncl/bt.2020/pq/limited/auto CL=unknown
VO: [gpu] 1920x1080 yuv420p10
[vo/gpu] reconfig to 1920x1080 yuv420p10 bt.2020-ncl/bt.2020/pq/limited/display SP=49.261086 CL=mpeg2/4/h264
[vo/gpu/x11] not waiting for MapNotify
[vo/gpu] Resize: 3840x2160
[vo/gpu] Window size: 3840x2160 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 1920x1080 (1:1)
[vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 3840x2160
[vo/gpu] Video scale: 2.000000/2.000000
[vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[vo/gpu] Video borders: l=0 t=0 r=0 b=0
[vo/gpu] Reported display depth: 8
[vo/gpu] Texture for plane 0: 1920x1080
[vo/gpu] Texture for plane 1: 960x540
[vo/gpu] Texture for plane 2: 960x540
[vo/gpu] Testing FBO format rgba16f
[vo/gpu] Using FBO format rgba16f.
[vo/gpu] No advanced processing required. Enabling dumb mode.
[vo/gpu/x11] Disabling screensaver.
V: 00:00:25 / 00:05:39 (7%) Dropped: 875
[vo/gpu/x11] Enabling screensaver.

Exiting... (Quit)

Benutzeravatar
hikaru
Moderator
Beiträge: 11517
Registriert: 09.04.2008 12:48:59

Re: 10-bit AV1 videos stottern

Beitrag von hikaru » 16.05.2021 23:56:01

willy4711 hat geschrieben: ↑ zum Beitrag ↑
16.05.2021 23:01:44
Das ist nicht Richtig. H.265 wird sowohl encodiert als auch decodiert (https://ark.intel.com/content/www/de/de ... 0-ghz.html)
Ich sprach von Software-Decodierung. Auf h264/h265 hatte ich nur verwiesen weil es mir dort aufgefallen war und ich dann Tests mit und ohne HT gemacht hatte.
willy4711 hat geschrieben: ↑ zum Beitrag ↑
16.05.2021 23:01:44
Mal im Vollbild- Modus: Da gibt es schon reichlich Drops
Das sieht schon anders aus. ;)

wanne
Moderator
Beiträge: 6859
Registriert: 24.05.2010 12:39:42

Re: 10-bit AV1 videos stottern

Beitrag von wanne » 17.05.2021 02:36:40

@hikaru du hast da ein paar mal versehentlich vp9 verwendet. Der ist natürlich flott.
Hier nochmal so der Vergleich der decodier Performance (bei mir auf dem Prozessor in ffmpeg):
libdav1d ist 3 mal schneller als libaom-av1
on2avc (h.264) 2.4 mal schneller als libdav1d.
h.265 ist 1.5 mal schneller als libdav1d
vp9 10% schneller als h.264
war es so, dass AMDs HT-Implementierung etwas näher an "echten" Zusatzkernen war
Wie an anderer Stelle festgestellt: AMD hat seine Benamung verkackt: Prinzipiell haben die ein Zweistufigeres Konzept keine ccx (Früher Modul) enthält mehrere Kerne die prinzipiell mehrere Threads können. Bei den bulldozen mir nur einen Thread pro Core haben die den Kern dann Complex Thread (Im unterschied zu simultaneous Thread) genannt.
Mehrere (simultaneous) Thread helfen beim reinen decoding defakto nie. Die Module sind stark unterschiedlich. – Der gemeinsam genutzte L3 Cache und Fetch-Unit schadet üblicherweise nicht. Die bei Bulldozern geteilte float-Einheit dagegen bei einigen Codecs schon. h.264 scheint defakto nur in Integer und hat sich nicht gestört.
Der Rechner ist gerade mal 1,5 Jahre alt. […] Von AV1 war damals noch nicht die Rede, kann die GPU auch nicht
Das ist ein bisschen ein Desktop Problem.
Realtek hat die ersten GPUs mit AV1-Support im Juni 2019 raus gebraucht. Für viele andere Arms sieht es ähnlich aus. Nur im Desktopbereich haben sie da irgend wie ewig gewartet.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
hikaru
Moderator
Beiträge: 11517
Registriert: 09.04.2008 12:48:59

Re: 10-bit AV1 videos stottern

Beitrag von hikaru » 17.05.2021 09:47:32

wanne hat geschrieben: ↑ zum Beitrag ↑
17.05.2021 02:36:40
@hikaru du hast da ein paar mal versehentlich vp9 verwendet. Der ist natürlich flott.
Ich habe hier noch keine Outputs gepostet die Rückschlüsse auf Codecs erlauben würden.
Meinst du habakug? Er wollte wohl nur den Unterschied in der CPU-Auslastung zwischen Hardware- und Software-Decodierung verdeutlichen. Dafür ist es prinzipiell egal welchen Codec man verwendet, vorausgesetzt, dieser erzeugt bei SW-Decodierung überhaupt nennenswerte Auslastung.

Benutzeravatar
habakug
Moderator
Beiträge: 4309
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: 10-bit AV1 videos stottern

Beitrag von habakug » 17.05.2021 17:21:00

Hallo,

ja, ich wollte nur darauf hinweisen, dass mpv default (= ohne Parameter) keine Hardwarebeschleunigung verwendet.

Es gibt auch exotische Herangehensweisen [1]. Jemand lässt mpv z.B. 15 Sekunden puffern, dann soll sich die Situation verbessern.
Und da @dufty2 die mpv.conf schon angefasst hat...
(Vorsicht exotisches Forum, zielt zunächst auf Microsoft OS ;-))

Gruss, habakug

[1] https://www.reddit.com/r/AV1/comments/g ... _playback/
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

dufty2
Beiträge: 1650
Registriert: 22.12.2013 16:41:16

Re: 10-bit AV1 videos stottern

Beitrag von dufty2 » 17.05.2021 19:20:02

Danke habakug für den Link.

Aber scheint mit meinem testing-mpv irgendwie nicht zu klappen:

Code: Alles auswählen

$ mpv Bulgaria\ 8K\ HDR\ 60P\ \(FUHD\)-N1-Jmq7BLFE.mp4 
Error parsing option vd-queue-enable (option not found)
/home/user/.config/mpv/mpv.conf:2: setting option vd-queue-enable='yes' failed.
Error parsing option ad-queue-enable (option not found)
/home/user/.config/mpv/mpv.conf:3: setting option ad-queue-enable='yes' failed.
Error parsing option vd-queue-max-bytes (option not found)
/home/user/.config/mpv/mpv.conf:4: setting option vd-queue-max-bytes='6000MiB' failed.
Error parsing option vd-queue-max-samples (option not found)
/home/user/.config/mpv/mpv.conf:5: setting option vd-queue-max-samples='2000000' failed.
Error parsing option vd-queue-max-secs (option not found)
/home/user/.config/mpv/mpv.conf:6: setting option vd-queue-max-secs='50' failed.
 (+) Video --vid=1 (*) (av1 1920x1080 59.940fps)
[vo/gpu/wayland] GNOME's wayland compositor is known to have many serious issues with mpv. Switch to GNOME's xorg session for the best experience.
VO: [gpu] 1920x1080 yuv420p10
V: 00:00:03 / 00:05:39 (1%) Dropped: 103


Exiting... (Quit)

dufty2
Beiträge: 1650
Registriert: 22.12.2013 16:41:16

Re: 10-bit AV1 videos stottern

Beitrag von dufty2 » 17.05.2021 20:19:08

Das Release 0.9 ist jetzt erschienen [vgl. https://www.phoronix.com/scan.php?page= ... Benchmarks ]
und in experimental gibt es auch schon als Paket.
Leider funzt es scheinbar unter testing nicht :(

Code: Alles auswählen

$ mpv Bulgaria\ 8K\ HDR\ 60P\ \(FUHD\)-N1-Jmq7BLFE.mp4 
 (+) Video --vid=1 (*) (av1 1920x1080 59.940fps)
[vo/gpu/wayland] GNOME's wayland compositor is known to have many serious issues with mpv. Switch to GNOME's xorg session for the best experience.
Input validation check 's->n_postfilter_threads >= 1 && s->n_postfilter_threads <= DAV1D_MAX_POSTFILTER_THREADS' failed in dav1d_open!
Could not open codec.
Decoder init failed for libdav1d
VO: [gpu] 1920x1080 yuv420p10
V: 00:00:02 / 00:05:39 (0%) Dropped: 55


Exiting... (Quit)

wanne
Moderator
Beiträge: 6859
Registriert: 24.05.2010 12:39:42

Re: 10-bit AV1 videos stottern

Beitrag von wanne » 17.05.2021 22:48:55

Meinst du habakug?
Ja. Grünen name gesehen und intuitiv mit dir verbunden... Sorry.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten