Je fournirai des instructions pour Windows et Linux, puisque vous n'avez pas indiqué sur quelle plate-forme vous travaillez. Utilisez les instructions qui s'appliquent à votre cas.
Si vous êtes sous Windows, vous pouvez accéder aux encodeurs correspondants via l'AMF, judicieusement nommée h264_amf
y hevc_amf
dont l'utilisation peut être consultée via :
ffmpeg -h encoder=h264_amf
ffmpeg -h encoder=hevc_amf
Vous devrez construire un binaire FFmpeg pour Windows, soit en mode natif, soit, comme recommandé, par compilation croisée. Le présent est un excellent point de départ sur ce sujet.
Si vous utilisez l'option de compilation croisée, passez les arguments ci-dessous pour obtenir une compilation 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 le résultat de la construction ci-dessus est non redistribuable et n'est destiné qu'à un usage personnel.
Sous Linux, en utilisant le pilote opensource tabla amdgpu (et non le paquet propriétaire installé par AMD), vous pouvez accéder à des encodeurs basés sur VAAPI, judicieusement nommés h264_vaapi et hevc_vaapi, dont l'utilisation peut être visualisé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 lançant :
vainfo | grep Slice
sur votre système et de confirmer quels encodeurs sont pris en charge. Il est très probable que FFmpeg avec VAAPI activé soit le système par défaut sur des systèmes comme Ubuntu. Cependant, vous pouvez aussi construire une copie à partir des sources, si nécessaire. Voir le guide de compilation sur le Wiki FFmpeg et s'adapter si nécessaire. Vous pouvez également trouver des aides, telles que este utile.
Il est possible que les encodeurs AMD basés sur l'AMF atterrissent un jour sur Linux, en utilisant un interopérable basé sur Vulkan. Prenons cela comme une travaux en cours .