Va-API, l'extension au serveur X développé par Intel pour permettre l'accélération matérielle des codecs Videos commence à devenir de plus en plus adoptée.
En effet, outre Intel et S3 qui supportent cette API nativement sur certaines de leurs cartes, un backend vdpau (extension de Nvidia concurrente) est disponible depuis quelques temps au public chez .splitted-desktop, surtout depuis que NVidia à sortie une bibliothèque open-source pour en tirer partis.
Ils viennent de rendre accessible le backend XvBa (extension concurrente d' ATI/Amd), mais ce backend n'est qu'un backend binaire. La librairie XvBa restant toujours fermée.
On se doute que splitted-desktop à du signer un NDA (Non Disclosure Aggreement) avec Amd pour pouvoir développer une telle librairie qui doit obligatoirement fonctionner avec les drivers propriétaires de Amd.
Il n'empêche que désormais, l'accélération matérielle des codecs sous Linux peut être utilisée de manière unifiée via Va-API, ce qui est une grosse avancée par rapport à quelques mois, ou Linux était délaissé par rapport aux plateformes de Microsoft.
Pour ma part, j'espère qu'un state-tracker pour Va-API soit implémenté dans Gallium3D (aujourd'hui seul un state-tracker pour XvMc est en cours de développement), ce qui permettra un support plus large de cette API dans les drivers open-sources.
lien vers les backend pour Va-API : http://www.splitted-desktop.com/~gbeauchesne/
# Des précisions ?
Posté par Olivier (site web personnel) . Évalué à 5.
Pratiquement, ça veut dire qu’en installant va-api et xvba-vidéo, on obtient de l’accélération vidéo avec une ati tournant avec fglrx ?
[^] # Re: Des précisions ?
Posté par dguihal . Évalué à 5.
[^] # Re: Des précisions ?
Posté par Olivier Esver (site web personnel) . Évalué à 4.
S'il y a un problème, il y a une solution; s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
[^] # Re: Des précisions ?
Posté par dguihal . Évalué à 3.
[^] # Re: Des précisions ?
Posté par Gwenole Beauchesne . Évalué à 3.
Ainsi que les vieux RS780G et RS780E.
[^] # Re: Des précisions ?
Posté par dguihal . Évalué à 2.
donc si tu as plus de précision sur le sujet je suis très intéressé.
[^] # Re: Des précisions ?
Posté par Gwenole Beauchesne . Évalué à 4.
[^] # Re: Des précisions ?
Posté par Olivier (site web personnel) . Évalué à 3.
[^] # Re: Des précisions ?
Posté par Victor STINNER (site web personnel) . Évalué à 3.
[^] # Re: Des précisions ?
Posté par Olivier (site web personnel) . Évalué à 1.
AVI file format detected.
[aviheader] Video stream found, -vid 0
[aviheader] Audio stream found, -aid 1
VIDEO: [DIV3] 640x344 24bpp 25.000 fps 910.7 kbps (111.2 kbyte/s)
libva: libva version 0.31.0-sds3
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/va/drivers/fglrx_drv_video.so
libva: va_openDriver() returns 0
Opening video filter: [scale]
Opening video filter: [spp]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
[VD_FFMPEG] VA API accelerated codec.
[VD_FFMPEG] Trying pixfmt=0.
Unsupported PixelFormat -1
[PP] Using external postprocessing filter, max q = 6.
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
Unsupported PixelFormat -1
[msmpeg4 @ 0xd75e60]decoding to PIX_FMT_NONE is not supported.
Could not open codec.
VDecoder init failed :(
Requested video codec family [divxds] (vfm=dshow) not available.
Enable it at compilation.
Requested video codec family [divx] (vfm=vfw) not available.
Enable it at compilation.
Requested video codec family [divx4vfw] (vfm=vfw) not available.
Enable it at compilation.
Cannot find codec matching selected -vo and video format 0x33564944.
==========================================================================
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 96.0 kbit/6.25% (ratio: 12000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
AO: [pulse] 48000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 15.0 (15.0) of 58956.9 (16:22:36.9) 0.5%
lancé avec -vo vaapi -va vaapi -vf spp,scale
Si il y a un endroit — forum, bugtracker — plus approprié pour ça que les commentaires de linuxfr, je suis preneur.
[^] # Re: Des précisions ?
Posté par Gwenole Beauchesne . Évalué à 2.
Et pourquoi ainsi?
1) La doc mentionne que cette version ne supporte que le rendu OpenGL. Donc il faut utiliser l'option 'gl' au VO, soit -vo vaapi:gl
2) Que fait -vf spp,scale?
[^] # Re: Des précisions ?
Posté par Olivier (site web personnel) . Évalué à 1.
-vf spp,scale je l’ai ajouté après que mplayer m’a donné une erreur avec ce moyen comme possible solution.
-vo vaapi:gl ne fonctionne pas non plus…
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
[VD_FFMPEG] VA API accelerated codec.
[VD_FFMPEG] Trying pixfmt=0.
Unsupported PixelFormat -1
Movie-Aspect is undefined - no prescaling applied.
VO: [vaapi] 608x256 => 608x256 MPEG-4 VA API Acceleration
FATAL: Cannot initialize video driver.
[VD_FFMPEG] Trying pixfmt=1.
Unsupported PixelFormat -1
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
Unsupported PixelFormat -1
Unsupported PixelFormat -1
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
[^] # Re: Des précisions ?
Posté par Gwenole Beauchesne . Évalué à 5.
En y regardant de plus près, tu essaies un fichier DivX (MPEG-4 ASP), ce qui n'est pas la même chose que H.264 (MPEG-4 AVC). L'UVD2 ne supporte pas le DivX, uniquement H.264, VC-1 et MPEG-2, dans une moindre mesure.
[^] # Re: Des précisions ?
Posté par Olivier (site web personnel) . Évalué à 2.
# Encore plus de précision...
Posté par krumtrash . Évalué à 2.
- il faut quelle version du noyau?
- il faut quelle version de Xorg et du driver Intel?
Après suffit-il d'avoir une appli supportant va-api comme un mplayer recompilé avec le support?
Faut-il ajouter une autre couche?
Merci.
*: seule le GMA500 est supporté? D'après http://www.freedesktop.org/wiki/Software/vaapi, le G965 est aussi supporté.
[^] # Re: Encore plus de précision...
Posté par Gwenole Beauchesne . Évalué à 2.
- Ubuntu 8.04 + GMA500 2.2.0.32L.0020 au 2.3.2.32L.0038
- Ubuntu 9.04 + GMA500 5.0.1.0046
- Ubuntu 9.04 + IEGD 10.x et en particulier 10.2
Concernant le G45 (i965, GM4500HD, etc.), il faut un driver Intel suffisamment récent supportant DRI2. En particulier, ça fonctionne out-of-the-box sur une Ubuntu 9.10 + libVA SDS bien sûr.
D'autres drivers ou back-ends seront annoncés plus tard quand ils seront disponibles.
Après suffit-il d'avoir une appli supportant va-api comme un mplayer recompilé avec le support?
Oui.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.