Qualité XSplit, tampon VBV et paramètres prédéfinis
- Melvin Dichoso
- 2 mars 2016
- 7 min de lecture
Dernière mise à jour : 15 sept.
XSplit utilise l'encodeur x264, commençons donc par dire que les paramètres mentionnés dans le titre, à l'exception des paramètres de qualité, signifient la même chose que les paramètres du wiki x264 ici.
Qualité
Puisque la qualité est différente, commençons par en discuter précisément. En x264, la qualité est appelée facteur CRF (Constant Rate Factor). L'encodeur accepte toute valeur comprise entre CRF = 0 (sans perte) et CRF = 51 (qualité médiocre).
Lors de l'encodage d'un flux vidéo, différents schémas de contrôle du débit peuvent généralement être appliqués. XSplit utilise un contrôle du débit basé sur la qualité, qui cible une qualité particulière de la vidéo encodée, tout en respectant une contrainte de débit binaire maximale (vbv-maxrate). La différence de débit requise entre les différentes qualités est considérable (et elle n'est PAS linéaire). La plupart des utilisateurs ne verraient même pas la différence entre CRF = 18 et CRF = 0, si ce n'est qu'un enregistrement CRF = 0 laisse une empreinte considérable sur le disque dur.
En termes XSplit, nous utilisons un paramètre de qualité général pour le streaming compris entre 0 et 10, 10 étant le plus élevé. Une qualité de 10 correspond à un CRF = 25, ce qui est généralement une très bonne qualité. Une qualité de 0 correspond à un CRF = 35, ce qui peut être acceptable dans certains cas (mais pas très esthétique).
Bien que cela puisse être sujet à discussion, XSplit utilise généralement son propre paramètre de qualité et le traduit en interne en CRF. Nous pensons que les utilisateurs comprennent la notion de qualité et sont habitués à une valeur comprise entre 0 et 10, cette dernière étant la plus élevée. Cependant, tout cela est facilement personnalisable pour ceux qui souhaitent s'engager dans cette voie.
Vous remarquerez que pour un enregistrement local, XSplit vous proposera simplement de définir un paramètre de qualité, sans définir de vbv-maxrate ni de vbv-buffer spécifique. L'idée est que, pour un enregistrement local, la consommation de bande passante n'est généralement pas prise en compte. Ainsi, un enregistrement ciblant une qualité particulière sera créé et, selon la qualité sélectionnée, la taille des enregistrements pour une même entrée variera (ce qui semble logique).
Dans les scènes complexes (images), davantage de bits sont utilisés pour garantir une qualité visuelle constante, tandis que dans les scènes moins complexes, moins de bits sont utilisés. L'encodeur x264 tente d'interpréter l'importance des changements d'image et d'optimiser la qualité visuelle en fonction des paramètres (le CRF, ou paramètre de qualité). La fréquence d'images de base pour la qualité est de 25 images par seconde. L'encodeur x264 adapte sa qualité en fonction de la fréquence d'images de la vidéo. Ainsi, un paramètre de qualité particulier donnera une qualité par image inférieure pour un flux à 60 images par seconde par rapport à un flux à 25 images par seconde. Le raisonnement est simple : une image à 25 images par seconde est plus importante qu'une image à 60 images par seconde, l'objectif global étant de conserver la même qualité visuelle pour les flux à 25 et 60 images par seconde.
Pour l'enregistrement local, il peut toujours être souhaitable de contrôler la bande passante maximale utilisée, de sorte que l'interface utilisateur de XSplit permet toujours à l'utilisateur de définir un vbv-maxrate et un vbv-buffer. – nous y reviendrons sous peu.
VBV-buffer et VBV-maxrate
Les deux principaux mécanismes de contrôle du débit de données utilisés par l'encodeur x264 sont
– Mode débit binaire moyen– Mode qualité moyenne
Dans l'interface utilisateur de XSplit, nous autorisons uniquement le mode de qualité moyenne comme indiqué ci-dessus, car il s'agit souvent d'un mécanisme beaucoup plus efficace.
Cependant, pour les deux principaux systèmes de contrôle de débit, un autre contrôle de débit supplémentaire est souvent utilisé, et même indispensable pour une diffusion en direct réussie avec XSplit : le contrôle de débit VBV. L'encodage basé sur la qualité garantit une qualité spécifique, mais pas une utilisation de bande passante particulière. Pour la diffusion en direct, il est important de ne pas dépasser votre propre bande passante montante disponible, ni la vitesse descendante des spectateurs.
Le streaming avec une bande passante constante est une option utilisée par certains encodeurs, mais ce mécanisme de contrôle du débit (ou son absence) gaspille des bandes passantes et impose souvent des exigences plus importantes en matière de qualité de connexion, tant pour l'éditeur que pour les téléspectateurs.
XSplit utilise un encodage basé sur la qualité et définit un VBV-maxrate et un VBV-buffer. Cela signifie que l'encodeur x264 de XSplit tente de maintenir une qualité constante du flux et peut utiliser moins de bande passante dans les scènes moins complexes ou moins importantes. Le VBV-maxrate fixe une limite à la bande passante utilisable par l'encodeur, mais en fonction du VBV-buffer.
Si vous définissez VBV-maxrate à 2000 et VBV-buffer à 4000, votre tampon VBV (tampon de décodage) sera rempli à un débit maximal de 2000 kbit/s. Votre débit vidéo peut donc toujours dépasser la valeur discrète de 2000 kbit/s, MAIS vous ne dépasserez pas 4000 kbit/s sur une période de 2 secondes. Autrement dit, le VBV-maxrate ne correspond pas au débit maximal : il s'agit simplement du débit maximal pouvant entrer dans le tampon.
Si vous comprenez ce concept, vous comprendrez également la flexibilité offerte par le tampon VBV. Il permet à l'encodeur d'anticiper une série d'images et de choisir d'utiliser plus de bits pour encoder certaines images d'une séquence et moins pour d'autres, tant que le tampon VBV n'est pas dépassé.
Voici ce que vous devez comprendre : le tampon vbv est en réalité un tampon côté décodage, il dépend donc du décodeur, qui est principalement Flash Player dans notre cas. Il est possible de configurer Flash Player avec un tampon compris entre 0 s et… n'importe quoi, je suppose, mais la plupart des fournisseurs de services de streaming codent en dur les paramètres du tampon sur 1 ou 2 secondes. C'est pourquoi les plugins de streaming XSplit ajustent généralement le tampon vbv à X ou 2 * X kilobits lorsque le débit maximal vbv est défini sur X kilobits par seconde (Kbps). J'espère que tout cela commence à être clair ! Cela signifie que si le tampon Flash Player de votre fournisseur était défini sur environ 10 secondes, vous pourriez augmenter considérablement la taille de mon tampon vbv et obtenir ainsi la même qualité avec une bande passante globale inférieure, voire une meilleure qualité avec la même bande passante. En d'autres termes, vous laisseriez plus de liberté à l'encodeur pour augmenter le débit si nécessaire. Vous pouvez donc vous attendre à ce que l’équipe XSplit ait un dialogue avec nos partenaires pour voir si nous pouvons réellement les amener à ajuster leur tampon de lecteur Flash pour qu’il corresponde au tampon VBV défini dans XSplit.
Pour terminer, je voulais revenir à notre enregistrement local. Ici, aucun débit maximal par défaut (vbv-maxrate) n'est défini pour un enregistrement, ni par conséquent de tampon vbv. Cependant, si vous souhaitez diffuser une vidéo enregistrée sur votre site web et permettre aux visiteurs de la visionner avec Flash Player sur Internet, il est préférable d'y réfléchir à deux fois. Si vous prévoyez que les utilisateurs n'auront pas plus de 1 000 kbit/s de bande passante de téléchargement et que vous souhaitez que la lecture de votre vidéo démarre après, par exemple, 4 secondes, il vous suffit d'appliquer les contraintes vbv appropriées en plus de la qualité attribuée à l'enregistrement local.
Donc, dans notre cas ci-dessus, nous utiliserions les paramètres XSplit suivants :
Débit maximal VBV : 1 000 kbps ; mémoire tampon VBV : 4 000 kbps
Eh bien, nous devrions probablement également compenser l'audio, mais dans ce cas, soustrayez simplement 1 x débit binaire audio de votre débit maximal VBV et 4 x débit binaire audio de votre tampon VBV et vous êtes prêt.
Préréglage de l'encodeur
Plusieurs préréglages intégrés sont proposés, de « Ultrarapide » à « Placebo ». XSplit utilise un préréglage personnalisé appelé « XSplit par défaut ». À l'avenir, le réglage par défaut sera probablement « Très rapide ».
Mais qu'est-ce que tout cela signifie ?
La norme H.264 spécifie un ensemble de fonctionnalités de compression qu'un décodeur doit pouvoir prendre en charge/décoder. Selon les capacités des décodeurs, ces fonctionnalités sont réparties en groupes de profils : profil élevé, profil moyen et profil de base. Pour l'instant, nous ne considérerons que le profil élevé, pris en charge par Flash Player.
En utilisant un préréglage spécifique, l'encodeur x264 exploite plusieurs fonctionnalités avancées pour mieux compresser le flux vidéo. Un préréglage inférieur à « Superfast » produira un flux compatible High Profile, sauf si d'autres contraintes personnalisées sont ajoutées ; mais n'y prêtez pas attention pour le moment. Il est important de savoir que plus le préréglage est lent, plus le flux sera compressé et meilleure sera la qualité produite avec une bande passante limitée. MAIS, cela nécessite une puissance de calcul importante, en fonction de la fréquence d'images et de la résolution.
Le préréglage par défaut est « XSplit Default » ou « Veryfast », deux paramètres plus ou moins équivalents. Si aucun autre processus gourmand en ressources processeur n'est exécuté simultanément et que vous souhaitez diffuser/encoder à 30 ips en 1280 x 720 avec le préréglage « Veryfast », un processeur i5 devrait suffire. Si votre processeur est utilisé à plus de 70 % sur n'importe quel cœur, vous devrez :
a) Utilisez une résolution inférieure b) Utilisez un préréglage plus rapide (comme super rapide) c) Achetez une bonne machine Core i7
Pour faire court, le préréglage choisi correspondra au niveau de compression demandé à l'encodeur. Plus lent = plus compression = plus utilisation du processeur.
Pour développer ce que vous auriez dû apprendre ci-dessus, laissez-nous simplement donner la réponse à la seule question qui peut maintenant vous venir à l'esprit -:):
Question : si je fais un enregistrement local et que je règle ma qualité sur 8 et que je ne définis aucune contrainte VBV, obtiendrai-je alors une vidéo de meilleure qualité si je sélectionne un préréglage plus lent.
Réponse : NON. La qualité sera identique, mais votre vidéo enregistrée sera moins compressée (taille de fichier plus importante) plus votre préréglage sera rapide. Cependant, si vos contraintes VBV-maxrate sont suffisamment restrictives, vous constaterez une différence de qualité, car le préréglage lent vous permettra de mieux respecter votre VBV-maxrate.






Commentaires