Paramètres recommandés
Cette section répertorie les recommandations d'encodage VP9 pour différents profils courants :
- Vidéo hautement optimisée pour le Web et les mobiles (VOD)
- Distribution de contenus premium (VOD)
- Sports, animation, contenu 10 bits (VOD)
- Encodage en direct
- WebRTC
Introduction
Lorsque vous encodez une vidéo, vous devez tenir compte de plusieurs éléments :
- Créez-vous une seule version de votre contenu multimédia ou plusieurs versions à différents débits et résolutions ?
- Créez-vous une diffusion vidéo en direct ou des fichiers vidéo à la demande ?
- Quel type de contenu multimédia encodez-vous ? Contient-il beaucoup de mouvements ? Détails ? Animation?
- Encodez-vous pour une qualité maximale (par exemple, pour du contenu premium) ou pour une vitesse maximale (par exemple, pour une visioconférence) ?
Cette section commence par les paramètres d'un fichier vidéo à la demande de base, puis fournit des recommandations pour toutes ces questions.
Paramètres généraux
Débits d'encodage
Les débits suivants sont suggérés comme référence pour la distribution sur le Web et sur mobile. Ces suggestions minimisent le débit tout en offrant une qualité vidéo adaptée à la distribution sur le Web et les appareils mobiles grand public. Considérez-les comme des recommandations de débit "faible" qui permettent tout de même d'obtenir une qualité raisonnable.
Débits cibles suggérés
Taille/Fréquence d'images | Débit moyen (VOD, kbit/s) | Débit moyen (en direct, kbit/s) |
---|---|---|
320 x 240 p à 24, 25 ou 30 FPS | 150 | 250 |
640 x 360p à 24, 25 ou 30 fps | 276 | 386 |
640 x 480p à 24,25,30 fps | 512 (LQ), 750 (MQ) | 720 (LQ), 1024 (MQ) |
1 280 x 720p à 24, 25 ou 30 fps | 1024 | 1440 |
1 280 x 720p à 50,60 | 1800 | 2500 |
1 920 x 1 080 p à 24, 25 ou 30 fps | 1800 | 2500 |
1 920 x 1 080p à 50 ou 60 Hz | 3000 | 4200 |
2 560 x 1 440 p à 24, 25 ou 30 FPS | 6000 | 8400 |
2 560 x 1 440 p à 50 ou 60 ips | 9000 | 12600 |
3 840 x 2 160 p à 24, 25 ou 30 FPS | 12 000 | 16800 |
3 840 x 2 160 p à 50,60 | 18000 | 25200 |
Figure 2a : Débits cibles
Paramètres d'encodage VOD
Paramètres pour la plupart des types de contenus
Pour la plupart des types de contenu, nous vous recommandons d'utiliser le mode de qualité limitée (CQ) avec des limites de débit. La plupart des vidéos contiennent un mélange de scènes très animées (séquences d'action, par exemple) et de scènes avec moins de détails (conversations, par exemple). Le mode CQ permet à l'encodeur de maintenir un niveau de qualité raisonnable pendant les scènes plus longues et plus faciles (sans gaspiller de bits), tout en allouant plus de bits aux séquences difficiles.
Nous vous recommandons également d'autoriser une plage de débits de 50 % à 150 % du débit cible, en utilisant les valeurs de qualité indiquées dans le tableau ci-dessous. Ce mode nécessite un encodage en deux passes. Il est recommandé d'utiliser des paramètres plus rapides pour la HD et les résolutions supérieures, comme indiqué ci-dessous.
Paramètres de l'encodeur pour l'encodage CQ
Hauteur du cadre | Qualité cible (CQ) | Mode d'encodage |
---|---|---|
240 | 37 | TWO_PASS_MEDIUM |
360 | 36 | TWO_PASS_MEDIUM |
480 | 34 (basse qualité) ou 33 (qualité moyenne) | TWO_PASS_MEDIUM |
720 | 32 | TWO_PASS_FAST |
1080 | 31 | TWO_PASS_FAST |
1440 | 24 | TWO_PASS_FAST |
2160 | 15 | TWO_PASS_FAST |
Figure 2b : Paramètres recommandés pour la qualité de la couverture
Enfin, nous vous recommandons d'inclure 240 images vidéo entre les images clés (pour un contenu à 30 FPS, cela correspond à 8 secondes). Les images clés sont des images vidéo autonomes. Elles ne dépendent d'aucune autre image pour le rendu (voir la structure GOP pour une explication plus détaillée). Pour la lecture sur le Web et sur mobile, nous autorisons un espacement généreux entre les images clés, car cela permet à l'encodeur de choisir le meilleur emplacement pour les images clés afin de maximiser la qualité.
Exemple de paramètres de ligne de commande : vidéo 640 x 360
Les recommandations pour les vidéos en 360p sont les suivantes :
- CQ de 36 (voir Figure 2b)
- Débit cible de 276 kbit/s (voir figure 2a)
- Débit minimal autorisé de 138 kbit/s (50 % de l'objectif)
- Débit maximal autorisé de 414 kbit/s (150 % de la cible)
- Espacement maximal des images clés de 240 secondes
- Profil "Moyenne" à deux passes
Cela donne les paramètres de ligne de commande suivants pour libvpx et FFmpeg :
libvpx
--end-usage=cq --cq-level=36 --target-bitrate=276 --minsection-pct=50 \
--maxsection-pct=150 --kf-max-dist=240 --passes=2 --good --cpu-used=2
FFmpeg
-crf 36 -b:v 276k -minrate 138k -maxrate 414k -g 240 -good -speed 2
Paramètres de contenu premium
Dans les exemples ci-dessus, nous avons utilisé des paramètres d'encodage assez rapides pour créer efficacement nos flux vidéo. Toutefois, pour certains contenus (comme les films premium), il est préférable de passer plus de temps à l'encodage pour obtenir un résultat de meilleure qualité.
Pour les contenus premium, nous vous recommandons les mêmes paramètres que ci-dessus, mais avec des préréglages différents, en demandant à l'encodeur de passer plus de temps à optimiser la qualité :
Modes d'encodage et paramètres de ligne de commande pour les contenus premium
Hauteur du cadre | Mode d'encodage | libvpx | FFmpeg |
---|---|---|---|
240 | TWO_PASS_VERY_SLOW |
--good --cpu-used 0 |
-good -speed 0 |
360 | TWO_PASS_VERY_SLOW |
--good --cpu-used 0 |
-good -speed 0 |
480 | TWO_PASS_VERY_SLOW |
--good --cpu-used 0 |
-good -speed 0 |
720 | TWO_PASS_SLOW |
--good --cpu-used 1 |
-good -speed 1 |
1080 | TWO_PASS_MEDIUM |
--good --cpu-used 2 |
-good -speed 2 |
1440 | TWO_PASS_MEDIUM |
--good --cpu-used 2 |
-good -speed 2 |
2160 | TWO_PASS_MEDIUM |
--good --cpu-used 2 |
-good -speed 2 |
Figure 2c : Modes d'encodage du contenu premium
Paramètres de contenu "Sports et contenu à mouvements rapides"
Nous recommandons l'encodage VBR pour les contenus sportifs. Les contenus sportifs ont tendance à présenter un niveau assez constant de mouvements et de complexité élevés. L'utilisation du VBR permet d'obtenir une qualité supérieure pendant les périodes de mouvements plus lents que l'encodage QP.
Pour la ligne de commande, la principale différence entre le mode QP et le mode VBR est que vous ne spécifiez pas de niveau de CQ. Sinon, les paramètres recommandés sont les mêmes.
Exemple de paramètres de ligne de commande VBR : vidéo 640x360
libvpx
--end-usage=vbr --target-bitrate=276 --minsection-pct=50 --maxsection-pct=150 \
--kf-max-dist=240 --passes=2 --good --cpu-used=2
FFmpeg
-b:v 276k -minrate 138k -maxrate 414k -g 240 -good -speed 2
Paramètres d'animation et de jeux vidéo
Paramètres de contenu bruyant / de mauvaise qualité
Pour les contenus bruyants, nous vous recommandons d'augmenter le nombre et la puissance des frames Alt-Ref. Les frames de référence alternatifs sont des frames "invisibles" qui ne sont jamais montrés à l'utilisateur, mais qui sont utilisés comme référence lors de la création des frames finaux (vous trouverez plus d'informations ici).
Les paramètres suivants sont recommandés pour indiquer à VP9 d'utiliser davantage de frames alt-ref :
libvpx
--auto-alt-ref=1 --lag-in-frames-16 --arnr-maxframes=5 --arnr-strength=3
FFmpeg
Encodage 10 bits/HDR
Pour l'encodage 10 bits, vous devez utiliser le profil 2 du VP9. L'encodage à 10 bits ne nécessite pas plus de bits. Les autres paramètres sont donc les mêmes :
libvpx
--profile=2
FFmpeg
-profile 2
Paramètres d'encodage en direct
Streaming en direct
L'encodage en direct est généralement effectué en CBR, ce qui limite la capacité de l'encodeur à maximiser la qualité. C'est pourquoi nous utiliserons des débits binaires plus élevés, comme indiqué dans la figure 2a.
Pour l'encodage en direct, nous souhaitons également maximiser le threading. Voici les étapes à suivre :
- Autoriser VP9 à diviser la vidéo en colonnes (qui ne peuvent pas avoir une largeur inférieure à 256 pixels et doivent être une puissance de deux) ;
- Indique à VP9 d'utiliser plus de puissance de calcul. Le tableau suivant répertorie les recommandations pour chaque résolution.
Recommandations concernant le tiling et le threading
Paramètres de l'encodeur pour l'encodage CQ
Taille de la trame | Nombre de colonnes de tuiles | Nombre de threads |
---|---|---|
320 x 240 | 1 | 2 |
640 x 360 | 2 | 4 |
640 x 480 | 2 | 4 |
1 280 x 720 | 4 | 8 |
1 920 x 1 080 | 4 | 8 |
2560x1440 | 8 | 16 |
3 840 x 2 160 | 8 | 16 |
Figure 2d. Tiling et threading recommandés pour l'encodage en direct
L'encodage en direct définit également le délai sur "temps réel" pour garantir les performances et indique aux frames alt-ref de ne pas regarder dans le futur (ce qui introduirait une latence) :
Voici les recommandations pour les vidéos en direct en 360p :
- CBR, débit cible de 386 kbit/s (voir figure 2a)
- Deux colonnes de tuiles (voir la figure 2d)
- 4 threads (voir la figure 2d)
- Performances en temps réel
- Aucune latence due aux frames alternatifs (aucun décalage d'image)
Cela donne les paramètres de ligne de commande suivants pour libvpx et FFmpeg :
libvpx
--end-usage=cbr --target-bitrate=386 --cpu-used=4 --tile-columns=2 --rt --lag-in-frames=0
FFmpeg
ffmpeg -i tears_of_steel_1080p.webm -vf scale=640x480 -r 29.97 -b:v 386k \
-minrate 386k -maxrate 386k -c:v libvpx-vp9 -c:a libopus output.webm