Avec Chrome Dev sous Linux (Intel Core i7-11850H) :
- la vidéo HEVC 360p ne se décode pas non plus
- les vidéos 2160p H264/VP9/AV1 sont bien décodées, mais parfois de manière accélérée, parfois non
- les vidéos 1440p et 4320p sont décodées mais les couleurs sont décalées (problème de rendu ?)
La vidéo HEVC 360p :
- se décode en HW avec "ffplay -vcodec hevc_qsv", avec uniquement un avertissement "Unknown HEVC profile: 0"
- se décode en HW avec "gst-play-1.0" (VAAPI)
- se décode en SW avec "ffmpeg -hwaccel vaapi -i 201411_blender_big_buck_bunny_24fps_360p_hevc.mp4 -f null -"
[hevc @ 0x56266fd6ea40] Unknown HEVC profile: 0
...
[hevc @ 0x56266fd6ea40] HEVC profile is not found.
[hevc @ 0x56266fd6ea40] No support for codec hevc profile 0.
[hevc @ 0x56266fd6ea40] Failed setup for format vaapi: hwaccel initialisation returned error.
- se décode en SW avec "mpv --hwdec=vaapi" :
[ffmpeg/video] hevc: Unknown HEVC profile: 0
[ffmpeg/video] hevc: Unknown HEVC profile: 0
[ffmpeg/video] hevc: HEVC profile is not found.
[ffmpeg/video] hevc: No support for codec hevc profile 0.
[ffmpeg/video] hevc: Unknown HEVC profile: 0
[ffmpeg/video] hevc: Unknown HEVC profile: 0
Donc on dirait que ce vieil encodage n'a pas l'information correcte sur le profil, et selon les programmes ça peut poser problème :
- ffmpeg semble le passer tel quel, et VAAPI n'aime pas
- GstH265Parse (GStreamer) donne "profile=(string)main", et derrière VAAPI décode sans problème
La vidéo 4320p AV1 fonctionne plus ou moins selon les cas :
- "mpv --hwdec=vaapi" fonctionne parfaitement
- gst-play-1.0 utilise le décodage HW (VAAPI), mais a besoin de --videosink=vaapisink (ou --videosink=glimagesink qui consomme un peu plus), par défaut il choisit xvimagesink qui n'est pas fluide
- vlc essaye de la décoder en logiciel (libdav1d), forcément çe ne passe pas (peut-être que
https://code.videolan.org/videolan/vlc/-/merge_requests/2459 corrigera)
- ffplay utilise libdav1d par défaut, et si je force le HW (-vcodec av1_qsv) je n'ai pas d'erreur mais un écran noir
- la ligne de commande ffmpeg peut utiliser qsv ou vaapi, mais il y a toujours un passage par le CPU pour une conversion (la sortie OpenGL ne supporte pas le NV12), ce qui est très couteux