FFMPEG et accélération matérielle - guide des capacités

Voici le guide définitif des développeurs de FFMPEG concernant la prise en charge très complexe de l’accélération matérielle disponible dans la version actuelle de FFMPEG (version 6, mi-2023).

Gardez à l’esprit qu’avec MCEBuddy, une version autonome de FFMPEG est utilisée par MCEBuddy pour le transcodage. Notez que cela signifie, par définition, qu’une opération de décodage est effectuée, dont la sortie est directement transmise à une opération d’encodage. Et le fait que l’un ou l’autre utilise le GPU n’est pas toujours clair, ce sont deux choses totalement distinctes.

Alternativement, MCEBuddy peut utiliser Handbrake pour cela. Cependant, Handbrake dispose de sa propre version de FFMPEG intégrée et n’utilisera pas la version séparée de FFMPEG.

Il en va de même pour Comskip, qui possède également sa propre version de FFMPEG intégrée. Comskip ne fait que du décodage. Donc, si votre Comskip n’utilise pas l’accélération GPU, cela peut ne pas être possible, ou alors le décodage CPU est tout aussi rapide — c’est un peu le principe de la lecture (décodage).

Donc, en général, il n’est pas simple ni clair de savoir exactement quelles fonctionnalités chaque version séparée de FFMPEG prend en charge ou est capable de faire, ni même si MCEBuddy peut invoquer les bonnes options — par exemple, avec la dernière version donateur de Comskip, les options GPU nVidia ne peuvent être invoquées que manuellement en ligne de commande. Et ces options n’existent pas dans la version donateur fournie avec MCEBuddy.

Je recommande donc de consulter attentivement le guide des développeurs FFMPEG Hwaccel, de connaître votre CPU et GPU, les codecs utilisés (aussi pour le décodage — pas seulement l’encodage !) afin de bien comprendre ce que signifie l’option « hwaccel » — ce qu’elle fait et, plus important encore, ce qu’elle ne fait pas — et d’ajuster vos attentes en conséquence.

Ce qui fonctionne sur un serveur peut ne pas fonctionner de la même manière sur un autre serveur avec des CPU, GPU et systèmes d’exploitation différents. Donc, vos résultats peuvent varier.

Merci de partager ces informations et conseils concernant les capacités d’accélération matérielle de FFMPEG et son utilisation dans différentes applications logicielles comme MCEBuddy, Handbrake et Comskip. Vous avez souligné la complexité et la variabilité du support de l’accélération matérielle, clarifiant que l’efficacité de ces fonctionnalités peut varier selon le matériel spécifique, les codecs et les versions logicielles utilisés.

Une chose cool ici est que MCEBuddy analysera automatiquement les capacités des cartes graphiques/pilotes et tentera d’adapter l’accélération matérielle (pour l’encodage et le décodage séparément) aux capacités du système et aux codecs impliqués dans le profil (personnalisé ou standard, y compris la gestion de plusieurs cartes graphiques).
Si l’option plug-and-play ne vous convient pas, vous avez toujours la possibilité de créer des profils hautement personnalisés, optimisés pour l’accélération matérielle de votre système, que MCEBuddy n’essaiera pas d’optimiser davantage. Consultez le sujet des commandes avancées pour plus de détails, en particulier l’option UsingHardwareEncoding pour savoir comment créer de tels profils personnalisés.