Encodeurs AV1¶
Video Capture SDK .Net Video Edit SDK .Net Media Blocks SDK .Net
VideoCaptureCoreX VideoEditCoreX MediaBlocksPipeline
VisioForge prend en charge plusieurs implémentations d'encodeurs AV1, chacune avec ses propres fonctionnalités et capacités. Ce document couvre les encodeurs disponibles et leurs options de configuration.
Actuellement, les encodeurs AV1 sont pris en charge dans les moteurs multiplateformes : VideoCaptureCoreX, VideoEditCoreX et Media Blocks SDK.
Encodeurs disponibles¶
- Encodeur AMD AMF AV1 (AMF)
- Encodeur NVIDIA NVENC AV1 (NVENC)
- Encodeur Intel QuickSync AV1 (QSV)
- Encodeur AOM AV1
- Encodeur RAV1E
Vous pouvez utiliser l'encodeur AV1 avec une sortie WebM ou pour le streaming réseau.
Encodeur AMD AMF AV1¶
L'encodeur AMD AMF AV1 fournit un encodage accéléré par le matériel utilisant les cartes graphiques AMD.
Fonctionnalités¶
- Plusieurs préréglages de qualité
- Modes de contrôle de débit variable
- Contrôle de la taille de GOP
- Contrôle du QP (paramètre de quantification)
- Prise en charge de Smart Access Video
Modes de contrôle de débit¶
Default: dépend de l'usageCQP: QP constantLCVBR: VBR contraint par latenceVBR: VBR contraint par crêteCBR: débit constant
Exemple d'utilisation¶
var encoderSettings = new AMFAV1EncoderSettings
{
Bitrate = 3000, // 3 Mbps
GOPSize = 30, // Taille de GOP de 30 images
Preset = AMFAV1EncoderPreset.Quality, // Préréglage qualité
RateControl = AMFAV1RateControlMode.VBR, // Mode débit variable
Usage = AMFAV1EncoderUsage.Transcoding, // Usage transcodage
MaxBitrate = 5000, // Débit max 5 Mbps
QpI = 26, // QP des I-frames
QpP = 26, // QP des P-frames
RefFrames = 1, // Nombre d'images de référence
SmartAccessVideo = false // Smart Access Video désactivé
};
Encodeur NVIDIA NVENC AV1¶
L'encodeur NVENC AV1 de NVIDIA fournit un encodage accéléré par le matériel utilisant les GPU NVIDIA.
Fonctionnalités¶
- Plusieurs préréglages d'encodage
- Prise en charge des B-frames adaptatifs
- AQ temporelle (quantification adaptative)
- Contrôle de tampon VBV (Video Buffering Verifier)
- Prise en charge de l'AQ spatiale
Modes de contrôle de débit¶
Default: mode par défautConstQP: paramètre de quantification constantCBR: débit constantVBR: débit variableCBR_LD_HQ: CBR basse latence, haute qualitéCBR_HQ: CBR, haute qualité (plus lent)VBR_HQ: VBR, haute qualité (plus lent)
Exemple d'utilisation¶
var encoderSettings = new NVENCAV1EncoderSettings
{
Bitrate = 3000, // 3 Mbps
Preset = NVENCPreset.HighQuality, // Préréglage haute qualité
RateControl = NVENCRateControl.VBR, // Mode débit variable
GOPSize = 75, // Taille de GOP de 75 images
MaxBitrate = 5000, // Débit max 5 Mbps
BFrames = 2, // 2 B-frames entre I et P
RCLookahead = 8, // Look-ahead de 8 images
TemporalAQ = true, // Activer l'AQ temporelle
Tune = NVENCTune.HighQuality, // Réglage haute qualité
VBVBufferSize = 6000 // Tampon VBV de 6000k
};
Encodeur Intel QuickSync AV1¶
L'encodeur QuickSync AV1 d'Intel fournit un encodage accéléré par le matériel utilisant les GPU Intel.
Fonctionnalités¶
- Prise en charge du mode basse latence
- Target usage configurable
- Contrôle des images de référence
- Paramètres flexibles de taille de GOP
Modes de contrôle de débit¶
CBR: débit constantVBR: débit variableCQP: quantificateur constant
Exemple d'utilisation¶
var encoderSettings = new QSVAV1EncoderSettings
{
Bitrate = 2000, // 2 Mbps
LowLatency = false, // Mode latence standard
TargetUsage = 4, // Qualité/vitesse équilibrées
GOPSize = 30, // Taille de GOP de 30 images
MaxBitrate = 4000, // Débit max 4 Mbps
QPI = 26, // QP des I-frames
QPP = 28, // QP des P-frames
RateControl = QSVAV1EncRateControl.VBR, // Mode débit variable
RefFrames = 1 // Nombre d'images de référence
};
Encodeur AOM AV1¶
L'encodeur AV1 de l'Alliance for Open Media (AOM) est une implémentation logicielle de référence.
Fonctionnalités¶
- Paramètres de contrôle de tampon
- Optimisation de l'utilisation CPU
- Prise en charge de l'abandon d'images
- Capacités multithreading
- Prise en charge de la super-résolution
Modes de contrôle de débit¶
VBR: mode débit variableCBR: mode débit constantCQ: mode qualité contrainteQ: mode qualité constante
Exemple d'utilisation¶
var encoderSettings = new AOMAV1EncoderSettings
{
BufferInitialSize = TimeSpan.FromMilliseconds(4000),
BufferOptimalSize = TimeSpan.FromMilliseconds(5000),
BufferSize = TimeSpan.FromMilliseconds(6000),
CPUUsed = 4, // Niveau d'utilisation CPU
DropFrame = 0, // Désactiver l'abandon d'images
RateControl = AOMAV1EncoderEndUsageMode.VBR, // Mode débit variable
TargetBitrate = 256, // 256 Kbps
Threads = 0, // Nombre de threads automatique
UseRowMT = true, // Activer le multithreading par ligne
SuperResMode = AOMAV1SuperResolutionMode.None // Pas de super-résolution
};
Encodeur RAV1E¶
RAV1E est un encodeur AV1 rapide et sûr écrit en Rust.
Fonctionnalités¶
- Contrôle du préréglage de vitesse
- Paramètres de quantificateur
- Contrôle de l'intervalle d'images-clés
- Mode basse latence
- Réglage psychovisuel
Exemple d'utilisation¶
var encoderSettings = new RAV1EEncoderSettings
{
Bitrate = 3000, // 3 Mbps
LowLatency = false, // Mode latence standard
MaxKeyFrameInterval = 240, // Intervalle maximum entre images-clés
MinKeyFrameInterval = 12, // Intervalle minimum entre images-clés
MinQuantizer = 0, // Valeur minimale du quantificateur
Quantizer = 100, // Valeur de base du quantificateur
SpeedPreset = 6, // Préréglage de vitesse (0-10)
Tune = RAV1EEncoderTune.Psychovisual // Réglage psychovisuel
};
Notes d'utilisation générales¶
- Tous les encodeurs implémentent l'interface
IAV1EncoderSettings, offrant un moyen cohérent de créer des blocs d'encodeur. - Chaque encodeur a son propre ensemble d'optimisations et de compromis.
- Les encodeurs matériels (AMF, NVENC, QSV) offrent généralement de meilleures performances mais peuvent avoir des exigences matérielles spécifiques.
- Les encodeurs logiciels (AOM, RAV1E) offrent plus de flexibilité mais peuvent nécessiter plus de ressources CPU.
Recommandations¶
- Pour les GPU AMD : utilisez l'encodeur AMF
- Pour les GPU NVIDIA : utilisez l'encodeur NVENC
- Pour les GPU Intel : utilisez l'encodeur QSV
- Pour la qualité maximale : utilisez l'encodeur AOM
- Pour un encodage efficace en CPU : utilisez l'encodeur RAV1E
Bonnes pratiques¶
- Vérifiez toujours la disponibilité de l'encodeur avant de l'utiliser
- Définissez des débits appropriés à votre résolution et fréquence d'images cibles
- Utilisez des tailles de GOP appropriées au type de contenu
- Tenez compte du compromis entre qualité et vitesse d'encodage
- Testez différents modes de contrôle de débit pour trouver le meilleur ajustement pour votre cas d'usage