web-dev-qa-db-fra.com

Comment utiliser l'accélération GPU dans FFmpeg avec AMD Radeon?

J'ai une Radeon Vega 64 et j'ai installé AMDGPU sur le site officiel, mais je ne sais pas où aller à partir d'ici.

Je veux utiliser l'accélération matérielle pour convertir la vidéo avec FFmpeg. Qu'est-ce que la commande FFmpeg correspondante et comment dois-je aimer le périphérique/pilote pour FFmpeg?

4
Googlebot

Je vais fournir des instructions pour Windows et Linux, car vous n'avez pas indiqué sur quelle plateforme vous vous trouvez. Utilisez ces instructions applicables à votre cas.

Si vous êtes sous Windows, vous pouvez accéder aux encodeurs associés via AMF, bien nommé h264_amf et hevc_amf, dont l'utilisation peut être consultée via:

ffmpeg -h encoder=h264_amf

ffmpeg -h encoder=hevc_amf

Vous auriez besoin de construire un binaire FFmpeg pour Windows, soit nativement, soit comme recommandé, une compilation croisée. This project est un bon début sur ce sujet.

Si vous utilisez l'option de compilation croisée, passez les arguments ci-dessous pour une build avec les fonctionnalités dont vous aurez besoin:

./cross_compile_ffmpeg.sh --gcc-cpu-count=12  --build-libmxf=n --disable-nonfree=n --prefer-stable=y --compiler-flavors=multi

Notez que la construction résultante ci-dessus est non redistribuable , et est uniquement pour un usage personnel.

Sous Linux, en utilisant le pilote open source mesa amdgpu (et non le package propriétaire installé à partir d'AMD), vous pouvez accéder aux encodeurs basés sur VAAPI, bien nommés h264_vaapi et hevc_vaapi, dont l'utilisation peut être consultée via:

ffmpeg -h encoder=h264_vaapi

ffmpeg -h encoder=hevc_vaapi

À ma connaissance (corrigez-moi si je me trompe), l'encodage VP8 et VP9 n'est pas exposé du côté d'AMD via VAAPI. Vous pouvez le confirmer en exécutant:

vainfo | grep Slice

Sur votre système et en confirmant quels encodeurs sont pris en charge. Il est très probable que FFmpeg avec VAAPI activé soit la valeur par défaut sur Ubuntu. Cependant, vous pouvez également créer une copie à partir de la source, si nécessaire. Voir le guide de compilation sur le Wiki FFmpeg , et adaptez-le au besoin. Vous pouvez également trouver des aides, telles que ceci , utiles.

Il est possible que les encodeurs basés sur AMD AMF finissent par atterrir sur Linux, en utilisant une interopérabilité basée sur Vulkan. Prenez cela comme un travail en cours .

4
林正浩