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 :

  1. CQ de 36 (voir Figure 2b)
  2. Débit cible de 276 kbit/s (voir figure 2a)
  3. Débit minimal autorisé de 138 kbit/s (50 % de l'objectif)
  4. Débit maximal autorisé de 414 kbit/s (150 % de la cible)
  5. Espacement maximal des images clés de 240 secondes
  6. 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 :

  1. 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) ;
  2. 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 :

  1. CBR, débit cible de 386 kbit/s (voir figure 2a)
  2. Deux colonnes de tuiles (voir la figure 2d)
  3. 4 threads (voir la figure 2d)
  4. Performances en temps réel
  5. 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

Encodage VP9 en direct pour DASH/YouTube

Encodage WebRTC