Configuration avancée de FFmpeg
Cette page liste les fonctionnalités configurables du backend FFmpeg. Toutes les fonctionnalités font partie de l'API privée et peuvent être modifiées ou supprimées dans le futur sans confirmation. Soyez conscient que les variables d'environnement sont par défaut héritées par les processus enfants et peuvent avoir des conséquences inattendues.
Activer la journalisation à partir de FFmpeg et du backend média Qt FFmpeg
Vous pouvez configurer la journalisation avancée de FFmpeg via des variables d'environnement.
QT_FFMPEG_DEBUG=1active la journalisation supplémentaire de la bibliothèque FFmpeg et peut vous aider à comprendre les problèmes qui impliquent la bibliothèque FFmpeg.QT_LOGGING_RULES="*.ffmpeg.*=true"active les journaux des développeurs Qt dans le plugin FFmpeg. Les catégories de journalisation dans le plugin FFmpeg sont généralement appelées "qt.multimedia.ffmpeg.XXX". Pour activer les journaux des développeurs de tous les sites Qt Multimedia, définissezQT_LOGGING_RULES="*.multimedia.*=true"- Si vous définissez à la fois
QT_FFMPEG_DEBUGetQT_LOGGING_RULES, tous les codecs FFmpeg disponibles seront affichés la première fois que la fonctionnalité d'encodage ou de décodage est utilisée à partir de QMediaPlayer, QAudioDecoder, ou QMediaRecorder. Cette information peut vous aider à comprendre les situations où Qt Multimedia ne trouve pas de décodeur ou d'encodeur FFmpeg approprié. Nous recommandons d'attacher le dump du codec aux rapports de bogues de Qt si vous rencontrez des problèmes spécifiques au codec.
Activer les codecs expérimentaux de FFmpeg
FFmpeg expose quelques codecs, comme Opus ou Vorbis, en tant que codecs expérimentaux. Les codecs expérimentaux ne suivent pas strictement les standards et peuvent être instables. Ils sont désactivés par défaut. Pour les activer, définissez la variable d'environnement QT_ENABLE_EXPERIMENTAL_CODECS=1.
Configuration des protocoles réseau autorisés
Pour des raisons de sécurité, la bibliothèque FFmpeg restreint l'utilisation des protocoles imbriqués, c'est-à-dire des protocoles utilisés par d'autres protocoles ; voir la documentation sur les protocoles FFmpeg. Vous pouvez explicitement surcharger les protocoles autorisés via la variable d'environnement QT_FFMPEG_PROTOCOL_WHITELIST, par exemple :
export QT_FFMPEG_PROTOCOL_WHITELIST=file,crypto,rtp,udp
Avertissement : Notez que les protocoles imbriqués peuvent introduire des vulnérabilités de sécurité lorsqu'ils sont utilisés avec des données non fiables. N'autorisez que les protocoles qui correspondent à vos exigences en matière de sécurité et d'activité.
Configurer l'accélération matérielle dans les backends
- Accélération matérielle explicite du décodage et de l'encodage dans les backends.
Le plugin FFmpeg choisit le backend d'accélération matérielle pour le décodage et l'encodage en fonction de la disponibilité, de la stabilité, de l'efficacité et des détails de l'implémentation. Si le backend matériel sélectionné ne fonctionne pas comme prévu, vous pouvez essayer de définir une liste de priorités personnalisée ou de désactiver tous les backends matériels via les variables d'environnement
QT_FFMPEG_DECODING_HW_DEVICE_TYPESetQT_FFMPEG_ENCODING_HW_DEVICE_TYPES. Les backends matériels disponibles sont les suivants :- cuda
- drm
- dxva2
- d3d11va
- d3d12va,
- opencl
- qsv
- vaapi
- vdpau
- videotoolbox
- mediacodec
- vulkan
Cependant, la disponibilité des backends matériels dépend du système d'exploitation, des pilotes installés, de la version de FFmpeg et de la configuration. Il est important de garder à l'esprit que certains types de périphériques n'ont pas été testés avec Qt Multimedia par les responsables de Qt Test, et peuvent ne pas fonctionner comme prévu. Au moment de la rédaction de ce document, ces backends incluent :
- drm
- opencl
- qsv
- vdpau
- vulkan
Exemples :
# Set vdpau or cuda encoding hardware backends export QT_FFMPEG_ENCODING_HW_DEVICE_TYPES=vdpau,cuda # Set only d3d12va decoding hardware backend export QT_FFMPEG_DECODING_HW_DEVICE_TYPES=d3d12va # Disable decoding hw backends (set an empty list) export QT_FFMPEG_DECODING_HW_DEVICE_TYPES=,
- Conversion des textures matérielles.
L'utilisation de la conversion basée sur le GPU pour les images vidéo décodées et rendues peut réduire de manière significative l'utilisation du CPU. Nous nous efforçons d'utiliser cette fonctionnalité avec le plus grand nombre possible de backends matériels. Si vous remarquez des problèmes de rendu, envisagez de tester le rendu sans la conversion de texture GPU afin d'en identifier la cause. Vous pouvez désactiver la conversion de texture GPU en utilisant la variable d'environnement
QT_DISABLE_HW_TEXTURES_CONVERSION:QT_DISABLE_HW_TEXTURES_CONVERSION=1. Avec le backend matérielVAAPI, la conversion de texture matérielle est désactivée par défaut. DéfinissezQT_XCB_GL_INTEGRATION=xcb_eglpour l'activer. - Autoriser la non-concordance des profils de codec.
Si le profil du codec ne correspond pas aux capacités signalées du matériel, vous pouvez ignorer la non-concordance et autoriser le décodage matériel via
QT_FFMPEG_HW_ALLOW_PROFILE_MISMATCH=1. La définition de cette option peut être utile, par exemple, lorsque vous utilisez le décodage matériel accéléré pour le profil de base H.264 avec le backend matérielVAAPI, car la plupart de ces flux satisfont aux contraintes du décodeur matériel H.264 existant.Attention : Si le flux n'est pas pris en charge, le décodage matériel imposé peut entraîner une sortie vidéo totalement incorrecte.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.